Re: [PATCH net 3/3] net: phy: realtek: always clear NBase-T lpa
From: Michal Swiatkowski
Date: Thu Jan 16 2025 - 09:12:59 EST
On Wed, Jan 15, 2025 at 02:45:00PM +0000, Daniel Golle wrote:
> 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 <daniel@xxxxxxxxxxxxxx>
> ---
> drivers/net/phy/realtek.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
> index 93704abb6787..9cefca1aefa1 100644
> --- a/drivers/net/phy/realtek.c
> +++ b/drivers/net/phy/realtek.c
> @@ -952,15 +952,15 @@ static int rtl822x_read_status(struct phy_device *phydev)
> {
> 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)
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@xxxxxxxxxxxxxxx>
> --
> 2.47.1