@@ -1517,33 +1517,10 @@ EXPORT_SYMBOL(phy_get_eee_err);
15171517 */
15181518int phy_ethtool_get_eee (struct phy_device * phydev , struct ethtool_eee * data )
15191519{
1520- int val ;
1521-
15221520 if (!phydev -> drv )
15231521 return - EIO ;
15241522
1525- /* Get Supported EEE */
1526- val = phy_read_mmd (phydev , MDIO_MMD_PCS , MDIO_PCS_EEE_ABLE );
1527- if (val < 0 )
1528- return val ;
1529- data -> supported = mmd_eee_cap_to_ethtool_sup_t (val );
1530-
1531- /* Get advertisement EEE */
1532- val = phy_read_mmd (phydev , MDIO_MMD_AN , MDIO_AN_EEE_ADV );
1533- if (val < 0 )
1534- return val ;
1535- data -> advertised = mmd_eee_adv_to_ethtool_adv_t (val );
1536- data -> eee_enabled = !!data -> advertised ;
1537-
1538- /* Get LP advertisement EEE */
1539- val = phy_read_mmd (phydev , MDIO_MMD_AN , MDIO_AN_EEE_LPABLE );
1540- if (val < 0 )
1541- return val ;
1542- data -> lp_advertised = mmd_eee_adv_to_ethtool_adv_t (val );
1543-
1544- data -> eee_active = !!(data -> advertised & data -> lp_advertised );
1545-
1546- return 0 ;
1523+ return genphy_c45_ethtool_get_eee (phydev , data );
15471524}
15481525EXPORT_SYMBOL (phy_ethtool_get_eee );
15491526
@@ -1556,43 +1533,10 @@ EXPORT_SYMBOL(phy_ethtool_get_eee);
15561533 */
15571534int phy_ethtool_set_eee (struct phy_device * phydev , struct ethtool_eee * data )
15581535{
1559- int cap , old_adv , adv = 0 , ret ;
1560-
15611536 if (!phydev -> drv )
15621537 return - EIO ;
15631538
1564- /* Get Supported EEE */
1565- cap = phy_read_mmd (phydev , MDIO_MMD_PCS , MDIO_PCS_EEE_ABLE );
1566- if (cap < 0 )
1567- return cap ;
1568-
1569- old_adv = phy_read_mmd (phydev , MDIO_MMD_AN , MDIO_AN_EEE_ADV );
1570- if (old_adv < 0 )
1571- return old_adv ;
1572-
1573- if (data -> eee_enabled ) {
1574- adv = !data -> advertised ? cap :
1575- ethtool_adv_to_mmd_eee_adv_t (data -> advertised ) & cap ;
1576- /* Mask prohibited EEE modes */
1577- adv &= ~phydev -> eee_broken_modes ;
1578- }
1579-
1580- if (old_adv != adv ) {
1581- ret = phy_write_mmd (phydev , MDIO_MMD_AN , MDIO_AN_EEE_ADV , adv );
1582- if (ret < 0 )
1583- return ret ;
1584-
1585- /* Restart autonegotiation so the new modes get sent to the
1586- * link partner.
1587- */
1588- if (phydev -> autoneg == AUTONEG_ENABLE ) {
1589- ret = phy_restart_aneg (phydev );
1590- if (ret < 0 )
1591- return ret ;
1592- }
1593- }
1594-
1595- return 0 ;
1539+ return genphy_c45_ethtool_set_eee (phydev , data );
15961540}
15971541EXPORT_SYMBOL (phy_ethtool_set_eee );
15981542
0 commit comments