tqma6_mba6: 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: Markus Niebel <Markus.Niebel@tq-group.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
This commit is contained in:
Fabio Estevam 2015-09-11 13:32:49 -03:00 committed by Stefano Babic
parent cbb8f9676c
commit 36f5a7f64d
1 changed files with 11 additions and 9 deletions

View File

@ -309,24 +309,26 @@ int board_eth_init(bd_t *bis)
bus = fec_get_miibus(base, -1); bus = fec_get_miibus(base, -1);
if (!bus) if (!bus)
return 0; return -EINVAL;
/* scan phy */ /* scan phy */
phydev = phy_find_by_mask(bus, (0xf << CONFIG_FEC_MXC_PHYADDR), phydev = phy_find_by_mask(bus, (0xf << CONFIG_FEC_MXC_PHYADDR),
PHY_INTERFACE_MODE_RGMII); PHY_INTERFACE_MODE_RGMII);
if (!phydev) { if (!phydev) {
free(bus); ret = -EINVAL;
puts("No phy found\n"); goto free_bus;
return 0;
} }
ret = fec_probe(bis, -1, base, bus, phydev); ret = fec_probe(bis, -1, base, bus, phydev);
if (ret) { if (ret)
puts("FEC MXC: probe failed\n"); goto free_phydev;
free(phydev);
free(bus);
}
return 0; return 0;
free_phydev:
free(phydev);
free_bus:
free(bus);
return ret;
} }
int tqma6_bb_board_early_init_f(void) int tqma6_bb_board_early_init_f(void)