| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- From d3eb58549842c60ed46f37da7f4da969e3d6ecd3 Mon Sep 17 00:00:00 2001
- From: Daniel Golle <[email protected]>
- Date: Wed, 15 Jan 2025 14:45:00 +0000
- Subject: [PATCH] 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: 68d5cd09e891 ("net: phy: realtek: change order of calls in C22 read_status()")
- Signed-off-by: Daniel Golle <[email protected]>
- Reviewed-by: Michal Swiatkowski <[email protected]>
- Signed-off-by: David S. Miller <[email protected]>
- ---
- drivers/net/phy/realtek.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
- --- a/drivers/net/phy/realtek.c
- +++ b/drivers/net/phy/realtek.c
- @@ -952,15 +952,15 @@ static int rtl822x_read_status(struct ph
- {
- int lpadv, ret;
-
- + mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0);
- +
- ret = rtlgen_read_status(phydev);
- if (ret < 0)
- return ret;
-
- if (phydev->autoneg == AUTONEG_DISABLE ||
- - !phydev->autoneg_complete) {
- - mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0);
- + !phydev->autoneg_complete)
- return 0;
- - }
-
- lpadv = phy_read_paged(phydev, 0xa5d, 0x13);
- if (lpadv < 0)
|