net: phy: Support 100/1000BT1 linkmode advertisements
authorDimitri Fedrau <dima.fedrau@gmail.com>
Sun, 18 Feb 2024 07:57:39 +0000 (08:57 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 21 Feb 2024 22:56:58 +0000 (14:56 -0800)
Extend helper functions mii_t1_adv_m_mod_linkmode_t and
linkmode_adv_to_mii_t1_adv_m_t to support 100BT1 and 1000BT1 linkmode
advertisements.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Dimitri Fedrau <dima.fedrau@gmail.com>
Link: https://lore.kernel.org/r/20240218075753.18067-3-dima.fedrau@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/mdio.h

index fd8ff31..68f8d2e 100644 (file)
@@ -373,6 +373,10 @@ static inline void mii_t1_adv_m_mod_linkmode_t(unsigned long *advertising, u32 l
 {
        linkmode_mod_bit(ETHTOOL_LINK_MODE_10baseT1L_Full_BIT,
                         advertising, lpa & MDIO_AN_T1_ADV_M_B10L);
+       linkmode_mod_bit(ETHTOOL_LINK_MODE_100baseT1_Full_BIT,
+                        advertising, lpa & MDIO_AN_T1_ADV_M_100BT1);
+       linkmode_mod_bit(ETHTOOL_LINK_MODE_1000baseT1_Full_BIT,
+                        advertising, lpa & MDIO_AN_T1_ADV_M_1000BT1);
 }
 
 /**
@@ -409,6 +413,10 @@ static inline u32 linkmode_adv_to_mii_t1_adv_m_t(unsigned long *advertising)
 
        if (linkmode_test_bit(ETHTOOL_LINK_MODE_10baseT1L_Full_BIT, advertising))
                result |= MDIO_AN_T1_ADV_M_B10L;
+       if (linkmode_test_bit(ETHTOOL_LINK_MODE_100baseT1_Full_BIT, advertising))
+               result |= MDIO_AN_T1_ADV_M_100BT1;
+       if (linkmode_test_bit(ETHTOOL_LINK_MODE_1000baseT1_Full_BIT, advertising))
+               result |= MDIO_AN_T1_ADV_M_1000BT1;
 
        return result;
 }