1
0
Fork 0

ot1200: Fix the error handling in board_eth_init()

We should not return 0 on failure, so return a negative error code
instead.

Also centralize the error path so that is easier to follow.

Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
utp
Fabio Estevam 2015-09-11 00:53:52 -03:00 committed by Stefano Babic
parent 747472bb96
commit cbb8f9676c
1 changed files with 12 additions and 8 deletions

View File

@ -305,13 +305,13 @@ int board_eth_init(bd_t *bis)
bus = fec_get_miibus(base, -1);
if (!bus)
return 0;
return -EINVAL;
/* scan phy 0 and 5 */
phydev = phy_find_by_mask(bus, 0x21, PHY_INTERFACE_MODE_RGMII);
if (!phydev) {
free(bus);
return 0;
ret = -EINVAL;
goto free_bus;
}
/* depending on the phy address we can detect our board version */
@ -322,12 +322,16 @@ int board_eth_init(bd_t *bis)
printf("using phy at %d\n", phydev->addr);
ret = fec_probe(bis, -1, base, bus, phydev);
if (ret) {
printf("FEC MXC: %s:failed\n", __func__);
free(phydev);
free(bus);
}
if (ret)
goto free_phydev;
return 0;
free_phydev:
free(phydev);
free_bus:
free(bus);
return ret;
}
int board_init(void)