aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2014-10-02 12:24:05 +0000
committerJonas Gorski <jogo@openwrt.org>2014-10-02 12:24:05 +0000
commit9a24294b02236a1f97f7e303222f9ea29fb536d0 (patch)
tree9dfd2144b82b7a156d7a88f832a3530363784b17
parentf9fb48c6bced55a3a9f27476139a2a2bcdcf9604 (diff)
downloadupstream-9a24294b02236a1f97f7e303222f9ea29fb536d0.tar.gz
upstream-9a24294b02236a1f97f7e303222f9ea29fb536d0.tar.bz2
upstream-9a24294b02236a1f97f7e303222f9ea29fb536d0.zip
brcm-wl: use new brcm63xx fallback sprom
This fixes brcm63xx fallback sprom extraction. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 42725
-rw-r--r--package/kernel/broadcom-wl/patches/910-fallback-sprom.patch24
1 files changed, 9 insertions, 15 deletions
diff --git a/package/kernel/broadcom-wl/patches/910-fallback-sprom.patch b/package/kernel/broadcom-wl/patches/910-fallback-sprom.patch
index 749ecbf31f..a85e40bc14 100644
--- a/package/kernel/broadcom-wl/patches/910-fallback-sprom.patch
+++ b/package/kernel/broadcom-wl/patches/910-fallback-sprom.patch
@@ -6,24 +6,13 @@
+#if defined(CONFIG_SSB_PCIHOST) && defined(CONFIG_BOARD_BCM963XX)
+#include <linux/ssb/ssb.h>
-+extern struct ssb_sprom bcm63xx_sprom;
++extern int bcm63xx_get_fallback_sprom(uint pci_bus, uint pci_slot, struct ssb_sprom *out);
+#endif
+
#ifdef WLTEST
#include <sbsprom.h>
#endif /* WLTEST */
-@@ -2058,6 +2063,10 @@ BCMATTACHFN(initvars_srom_pci)(si_t *sih
- bool flash = FALSE;
- int err = 0;
-
-+#if defined(CONFIG_SSB_PCIHOST) && defined(CONFIG_BOARD_BCM963XX)
-+ char eabuf[18];
-+#endif
-+
- /*
- * Apply CRC over SROM content regardless SROM is present or not,
- * and use variable <devpath>sromrev's existance in flash to decide
-@@ -2120,6 +2129,58 @@ BCMATTACHFN(initvars_srom_pci)(si_t *sih
+@@ -2120,6 +2125,63 @@ BCMATTACHFN(initvars_srom_pci)(si_t *sih
goto varscont;
}
@@ -32,9 +21,14 @@
+
+ if( base != NULL )
+ {
-+ varbuf_init(&b, base, MAXSZ_NVRAM_VARS);
++ char eabuf[18];
++ struct ssb_sprom bcm63xx_sprom;
++ uint pci_bus = osl_pci_bus(osh), pci_slot = osl_pci_slot(osh);
++
++ bcm63xx_get_fallback_sprom(pci_bus, pci_slot, &bcm63xx_sprom);
++ printk("BCM%X(%02x:%02x) using sprom version %i\n", sih->chip, pci_bus, pci_slot, bcm63xx_sprom.revision);
+
-+ printk("Got version %i SPROM from SSB\n", bcm63xx_sprom.revision);
++ varbuf_init(&b, base, MAXSZ_NVRAM_VARS);
+
+ varbuf_append(&b, vstr_sromrev, bcm63xx_sprom.revision);
+ varbuf_append(&b, vstr_boardrev, bcm63xx_sprom.board_rev);