bcma: use fallback sprom if no on chip sprom is available
bcma should check for a fallback sprom every time it can not find a
sprom on the card itself or a normal external sprom mapped into the
memory of the chip. When otp sprom support was introduced it tried to
read out the sprom from the wireless chip also if no otp sprom was
available. This caused a Data bus error in bcma_sprom_get() when
reading out the sprom for the SoC.
This fixes a regression introduced in commit:
commit 10d8493cd9
Author: Arend van Spriel <arend@broadcom.com>
Date: Tue Mar 6 15:50:48 2012 +0100
bcma: add support for on-chip OTP memory used for SPROM storage
This patch was tested on a Netgear WNDR3400 (Broadcom BCM4718 SoC).
Reported-by: Nick Bowler <nbowler@elliptictech.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
428ca8a706
commit
32998cc96a
1 changed files with 5 additions and 2 deletions
|
@ -404,16 +404,19 @@ int bcma_sprom_get(struct bcma_bus *bus)
|
|||
return -EOPNOTSUPP;
|
||||
|
||||
if (!bcma_sprom_ext_available(bus)) {
|
||||
bool sprom_onchip;
|
||||
|
||||
/*
|
||||
* External SPROM takes precedence so check
|
||||
* on-chip OTP only when no external SPROM
|
||||
* is present.
|
||||
*/
|
||||
if (bcma_sprom_onchip_available(bus)) {
|
||||
sprom_onchip = bcma_sprom_onchip_available(bus);
|
||||
if (sprom_onchip) {
|
||||
/* determine offset */
|
||||
offset = bcma_sprom_onchip_offset(bus);
|
||||
}
|
||||
if (!offset) {
|
||||
if (!offset || !sprom_onchip) {
|
||||
/*
|
||||
* Maybe there is no SPROM on the device?
|
||||
* Now we ask the arch code if there is some sprom
|
||||
|
|
Loading…
Reference in a new issue