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/tsec.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/tsec.c')
-rw-r--r-- | drivers/net/tsec.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 3c1c8f0..f5e314b 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -480,6 +480,7 @@ static int tsec_init(struct eth_device *dev, bd_t * bd) int i; struct tsec_private *priv = (struct tsec_private *)dev->priv; tsec_t *regs = priv->regs; + int ret; /* Make sure the controller is stopped */ tsec_halt(dev); @@ -511,7 +512,12 @@ static int tsec_init(struct eth_device *dev, bd_t * bd) startup_tsec(dev); /* Start up the PHY */ - phy_startup(priv->phydev); + ret = phy_startup(priv->phydev); + if (ret) { + printf("Could not initialize PHY %s\n", + priv->phydev->dev->name); + return ret; + } adjust_link(priv, priv->phydev); |