diff options
author | Magnus Damm <damm@opensource.se> | 2009-10-27 10:47:34 +0000 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-10-28 09:18:24 +0900 |
commit | 8013cc9a5d2f6dcb79ffdcf707cf90ba120edfec (patch) | |
tree | bcdfe11905b811a77df5d60c635d7c04f9e91b71 /arch | |
parent | 9b3b21f788a9d7ff999544bf9b7ba950f68a9357 (diff) | |
download | op-kernel-dev-8013cc9a5d2f6dcb79ffdcf707cf90ba120edfec.zip op-kernel-dev-8013cc9a5d2f6dcb79ffdcf707cf90ba120edfec.tar.gz |
sh: mac address through private data for sh_eth on ms7724se
Convert the ms7724se board code to pass the mac
address to the sh_eth driver using platform data.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sh/boards/mach-se/7724/setup.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c index ce6b36e..4488b3e 100644 --- a/arch/sh/boards/mach-se/7724/setup.c +++ b/arch/sh/boards/mach-se/7724/setup.c @@ -507,7 +507,7 @@ static int __init sh_eth_is_eeprom_ready(void) static void __init sh_eth_init(void) { int i; - u16 mac[3]; + u16 mac; /* check EEPROM status */ if (!sh_eth_is_eeprom_ready()) @@ -521,16 +521,10 @@ static void __init sh_eth_init(void) if (!sh_eth_is_eeprom_ready()) return; - mac[i] = ctrl_inw(EEPROM_DATA); - mac[i] = ((mac[i] & 0xFF) << 8) | (mac[i] >> 8); /* swap */ + mac = ctrl_inw(EEPROM_DATA); + sh_eth_plat.mac_addr[i << 1] = mac & 0xff; + sh_eth_plat.mac_addr[(i << 1) + 1] = mac >> 8; } - - /* reset sh-eth */ - ctrl_outl(0x1, SH_ETH_ADDR + 0x0); - - /* set MAC addr */ - ctrl_outl(((mac[0] << 16) | (mac[1])), SH_ETH_MAHR); - ctrl_outl((mac[2]), SH_ETH_MALR); } #define SW4140 0xBA201000 |