diff options
3 files changed, 46 insertions, 2 deletions
| 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 000000000..a9f176f9a --- /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 5412aa61e..38a1fce64 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 14ac90eff..da43422d6 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); | 
