brcm47xx: wgt634u mac address fix

The Netgear wgt634u uses minus between the hex digest of the mac 
address and all other broadcom devices are using colons between the hex 
digest. Now the mac address is correctly parsed also when minus is used.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24749 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
Hauke Mehrtens
2010-12-21 13:34:09 +00:00
parent f48a6b252d
commit 4ce56cc454
2 changed files with 40 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
--- a/arch/mips/include/asm/mach-bcm47xx/nvram.h
+++ b/arch/mips/include/asm/mach-bcm47xx/nvram.h
@@ -39,8 +39,15 @@ extern int nvram_getenv(char *name, char
static inline void nvram_parse_macaddr(char *buf, u8 *macaddr)
{
- sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], &macaddr[1],
- &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ if (strchr(buf, ':')) {
+ sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], &macaddr[1],
+ &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ } else if (strchr(buf, '-')) {
+ sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0], &macaddr[1],
+ &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ } else {
+ printk(KERN_WARNING "Can not parse mac address: %s\n", buf);
+ }
}
#endif

View File

@@ -0,0 +1,20 @@
--- a/arch/mips/include/asm/mach-bcm47xx/nvram.h
+++ b/arch/mips/include/asm/mach-bcm47xx/nvram.h
@@ -39,8 +39,15 @@ extern int nvram_getenv(char *name, char
static inline void nvram_parse_macaddr(char *buf, u8 *macaddr)
{
- sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], &macaddr[1],
- &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ if (strchr(buf, ':')) {
+ sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], &macaddr[1],
+ &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ } else if (strchr(buf, '-')) {
+ sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0], &macaddr[1],
+ &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ } else {
+ printk(KERN_WARNING "Can not parse mac address: %s\n", buf);
+ }
}
#endif