net: phy: c45: detect the BASE-T1 speed from the ability register
authorStefan Eichenberger <eichest@gmail.com>
Wed, 19 Jul 2023 06:42:57 +0000 (08:42 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 20 Jul 2023 10:24:06 +0000 (12:24 +0200)
Read the ability to do 100BASE-T1 and 1000BASE-T1 from the extended
BASE-T1 ability register of the PHY.

Signed-off-by: Stefan Eichenberger <eichest@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/phy/phy-c45.c

index 58a6bbb..8e6fd49 100644 (file)
@@ -899,6 +899,14 @@ int genphy_c45_pma_baset1_read_abilities(struct phy_device *phydev)
                         phydev->supported,
                         val & MDIO_PMA_PMD_BT1_B10L_ABLE);
 
+       linkmode_mod_bit(ETHTOOL_LINK_MODE_100baseT1_Full_BIT,
+                        phydev->supported,
+                        val & MDIO_PMA_PMD_BT1_B100_ABLE);
+
+       linkmode_mod_bit(ETHTOOL_LINK_MODE_1000baseT1_Full_BIT,
+                        phydev->supported,
+                        val & MDIO_PMA_PMD_BT1_B1000_ABLE);
+
        val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_T1_STAT);
        if (val < 0)
                return val;