From: Hauke Mehrtens Date: Sat, 29 Sep 2012 18:38:11 +0000 (+0200) Subject: bcma: use fallback sprom if sprom on card was not valid X-Git-Tag: v3.8-rc1~139^2~17^2~341 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=017c4c3bdeb4e6c38094eb2330a57370f68f4853;p=platform%2Fkernel%2Flinux-stable.git 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. This is the case for the PCIe cards in my ASUS RT-N66U (BCM4706 + 2 times BCM4331) and I have heard of someone having the same problem with an other PCIe card connected to an other Broadcom SoC. Signed-off-by: Hauke Mehrtens Signed-off-by: John W. Linville --- diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c index 0d546b6..4adf9ef 100644 --- a/drivers/bcma/sprom.c +++ b/drivers/bcma/sprom.c @@ -595,8 +595,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);