net: phy: marvell10g: check for newly set aneg

Even if the advertisement registers content didn't change, we may have
just switched to aneg, and therefore have to trigger an aneg restart.
This matches the behavior of genphy_config_aneg().

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Heiner Kallweit 2019-02-17 10:32:29 +01:00 committed by David S. Miller
parent 3de97f3c63
commit 3ce2a027ae
1 changed files with 10 additions and 0 deletions

View File

@ -296,6 +296,16 @@ static int mv3310_config_aneg(struct phy_device *phydev)
if (ret > 0)
changed = true;
if (!changed) {
/* Configure and restart aneg if it wasn't set before */
ret = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_CTRL1);
if (ret < 0)
return ret;
if (!(ret & MDIO_AN_CTRL1_ENABLE))
changed = 1;
}
if (changed)
ret = genphy_c45_restart_aneg(phydev);