MIPS: BCM63XX: generate WLAN MAC address after registering ethernet devices.
authorFlorian Fainelli <florian@openwrt.org>
Wed, 16 Nov 2011 18:49:58 +0000 (19:49 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 7 Dec 2011 22:03:04 +0000 (22:03 +0000)
In case the MAC address pool is not big enough to also register a WLAN device
prefer registering the Ethernet devices.

[ralf@linux-mips.org: Fixed formatting as per Sergei's complaint.]

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/3013/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm63xx/boards/board_bcm963xx.c

index ac948c2..e62461f 100644 (file)
@@ -791,18 +791,6 @@ void __init board_prom_init(void)
        }
 
        bcm_gpio_writel(val, GPIO_MODE_REG);
-
-       /* Generate MAC address for WLAN and
-        * register our SPROM */
-#ifdef CONFIG_SSB_PCIHOST
-       if (!board_get_mac_address(bcm63xx_sprom.il0mac)) {
-               memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
-               memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
-               if (ssb_arch_register_fallback_sprom(
-                               &bcm63xx_get_fallback_sprom) < 0)
-                       printk(KERN_ERR PFX "failed to register fallback SPROM\n");
-       }
-#endif
 }
 
 /*
@@ -886,6 +874,19 @@ int __init board_register_devices(void)
        if (board.has_dsp)
                bcm63xx_dsp_register(&board.dsp);
 
+       /* Generate MAC address for WLAN and register our SPROM,
+        * do this after registering enet devices
+        */
+#ifdef CONFIG_SSB_PCIHOST
+       if (!board_get_mac_address(bcm63xx_sprom.il0mac)) {
+               memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
+               memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
+               if (ssb_arch_register_fallback_sprom(
+                               &bcm63xx_get_fallback_sprom) < 0)
+                       pr_err(PFX "failed to register fallback SPROM\n");
+       }
+#endif
+
        /* read base address of boot chip select (0) */
        val = bcm_mpi_readl(MPI_CSBASE_REG(0));
        val &= MPI_CSBASE_BASE_MASK;