diff options
| author | Troy Kisky <troy.kisky@boundarydevices.com> | 2012-02-07 14:08:49 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-02-27 21:19:25 +0100 | 
| commit | 9fafe7dab9bc8a9e33e1ba5e28a3ec870d689b82 (patch) | |
| tree | a0403ba8fc386f01760626fcbe43fdc0922dc70d | |
| parent | 8682aba7da2af2842296710acca7c03fcebafd5c (diff) | |
| download | olio-uboot-2014.01-9fafe7dab9bc8a9e33e1ba5e28a3ec870d689b82.tar.xz olio-uboot-2014.01-9fafe7dab9bc8a9e33e1ba5e28a3ec870d689b82.zip | |
net: phy: make board_phy_config responsible for calling drv->config
Boards may have things they want done before or after normal phy config.
Letting the boards call drv->config allows them more flexibilty.
Boards affected by this change are corenet_ds and mpc8544ds.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Dirk Behme <dirk.behme@de.bosch.com>
| -rw-r--r-- | board/freescale/corenet_ds/eth_p4080.c | 2 | ||||
| -rw-r--r-- | board/freescale/mpc8544ds/mpc8544ds.c | 2 | ||||
| -rw-r--r-- | drivers/net/phy/phy.c | 5 | 
3 files changed, 6 insertions, 3 deletions
| diff --git a/board/freescale/corenet_ds/eth_p4080.c b/board/freescale/corenet_ds/eth_p4080.c index 1f00c1453..b87b0922a 100644 --- a/board/freescale/corenet_ds/eth_p4080.c +++ b/board/freescale/corenet_ds/eth_p4080.c @@ -96,6 +96,8 @@ struct mii_dev *mii_dev_for_muxval(u32 muxval)  #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES9) && defined(CONFIG_PHY_TERANETICS)  int board_phy_config(struct phy_device *phydev)  { +	if (phydev->drv->config) +		phydev->drv->config(phydev);  	if (phydev->drv->uid == PHY_UID_TN2020) {  		unsigned long timeout = 1 * 1000; /* 1 seconds */  		enum srds_prtcl device; diff --git a/board/freescale/mpc8544ds/mpc8544ds.c b/board/freescale/mpc8544ds/mpc8544ds.c index 6fe8d3963..24a1715b4 100644 --- a/board/freescale/mpc8544ds/mpc8544ds.c +++ b/board/freescale/mpc8544ds/mpc8544ds.c @@ -261,6 +261,8 @@ int board_phy_config(struct phy_device *phydev)  	uint phyid;  	struct mii_dev *bus = phydev->bus; +	if (phydev->drv->config) +		phydev->drv->config(phydev);  	if (do_once)  		return 0; diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index eb551803e..7d327f766 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -733,6 +733,8 @@ int phy_startup(struct phy_device *phydev)  static int __board_phy_config(struct phy_device *phydev)  { +	if (phydev->drv->config) +		return phydev->drv->config(phydev);  	return 0;  } @@ -741,9 +743,6 @@ int board_phy_config(struct phy_device *phydev)  int phy_config(struct phy_device *phydev)  { -	if (phydev->drv->config) -		phydev->drv->config(phydev); -  	/* Invoke an optional board-specific helper */  	board_phy_config(phydev); |