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
This commit is contained in:
Hauke Mehrtens 2012-09-30 11:45:31 +00:00
parent 42952fd94f
commit 642fe7f10a

View file

@ -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);