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/xilinx_ll_temac.c | |
| parent | 6e5b9ac097689e96d53f638842823fb1d1bf4223 (diff) | |
| download | olio-uboot-2014.01-11af8d65274df736deeb651d12e0763eec527ea5.tar.xz olio-uboot-2014.01-11af8d65274df736deeb651d12e0763eec527ea5.zip | |
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/xilinx_ll_temac.c')
| -rw-r--r-- | drivers/net/xilinx_ll_temac.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/net/xilinx_ll_temac.c b/drivers/net/xilinx_ll_temac.c index 27dafc15c..b67153bec 100644 --- a/drivers/net/xilinx_ll_temac.c +++ b/drivers/net/xilinx_ll_temac.c @@ -232,6 +232,7 @@ static void ll_temac_halt(struct eth_device *dev)  static int ll_temac_init(struct eth_device *dev, bd_t *bis)  {  	struct ll_temac *ll_temac = dev->priv; +	int ret;  	printf("%s: Xilinx XPS LocalLink Tri-Mode Ether MAC #%d at 0x%08X.\n",  		dev->name, dev->index, dev->iobase); @@ -240,7 +241,12 @@ static int ll_temac_init(struct eth_device *dev, bd_t *bis)  		return -1;  	/* Start up the PHY */ -	phy_startup(ll_temac->phydev); +	ret = phy_startup(ll_temac->phydev); +	if (ret) { +		printf("%s: Could not initialize PHY %s\n", +		       dev->name, ll_temac->phydev->dev->name); +		return ret; +	}  	if (!ll_temac_adjust_link(dev)) {  		ll_temac_halt(dev); |