Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 017c4c3b authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by John W. Linville
Browse files

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: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d954162c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);