From bbf739a59fc8f0eaa66b78d2f9e631cef1d569d0 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 11 Mar 2012 11:50:59 +0000 Subject: [PATCH] BCMA - Reorder SPROM fill The SPROM is initialized in bcm47xx_fill_sprom, so move the call to bcm47xx_fill_sprom_ethernet after it. Signed-off-by: Nathan Hintz SVN-Revision: 30873 --- .../231-bcma_reorder_sprom_fill.patch | 44 +++++++++++++++++++ .../patches-3.2/400-arch-bcm47xx.patch | 2 +- .../980-wnr834b_no_cardbus_invariant.patch | 2 +- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 target/linux/brcm47xx/patches-3.2/231-bcma_reorder_sprom_fill.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 index 0000000000..a9f176f9a0 --- /dev/null +++ b/target/linux/brcm47xx/patches-3.2/231-bcma_reorder_sprom_fill.patch @@ -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); diff --git a/target/linux/brcm47xx/patches-3.2/400-arch-bcm47xx.patch b/target/linux/brcm47xx/patches-3.2/400-arch-bcm47xx.patch index 5412aa61e0..38a1fce643 100644 --- a/target/linux/brcm47xx/patches-3.2/400-arch-bcm47xx.patch +++ b/target/linux/brcm47xx/patches-3.2/400-arch-bcm47xx.patch @@ -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); diff --git a/target/linux/brcm47xx/patches-3.2/980-wnr834b_no_cardbus_invariant.patch b/target/linux/brcm47xx/patches-3.2/980-wnr834b_no_cardbus_invariant.patch index 14ac90eff1..da43422d6f 100644 --- a/target/linux/brcm47xx/patches-3.2/980-wnr834b_no_cardbus_invariant.patch +++ b/target/linux/brcm47xx/patches-3.2/980-wnr834b_no_cardbus_invariant.patch @@ -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); -- 2.30.2