aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2012-09-30 11:45:31 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2012-09-30 11:45:31 +0000
commit642fe7f10a9227e7f6d6d2b54355b6f8e8610918 (patch)
tree7795b3b0975dd361185a4539f5c72efcca45b438 /target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch
parent42952fd94fdd974714ceb9206b9ba7f30bc04415 (diff)
downloadupstream-642fe7f10a9227e7f6d6d2b54355b6f8e8610918.tar.gz
upstream-642fe7f10a9227e7f6d6d2b54355b6f8e8610918.tar.bz2
upstream-642fe7f10a9227e7f6d6d2b54355b6f8e8610918.zip
bcma: use fallback sprom if sprom on card was not valid
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. SVN-Revision: 33601
Diffstat (limited to 'target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch')
-rw-r--r--target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch15
1 files changed, 15 insertions, 0 deletions
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
index 0000000000..b6e6480567
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.3/203-bcma-use-fallback-sprom-if-sprom-on-card-was-not-val.patch
@@ -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);
+