[brcm47xx]: bcma: use fallback sprom if sprom on card was not valid
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 30 Sep 2012 11:45:31 +0000 (11:45 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 30 Sep 2012 11:45:31 +0000 (11:45 +0000)
Sometimes the PCIe card indicates that it has a sprom somewhere and we
are able to read the memory region, but it is empty and not valid. In
these cases we should try to use the fallback sprom as a last chance.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33601 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch [new file with mode: 0644]

diff --git a/target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch b/target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch
new file mode 100644 (file)
index 0000000..b6e6480
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/drivers/bcma/sprom.c
++++ b/drivers/bcma/sprom.c
+@@ -591,8 +591,11 @@ int bcma_sprom_get(struct bcma_bus *bus)
+               bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, true);
+       err = bcma_sprom_valid(sprom);
+-      if (err)
++      if (err) {
++              bcma_warn(bus, "invalid sprom read from the PCIe card, try to use fallback sprom\n");
++              err = bcma_fill_sprom_with_fallback(bus, &bus->sprom);
+               goto out;
++      }
+       bcma_sprom_extract_r8(bus, sprom);