Re: [PATCH net 1/3] net: phy: as21xxx: handle corner case with link and autoneg complete

From: Maxime Chevallier

Date: Thu Jun 04 2026 - 06:31:20 EST




On 6/1/26 12:53, Christian Marangi wrote:
> Add missing case in custom read_link, when autoneg is started, autoneg
> complete bit is reset but link is still not up.
>
> Fixes: 830877d89edc ("net: phy: Add support for Aeonsemi AS21xxx PHYs")
> Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>

Looks like the same approach as in genphy_update_link()

Reviewed-by: Maxime Chevallier <maxime.chevallier@xxxxxxxxxxx>

Maxime

> ---
> drivers/net/phy/as21xxx.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/net/phy/as21xxx.c b/drivers/net/phy/as21xxx.c
> index d5738117eca6..0db82da8dbdf 100644
> --- a/drivers/net/phy/as21xxx.c
> +++ b/drivers/net/phy/as21xxx.c
> @@ -658,6 +658,13 @@ static int as21xxx_read_link(struct phy_device *phydev, int *bmcr)
> return status;
>
> phydev->link = !!(status & MDIO_STAT1_LSTATUS);
> + phydev->autoneg_complete = !!(status & MDIO_AN_STAT1_COMPLETE);
> +
> + /* Consider the case that autoneg was started and "aneg complete"
> + * bit has been reset, but "link up" bit not yet.
> + */
> + if (phydev->autoneg == AUTONEG_ENABLE && !phydev->autoneg_complete)
> + phydev->link = 0;
>
> return 0;
> }