net: phy: start using genphy_c45_ethtool_get/set_eee()
authorOleksij Rempel <o.rempel@pengutronix.de>
Sat, 11 Feb 2023 07:41:13 +0000 (08:41 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Feb 2023 11:12:31 +0000 (11:12 +0000)
All preparations are done. Now we can start using new functions and remove
the old code.

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.c

index 36533746630eb4b5b5bcafd1b8438c1f2d7c22a4..2f1041a7211e071373b1d737511f1edd38d49fd7 100644 (file)
@@ -1517,33 +1517,10 @@ EXPORT_SYMBOL(phy_get_eee_err);
  */
 int phy_ethtool_get_eee(struct phy_device *phydev, struct ethtool_eee *data)
 {
-       int val;
-
        if (!phydev->drv)
                return -EIO;
 
-       /* Get Supported EEE */
-       val = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE);
-       if (val < 0)
-               return val;
-       data->supported = mmd_eee_cap_to_ethtool_sup_t(val);
-
-       /* Get advertisement EEE */
-       val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV);
-       if (val < 0)
-               return val;
-       data->advertised = mmd_eee_adv_to_ethtool_adv_t(val);
-       data->eee_enabled = !!data->advertised;
-
-       /* Get LP advertisement EEE */
-       val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_LPABLE);
-       if (val < 0)
-               return val;
-       data->lp_advertised = mmd_eee_adv_to_ethtool_adv_t(val);
-
-       data->eee_active = !!(data->advertised & data->lp_advertised);
-
-       return 0;
+       return genphy_c45_ethtool_get_eee(phydev, data);
 }
 EXPORT_SYMBOL(phy_ethtool_get_eee);
 
@@ -1556,43 +1533,10 @@ EXPORT_SYMBOL(phy_ethtool_get_eee);
  */
 int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data)
 {
-       int cap, old_adv, adv = 0, ret;
-
        if (!phydev->drv)
                return -EIO;
 
-       /* Get Supported EEE */
-       cap = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE);
-       if (cap < 0)
-               return cap;
-
-       old_adv = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV);
-       if (old_adv < 0)
-               return old_adv;
-
-       if (data->eee_enabled) {
-               adv = !data->advertised ? cap :
-                     ethtool_adv_to_mmd_eee_adv_t(data->advertised) & cap;
-               /* Mask prohibited EEE modes */
-               adv &= ~phydev->eee_broken_modes;
-       }
-
-       if (old_adv != adv) {
-               ret = phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, adv);
-               if (ret < 0)
-                       return ret;
-
-               /* Restart autonegotiation so the new modes get sent to the
-                * link partner.
-                */
-               if (phydev->autoneg == AUTONEG_ENABLE) {
-                       ret = phy_restart_aneg(phydev);
-                       if (ret < 0)
-                               return ret;
-               }
-       }
-
-       return 0;
+       return genphy_c45_ethtool_set_eee(phydev, data);
 }
 EXPORT_SYMBOL(phy_ethtool_set_eee);