OSDN Git Service

net: phy: c45: migrate to genphy_c45_write_eee_adv()
authorOleksij Rempel <o.rempel@pengutronix.de>
Sat, 11 Feb 2023 07:41:11 +0000 (08:41 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Feb 2023 11:12:31 +0000 (11:12 +0000)
Migrate from genphy_config_eee_advert() to genphy_c45_write_eee_adv().

It should work as before except write operation to the EEE adv registers
will be done only if some EEE abilities was detected.

If some driver will have a regression, related driver should provide own
.get_features callback. See micrel.c:ksz9477_get_features() as example.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy-c45.c

index b4910c4..ef36582 100644 (file)
@@ -262,7 +262,11 @@ int genphy_c45_an_config_aneg(struct phy_device *phydev)
        linkmode_and(phydev->advertising, phydev->advertising,
                     phydev->supported);
 
-       changed = genphy_config_eee_advert(phydev);
+       ret = genphy_c45_write_eee_adv(phydev, phydev->supported_eee);
+       if (ret < 0)
+               return ret;
+       else if (ret)
+               changed = true;
 
        if (genphy_c45_baset1_able(phydev))
                return genphy_c45_baset1_an_config_aneg(phydev);
@@ -968,6 +972,11 @@ int genphy_c45_pma_read_abilities(struct phy_device *phydev)
                }
        }
 
+       /* This is optional functionality. If not supported, we may get an error
+        * which should be ignored.
+        */
+       genphy_c45_read_eee_abilities(phydev);
+
        return 0;
 }
 EXPORT_SYMBOL_GPL(genphy_c45_pma_read_abilities);