summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-09-17 14:39:36 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-09-17 15:12:56 +0200
commite209158d5a566ddb0f2bb10f1fd10ff3ca0974ce (patch)
treeacc298c41837c969a41a07677d21d83c8c3b0086 /include
parent5c0bd50319f20655b3c6e93ac9c7a72e44de7bd9 (diff)
downloadbarebox-e209158d5a566ddb0f2bb10f1fd10ff3ca0974ce.tar.gz
barebox-e209158d5a566ddb0f2bb10f1fd10ff3ca0974ce.tar.xz
net: phy: introduce phy_aneg_done
phy_wait_aneg_done() is directly called by the network code, so it should not read phy registers directly. Introduce phy_aneg_done to give phy drivers the chance to do something different to poll for autonegotiation completion. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/phy.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 7c5d754a12..c0fd4ff19a 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -234,6 +234,9 @@ struct phy_driver {
*/
int (*config_aneg)(struct phy_device *phydev);
+ /* Determines the auto negotiation result */
+ int (*aneg_done)(struct phy_device *phydev);
+
/* Determines the negotiated speed and duplex */
int (*read_status)(struct phy_device *phydev);
@@ -295,6 +298,7 @@ int phy_wait_aneg_done(struct phy_device *phydev);
/* Generic PHY support and helper functions */
int genphy_restart_aneg(struct phy_device *phydev);
int genphy_config_aneg(struct phy_device *phydev);
+int genphy_aneg_done(struct phy_device *phydev);
int genphy_update_link(struct phy_device *phydev);
int genphy_read_status(struct phy_device *phydev);
int genphy_config_advert(struct phy_device *phydev);