diff options
author | Ben Warren <biggerbadderben@gmail.com> | 2010-08-31 23:05:04 -0700 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-11-15 00:01:15 +0100 |
commit | 8ad25bf8d9233eb7d0b614612108622a59069354 (patch) | |
tree | 28fa95e858ad2f9ac4ebecb194b3421de7bf3da3 /net/eth.c | |
parent | a98ae78fe17a1ab82ecf62fd4e2771d3c492e111 (diff) |
Net: clarify board/cpu_eth_init calls
This has always been confusing, and the idea of these functions returning the
number of interfaces initialized was half-baked and ultimately pointless.
Instead, act more like regular functions and return < 0 on failure, >= 0 on
success.
This change shouldn't break anything.
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'net/eth.c')
-rw-r--r-- | net/eth.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -204,10 +204,18 @@ int eth_initialize(bd_t *bis) #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) miiphy_init(); #endif - /* Try board-specific initialization first. If it fails or isn't - * present, try the cpu-specific initialization */ - if (board_eth_init(bis) < 0) - cpu_eth_init(bis); + /* + * If board-specific initialization exists, call it. + * If not, call a CPU-specific one + */ + if (board_eth_init != __def_eth_init) { + if (board_eth_init(bis) < 0) + printf("Board Net Initialization Failed\n"); + } else if (cpu_eth_init != __def_eth_init) { + if (cpu_eth_init(bis) < 0) + printf("CPU Net Initialization Failed\n"); + } else + printf("Net Initialization Skipped\n"); #if defined(CONFIG_DB64360) || defined(CONFIG_CPCI750) mv6436x_eth_initialize(bis); |