diff options
author | Timur Tabi <timur@freescale.com> | 2012-07-09 08:52:43 +0000 |
---|---|---|
committer | Joe Hershberger <joe.hershberger@ni.com> | 2012-07-11 13:15:30 -0500 |
commit | 11af8d65274df736deeb651d12e0763eec527ea5 (patch) | |
tree | f1a168fd00307be243b3978fdceace496e6eabc8 /drivers/net/fm/eth.c | |
parent | 6e5b9ac097689e96d53f638842823fb1d1bf4223 (diff) | |
download | u-boot-imx-11af8d65274df736deeb651d12e0763eec527ea5.zip u-boot-imx-11af8d65274df736deeb651d12e0763eec527ea5.tar.gz u-boot-imx-11af8d65274df736deeb651d12e0763eec527ea5.tar.bz2 |
net: abort network initialization if the PHY driver fails
Now that phy_startup() can return an actual error code, check for that error
code and abort network initialization if the PHY fails.
Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Nobuhiro Iwamamatsu <nobuhiro.iwamatsu.yj@renesas.com> (sh_eth part)
Acked-by: Stephan Linz <linz@li-pro.net> (Xilinx part, xilinx_axi_emac and xilinx_ll_temac)
Reviewed-by: Marek Vasut <marex@denx.de> (FEC part)
Diffstat (limited to 'drivers/net/fm/eth.c')
-rw-r--r-- | drivers/net/fm/eth.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c index f34f4db..2b616ad 100644 --- a/drivers/net/fm/eth.c +++ b/drivers/net/fm/eth.c @@ -363,6 +363,9 @@ static int fm_eth_open(struct eth_device *dev, bd_t *bd) { struct fm_eth *fm_eth; struct fsl_enet_mac *mac; +#ifdef CONFIG_PHYLIB + int ret; +#endif fm_eth = (struct fm_eth *)dev->priv; mac = fm_eth->mac; @@ -384,7 +387,11 @@ static int fm_eth_open(struct eth_device *dev, bd_t *bd) fmc_tx_port_graceful_stop_disable(fm_eth); #ifdef CONFIG_PHYLIB - phy_startup(fm_eth->phydev); + ret = phy_startup(fm_eth->phydev); + if (ret) { + printf("%s: Could not initialize\n", fm_eth->phydev->dev->name); + return ret; + } #else fm_eth->phydev->speed = SPEED_1000; fm_eth->phydev->link = 1; |