Skip to content

Commit b63584c

Browse files
hkallweitdavem330
authored andcommitted
net: phy: c45: add and use genphy_c45_read_eee_cap2
Add and use genphy_c45_read_eee_cap2(), complementing genphy_c45_read_eee_cap1(). Signed-off-by: Heiner Kallweit <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent ef6ee3a commit b63584c

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

drivers/net/phy/phy-c45.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -830,6 +830,30 @@ static int genphy_c45_read_eee_cap1(struct phy_device *phydev)
830830
return 0;
831831
}
832832

833+
/**
834+
* genphy_c45_read_eee_cap2 - read supported EEE link modes from register 3.21
835+
* @phydev: target phy_device struct
836+
*/
837+
static int genphy_c45_read_eee_cap2(struct phy_device *phydev)
838+
{
839+
int val;
840+
841+
/* IEEE 802.3-2022 45.2.3.11 EEE control and capability 2
842+
* (Register 3.21)
843+
*/
844+
val = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE2);
845+
if (val < 0)
846+
return val;
847+
848+
/* IEEE 802.3-2022 45.2.3.11 says 9 bits are reserved. */
849+
if (val == 0xffff)
850+
return 0;
851+
852+
mii_eee_cap2_mod_linkmode_sup_t(phydev->supported_eee, val);
853+
854+
return 0;
855+
}
856+
833857
/**
834858
* genphy_c45_read_eee_abilities - read supported EEE link modes
835859
* @phydev: target phy_device struct
@@ -848,6 +872,13 @@ int genphy_c45_read_eee_abilities(struct phy_device *phydev)
848872
return val;
849873
}
850874

875+
/* Same for cap2 (3.21) */
876+
if (linkmode_intersects(phydev->supported, PHY_EEE_CAP2_FEATURES)) {
877+
val = genphy_c45_read_eee_cap2(phydev);
878+
if (val)
879+
return val;
880+
}
881+
851882
if (linkmode_test_bit(ETHTOOL_LINK_MODE_10baseT1L_Full_BIT,
852883
phydev->supported)) {
853884
/* IEEE 802.3cg-2019 45.2.1.186b 10BASE-T1L PMA status register

0 commit comments

Comments
 (0)