aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@openwrt.org>2010-12-21 13:34:09 +0000
committerHauke Mehrtens <hauke@openwrt.org>2010-12-21 13:34:09 +0000
commit4ce56cc4546c0f93e6e938760ed8eed5d1ae4d18 (patch)
tree396b66d32e35c73571011c2a99be9a01d9a0ec6d /target/linux/brcm47xx
parentf48a6b252d1509dcbcccffaa324fc1d4afb018f0 (diff)
downloadmaster-187ad058-4ce56cc4546c0f93e6e938760ed8eed5d1ae4d18.tar.gz
master-187ad058-4ce56cc4546c0f93e6e938760ed8eed5d1ae4d18.tar.bz2
master-187ad058-4ce56cc4546c0f93e6e938760ed8eed5d1ae4d18.zip
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
Diffstat (limited to 'target/linux/brcm47xx')
-rw-r--r--target/linux/brcm47xx/patches-2.6.36/018-wgt634u_mac_address_parser_fix.patch20
-rw-r--r--target/linux/brcm47xx/patches-2.6.37/018-wgt634u_mac_address_parser_fix.patch20
2 files changed, 40 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.36/018-wgt634u_mac_address_parser_fix.patch b/target/linux/brcm47xx/patches-2.6.36/018-wgt634u_mac_address_parser_fix.patch
new file mode 100644
index 0000000000..17d4ed610a
--- /dev/null
+++ b/target/linux/brcm47xx/patches-2.6.36/018-wgt634u_mac_address_parser_fix.patch
@@ -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
diff --git a/target/linux/brcm47xx/patches-2.6.37/018-wgt634u_mac_address_parser_fix.patch b/target/linux/brcm47xx/patches-2.6.37/018-wgt634u_mac_address_parser_fix.patch
new file mode 100644
index 0000000000..17d4ed610a
--- /dev/null
+++ b/target/linux/brcm47xx/patches-2.6.37/018-wgt634u_mac_address_parser_fix.patch
@@ -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