atheros: fix up the wlan mac address if the board data is missing

SVN-Revision: 15330
This commit is contained in:
Felix Fietkau 2009-04-21 18:48:59 +00:00
parent f73b4e0b8c
commit b31ce584a3
2 changed files with 5 additions and 3 deletions

View File

@ -82,7 +82,7 @@
+obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o +obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o
--- /dev/null --- /dev/null
+++ b/arch/mips/ar231x/board.c +++ b/arch/mips/ar231x/board.c
@@ -0,0 +1,247 @@ @@ -0,0 +1,249 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive + * License. See the file "COPYING" in the main directory of this archive
@ -251,6 +251,8 @@
+ config = ar231x_board.config; + config = ar231x_board.config;
+ if (!memcmp(config->enet0_mac, "\x00\x00\x00\x00\x00\x00", 6)) { + if (!memcmp(config->enet0_mac, "\x00\x00\x00\x00\x00\x00", 6)) {
+ printk(KERN_INFO "Fixing up empty mac addresses\n"); + printk(KERN_INFO "Fixing up empty mac addresses\n");
+ random_ether_addr(config->wlan0_mac);
+ config->wlan0_mac[0] &= ~0x06;
+ random_ether_addr(config->enet0_mac); + random_ether_addr(config->enet0_mac);
+ random_ether_addr(config->enet1_mac); + random_ether_addr(config->enet1_mac);
+ } + }

View File

@ -256,7 +256,7 @@
+ default y + default y
--- a/arch/mips/ar231x/ar2315.c --- a/arch/mips/ar231x/ar2315.c
+++ b/arch/mips/ar231x/ar2315.c +++ b/arch/mips/ar231x/ar2315.c
@@ -63,6 +63,27 @@ static inline void ar2315_gpio_irq(void) @@ -61,6 +61,27 @@ static inline void ar2315_gpio_irq(void)
do_IRQ(AR531X_GPIO_IRQ_BASE + bit); do_IRQ(AR531X_GPIO_IRQ_BASE + bit);
} }
@ -284,7 +284,7 @@
/* /*
* Called when an interrupt is received, this function * Called when an interrupt is received, this function
@@ -81,6 +102,10 @@ ar2315_irq_dispatch(void) @@ -79,6 +100,10 @@ ar2315_irq_dispatch(void)
do_IRQ(AR2315_IRQ_WLAN0_INTRS); do_IRQ(AR2315_IRQ_WLAN0_INTRS);
else if (pending & CAUSEF_IP4) else if (pending & CAUSEF_IP4)
do_IRQ(AR2315_IRQ_ENET0_INTRS); do_IRQ(AR2315_IRQ_ENET0_INTRS);