Skip to content

Commit d3eb585

Browse files
dangowrtdavem330
authored andcommitted
net: phy: realtek: always clear NBase-T lpa
Clear NBase-T link partner advertisement before calling rtlgen_read_status() to avoid phy_resolve_aneg_linkmode() wrongly setting speed and duplex. This fixes bogus 2.5G/5G/10G link partner advertisement and thus speed and duplex being set by phy_resolve_aneg_linkmode() due to stale NBase-T lpa. Fixes: 68d5cd0 ("net: phy: realtek: change order of calls in C22 read_status()") Signed-off-by: Daniel Golle <daniel@makrotopia.org> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent ea8318c commit d3eb585

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/net/phy/realtek.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -952,15 +952,15 @@ static int rtl822x_read_status(struct phy_device *phydev)
952952
{
953953
int lpadv, ret;
954954

955+
mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0);
956+
955957
ret = rtlgen_read_status(phydev);
956958
if (ret < 0)
957959
return ret;
958960

959961
if (phydev->autoneg == AUTONEG_DISABLE ||
960-
!phydev->autoneg_complete) {
961-
mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0);
962+
!phydev->autoneg_complete)
962963
return 0;
963-
}
964964

965965
lpadv = phy_read_paged(phydev, 0xa5d, 0x13);
966966
if (lpadv < 0)

0 commit comments

Comments
 (0)