net: phy: marvell: use genphy_check_and_restart_aneg()
authorRussell King <rmk+kernel@armlinux.org.uk>
Tue, 17 Dec 2019 13:39:52 +0000 (13:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Dec 2019 20:52:34 +0000 (12:52 -0800)
Use the helper to check and restart autonegotiation for the marvell
fiber page negotiation setting.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/marvell.c

index 7da64208365bd9a6475cdaee67d88affc4359773..28e33ece4ce17aa132a214d2be32761bf3827cb4 100644 (file)
@@ -534,26 +534,7 @@ static int marvell_config_aneg_fiber(struct phy_device *phydev)
        if (err > 0)
                changed = 1;
 
-       if (changed == 0) {
-               /* Advertisement hasn't changed, but maybe aneg was never on to
-                * begin with?  Or maybe phy was isolated?
-                */
-               int ctl = phy_read(phydev, MII_BMCR);
-
-               if (ctl < 0)
-                       return ctl;
-
-               if (!(ctl & BMCR_ANENABLE) || (ctl & BMCR_ISOLATE))
-                       changed = 1; /* do restart aneg */
-       }
-
-       /* Only restart aneg if we are advertising something different
-        * than we were before.
-        */
-       if (changed > 0)
-               changed = genphy_restart_aneg(phydev);
-
-       return changed;
+       return genphy_check_and_restart_aneg(phydev, changed);
 }
 
 static int m88e1510_config_aneg(struct phy_device *phydev)