net: Move initialization of Au1x00 SoC ethernet MAC to cpu_eth_init
This patch will move au1x00_eth_initialize from net/eth.c to cpu_eth_init as a part of ongoing eth_initialize cleanup work. The function ret value is also fixed as it should be negative on fail.
---
Hi Ben,
build tested. Please review.
Shinya
cpu/mips/au1x00_eth.c | 2 +- cpu/mips/cpu.c | 7 +++++++ include/netdev.h | 1 + net/eth.c | 4 ---- 4 files changed, 9 insertions(+), 5 deletions(-)
cpu/mips/au1x00_eth.c +1 -1
@@ -283,7 +283,7 @@ int au1x00_enet_initialize(bd_t *bis){if ((dev = (struct eth_device *)malloc (sizeof *dev)) ==NULL ) {puts ("malloc failed\n" ); -return 0 ; +return -1 ; }memset (dev,0 ,sizeof *dev);
cpu/mips/cpu.c +7 -0
@@ -73,3 +73,10 @@ void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1)write_c0_index (index);tlb_write_indexed (); } + +int cpu_eth_init (bd_t *bis) +{ +#ifdef CONFIG_SOC_AU1X00 +return au1x00_enet_initialize (bis); +#endif +}
include/netdev.h +1 -0
@@ -41,6 +41,7 @@ int board_eth_init(bd_t *bis);int cpu_eth_init (bd_t *bis);/* Driver initialization prototypes */ +int au1x00_enet_initialize (bd_t *);int bfin_EMAC_initialize (bd_t *bis);int dc21x4x_initialize (bd_t *bis);int e1000_initialize (bd_t *bis);
net/eth.c +0 -4
@@ -39,7 +39,6 @@ static int __def_eth_init(bd_t *bis)int cpu_eth_init (bd_t *bis) __attribute((weak,alias ("__def_eth_init" )));int board_eth_init (bd_t *bis) __attribute((weak,alias ("__def_eth_init" ))); -extern int au1x00_enet_initialize (bd_t *);extern int fec_initialize (bd_t *);extern int mpc8220_fec_initialize (bd_t *);extern int mv6436x_eth_initialize (bd_t *);
@@ -190,9 +189,6 @@ int eth_initialize(bd_t *bis)#if defined(FEC_ENET ) || defined(CONFIG_ETHER_ON_FCC )fec_initialize (bis);#endif -#if defined(CONFIG_AU1X00 ) -au1x00_enet_initialize (bis); -#endif #if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);#endif
Hi Shinya,
On Sat, Oct 18, 2008 at 7:31 PM, Shinya Kuribayashi <[email protected]
Quoted 6 lines
wrote:
This patch will move
au1x00_eth_initializefromnet/eth.ctocpu_eth_initas a part of ongoingeth_initializecleanup work. The function ret value is also fixed as it should be negative on fail.
Quoted 6 lines
Signed-off-by Shinya Kuribayashi <[email protected]>---
Hi Ben,build tested. Please review.
thanks for doing this and saving me some work!
cpu/mips/cpu.c
Quoted 27 lines
Shinya
cpu/mips/au1x00_eth.c | 2 +- cpu/mips/cpu.c | 7 +++++++ include/netdev.h | 1 + net/eth.c | 4 ---- 4 files changed, 9 insertions(+), 5 deletions(-)cpu/mips/au1x00_eth.c +1
-1@@ -283,7 +283,7 @@ int au1x00_enet_initialize(bd_t *bis){if ((dev = (struct eth_device *)malloc (sizeof *dev)) ==NULL ) {puts ("malloc failed\n" ); -return 0 ; +return -1 ; }memset (dev,0 ,sizeof *dev);cpu/mips/cpu.c +0
-0
Please add #include "netdev.h" to top of this file.
cpu/mips/cpu.c void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1) · line 82
Quoted 13 lines
cpu/mips/cpu.c +0
-0@@ -73,3 +73,10 @@ void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1)write_c0_index (index);tlb_write_indexed ();}
cpu/mips/cpu.c +7
-0+ +int cpu_eth_init (bd_t *bis) +{ +#ifdef CONFIG_SOC_AU1X00 +return au1x00_enet_initialize (bis); +#endif +}
This will warn/error if CONFIG_SOC_AU1X00 isn't defined. I recommend something like:
int cpu_eth_init(bd_t *bis)
{
int rc = 0;
#ifdef CONFIG_SCO_AU1X00
rc = au1x00_enet_initialize(bis);
#endif
return rc;
}Quoted 36 lines
include/netdev.h +1
-0@@ -41,6 +41,7 @@ int board_eth_init(bd_t *bis);int cpu_eth_init (bd_t *bis);/* Driver initialization prototypes */ +int au1x00_enet_initialize (bd_t *);int bfin_EMAC_initialize (bd_t *bis);int dc21x4x_initialize (bd_t *bis);int e1000_initialize (bd_t *bis);net/eth.c +0
-4@@ -39,7 +39,6 @@ static int __def_eth_init(bd_t *bis)int cpu_eth_init (bd_t *bis) __attribute((weak,alias ("__def_eth_init" )));int board_eth_init (bd_t *bis) __attribute((weak,alias ("__def_eth_init" ))); -extern int au1x00_enet_initialize (bd_t *);extern int fec_initialize (bd_t *);extern int mpc8220_fec_initialize (bd_t *);extern int mv6436x_eth_initialize (bd_t *);@@ -190,9 +189,6 @@ int eth_initialize(bd_t *bis)#if defined(FEC_ENET ) || defined(CONFIG_ETHER_ON_FCC )fec_initialize (bis);#endif -#if defined(CONFIG_AU1X00 ) -au1x00_enet_initialize (bis); -#endif #if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);#endif
Quoted 7 lines · Ben Warren
diff --git a/cpu/mips/cpu.c b/cpu/mips/cpu.c index 38d8697..c70cf0b 100644 --- a/cpu/mips/cpu.c +++ b/cpu/mips/cpu.cPlease add #include "
netdev.h" to top of this file.
Oops, will fix.
Quoted 16 lines
@@ -73,3 +73,10 @@ void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1) write_c0_index(index); tlb_write_indexed(); } + +int cpu_eth_init(bd_t *bis) +{ +#ifdef CONFIG_SOC_AU1X00 + return au1x00_enet_initialize(bis); +#endif +}This will warn/error if
CONFIG_SOC_AU1X00isn't defined. I recommend something like:
Quoted 8 lines
int
cpu_eth_init(bd_t *bis){ int rc = 0; #ifdef CONFIG_SCO_AU1X00 rc = au1x00_enet_initialize(bis); #endif return rc; }
Ok. Updated patch will follow soon.
Thanks for your comments,
Shinya
PATCH 1/1 net: Move initialization of Au1x00 SoC ethernet MAC to cpu_eth_init
In reply to Shinya KuribayashiThis patch will move au1x00_eth_initialize from net/eth.c to cpu_eth_init as a part of ongoing eth_initialize cleanup work. The function ret value is also fixed as it should be negative on fail.
---
Changes in rev2:
* cpu/mips/cpu.c: Include <netdev.h>
* cpu/mips/cpu.c: cpu_eth_init: Always return 0 regardless of au1x00_eth_initialize ret value. We'll ignore it for now since it's not used anywhere.
cpu/mips/au1x00_eth.c | 2 +- cpu/mips/cpu.c | 9 +++++++++ include/netdev.h | 1 + net/eth.c | 4 ---- 4 files changed, 11 insertions(+), 5 deletions(-)
cpu/mips/au1x00_eth.c +1 -1
@@ -283,7 +283,7 @@ int au1x00_enet_initialize(bd_t *bis){if ((dev = (struct eth_device *)malloc (sizeof *dev)) ==NULL ) {puts ("malloc failed\n" ); -return 0 ; +return -1 ; }memset (dev,0 ,sizeof *dev);
cpu/mips/cpu.c +9 -0
@@ -23,6 +23,7 @@#include <common.h> #include <command.h> +#include <netdev.h> #include <asm/mipsregs.h> #include <asm/cacheops.h> #include <asm/reboot.h>
@@ -73,3 +74,11 @@ void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1)write_c0_index (index);tlb_write_indexed (); } + +int cpu_eth_init (bd_t *bis) +{ +#ifdef CONFIG_SOC_AU1X00 +au1x00_enet_initialize (bis); +#endif +return 0 ; +}
include/netdev.h +1 -0
@@ -41,6 +41,7 @@ int board_eth_init(bd_t *bis);int cpu_eth_init (bd_t *bis);/* Driver initialization prototypes */ +int au1x00_enet_initialize (bd_t *);int bfin_EMAC_initialize (bd_t *bis);int dc21x4x_initialize (bd_t *bis);int e1000_initialize (bd_t *bis);
net/eth.c +0 -4
@@ -39,7 +39,6 @@ static int __def_eth_init(bd_t *bis)int cpu_eth_init (bd_t *bis) __attribute((weak,alias ("__def_eth_init" )));int board_eth_init (bd_t *bis) __attribute((weak,alias ("__def_eth_init" ))); -extern int au1x00_enet_initialize (bd_t *);extern int fec_initialize (bd_t *);extern int mpc8220_fec_initialize (bd_t *);extern int mv6436x_eth_initialize (bd_t *);
@@ -190,9 +189,6 @@ int eth_initialize(bd_t *bis)#if defined(FEC_ENET ) || defined(CONFIG_ETHER_ON_FCC )fec_initialize (bis);#endif -#if defined(CONFIG_AU1X00 ) -au1x00_enet_initialize (bis); -#endif #if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);#endif