• Oleksij Rempel's avatar
    net: phy: add genphy_c45_ethtool_get/set_eee() support · 022c3f87
    Oleksij Rempel authored
    Add replacement for phy_ethtool_get/set_eee() functions.
    
    Current phy_ethtool_get/set_eee() implementation is great and it is
    possible to make it even better:
    - this functionality is for devices implementing parts of IEEE 802.3
      specification beyond Clause 22. The better place for this code is
      phy-c45.c
    - currently it is able to do read/write operations on PHYs with
      different abilities to not existing registers. It is better to
      use stored supported_eee abilities to avoid false read/write
      operations.
    - the eee_active detection will provide wrong results on not supported
      link modes. It is better to validate speed/duplex properties against
      supported EEE link modes.
    - it is able to support only limited amount of link modes. We have more
      EEE link modes...
    
    By refactoring this code I address most of this point except of the last
    one. Adding additional EEE link modes will need more work.
    Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    022c3f87
phy-c45.c 37.1 KB