BCMA - Reorder SPROM fill
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 11 Mar 2012 11:50:59 +0000 (11:50 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 11 Mar 2012 11:50:59 +0000 (11:50 +0000)
The SPROM is initialized in bcm47xx_fill_sprom, so move the call to bcm47xx_fill_sprom_ethernet after it.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 30873

target/linux/brcm47xx/patches-3.2/231-bcma_reorder_sprom_fill.patch [new file with mode: 0644]
target/linux/brcm47xx/patches-3.2/400-arch-bcm47xx.patch
target/linux/brcm47xx/patches-3.2/980-wnr834b_no_cardbus_invariant.patch

diff --git a/target/linux/brcm47xx/patches-3.2/231-bcma_reorder_sprom_fill.patch b/target/linux/brcm47xx/patches-3.2/231-bcma_reorder_sprom_fill.patch
new file mode 100644 (file)
index 0000000..a9f176f
--- /dev/null
@@ -0,0 +1,44 @@
+--- a/arch/mips/bcm47xx/setup.c
++++ b/arch/mips/bcm47xx/setup.c
+@@ -96,6 +96,7 @@ static int bcm47xx_get_sprom_ssb(struct
+       char prefix[10];
+       if (bus->bustype == SSB_BUSTYPE_PCI) {
++              memset(out, 0, sizeof(struct ssb_sprom));
+               snprintf(prefix, sizeof(prefix), "pci/%u/%u/",
+                        bus->host_pci->bus->number + 1,
+                        PCI_SLOT(bus->host_pci->devfn));
+@@ -124,6 +125,7 @@ static int bcm47xx_get_invariants(struct
+       if (nvram_getenv("boardrev", buf, sizeof(buf)) >= 0)
+               iv->boardinfo.rev = (u16)simple_strtoul(buf, NULL, 0);
++      memset(&iv->sprom, 0, sizeof(struct ssb_sprom));
+       bcm47xx_fill_sprom(&iv->sprom, NULL);
+       if (nvram_getenv("cardbus", buf, sizeof(buf)) >= 0)
+@@ -204,12 +206,14 @@ static int bcm47xx_get_sprom_bcma(struct
+       switch (bus->hosttype) {
+       case BCMA_HOSTTYPE_PCI:
++              memset(out, 0, sizeof(struct ssb_sprom));
+               snprintf(prefix, sizeof(prefix), "pci/%u/%u/",
+                        bus->host_pci->bus->number + 1,
+                        PCI_SLOT(bus->host_pci->devfn));
+               bcm47xx_fill_sprom(out, prefix);
+               return 0;
+       case BCMA_HOSTTYPE_SOC:
++              memset(out, 0, sizeof(struct ssb_sprom));
+               bcm47xx_fill_sprom_ethernet(out, NULL);
+               core = bcma_find_core(bus, BCMA_CORE_80211);
+               if (core) {
+--- a/arch/mips/bcm47xx/sprom.c
++++ b/arch/mips/bcm47xx/sprom.c
+@@ -555,8 +555,6 @@ void bcm47xx_fill_sprom_ethernet(struct
+ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix)
+ {
+-      memset(sprom, 0, sizeof(struct ssb_sprom));
+-
+       bcm47xx_fill_sprom_ethernet(sprom, prefix);
+       nvram_read_u8(prefix, NULL, "sromrev", &sprom->revision, 0);
index 5412aa61e000f29c26946ea3c8faa7439410fe91..38a1fce6430a6f75b03a19ca643a446e43709726 100644 (file)
@@ -33,7 +33,7 @@
 +EXPORT_SYMBOL(nvram_get);
 --- a/arch/mips/bcm47xx/setup.c
 +++ b/arch/mips/bcm47xx/setup.c
-@@ -351,3 +351,20 @@ static int __init bcm47xx_register_flash
+@@ -355,3 +355,20 @@ static int __init bcm47xx_register_flash
        return -1;
  }
  fs_initcall(bcm47xx_register_flash);
index 14ac90eff15b5fd4595c108559fa92d6202e41b3..da43422d6fd3d6047554fe5d485e3e277f5cafc7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm47xx/setup.c
 +++ b/arch/mips/bcm47xx/setup.c
-@@ -129,6 +129,10 @@ static int bcm47xx_get_invariants(struct
+@@ -131,6 +131,10 @@ static int bcm47xx_get_invariants(struct
        if (nvram_getenv("cardbus", buf, sizeof(buf)) >= 0)
                iv->has_cardbus_slot = !!simple_strtoul(buf, NULL, 10);