mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-08-22 02:49:18 +03:00
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
21 lines
775 B
Diff
21 lines
775 B
Diff
--- 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
|