mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
net: phy: add genphy_c45_ethtool_get/set_eee() support
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: Oleksij Rempel <o.rempel@pengutronix.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
cf9f607969
commit
022c3f87f8
@@ -1758,6 +1758,13 @@ int genphy_c45_plca_set_cfg(struct phy_device *phydev,
|
||||
const struct phy_plca_cfg *plca_cfg);
|
||||
int genphy_c45_plca_get_status(struct phy_device *phydev,
|
||||
struct phy_plca_status *plca_st);
|
||||
int genphy_c45_eee_is_active(struct phy_device *phydev, unsigned long *adv,
|
||||
unsigned long *lp, bool *is_enabled);
|
||||
int genphy_c45_ethtool_get_eee(struct phy_device *phydev,
|
||||
struct ethtool_eee *data);
|
||||
int genphy_c45_ethtool_set_eee(struct phy_device *phydev,
|
||||
struct ethtool_eee *data);
|
||||
int genphy_c45_write_eee_adv(struct phy_device *phydev, unsigned long *adv);
|
||||
|
||||
/* Generic C45 PHY driver */
|
||||
extern struct phy_driver genphy_c45_driver;
|
||||
|
||||
Reference in New Issue
Block a user