summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2014-01-29 15:32:24 +0100
committerJohn W. Linville <linville@tuxdriver.com>2014-02-12 15:35:54 -0500
commit2da5cb297918f4f2321a8e4e8fe25a6b472c69fc (patch)
tree4f7a82864c765d5c4c692c3c916c342c9a7d69e1
parent787eb033f9950788f7fc520e8532b85a86d3ca02 (diff)
brcmfmac: CR4 takes precedence over CM3 in brcmf_chip_enter_download()
In the enter and exit download sequence the chip core info was checked for presence of CM3 ARM core. If found it would enter download state for the CM3. However, on devices that have a CM3 and CR4 this is not correct and the CR4 should be used to enter download state. This patch changes the ARM core lookup giving CR4 precedence. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/chip.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/brcm80211/brcmfmac/chip.c
index 724a40fd671..a07b95ef9e7 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/chip.c
@@ -967,13 +967,13 @@ void brcmf_chip_enter_download(struct brcmf_chip *pub)
brcmf_dbg(TRACE, "Enter\n");
chip = container_of(pub, struct brcmf_chip_priv, pub);
- arm = brcmf_chip_get_core(pub, BCMA_CORE_ARM_CM3);
+ arm = brcmf_chip_get_core(pub, BCMA_CORE_ARM_CR4);
if (arm) {
- brcmf_chip_cm3_enterdl(chip);
+ brcmf_chip_cr4_enterdl(chip);
return;
}
- brcmf_chip_cr4_enterdl(chip);
+ brcmf_chip_cm3_enterdl(chip);
}
bool brcmf_chip_exit_download(struct brcmf_chip *pub, u32 rstvec)
@@ -984,11 +984,11 @@ bool brcmf_chip_exit_download(struct brcmf_chip *pub, u32 rstvec)
brcmf_dbg(TRACE, "Enter\n");
chip = container_of(pub, struct brcmf_chip_priv, pub);
- arm = brcmf_chip_get_core(pub, BCMA_CORE_ARM_CM3);
+ arm = brcmf_chip_get_core(pub, BCMA_CORE_ARM_CR4);
if (arm)
- return brcmf_chip_cm3_exitdl(chip);
+ return brcmf_chip_cr4_exitdl(chip, rstvec);
- return brcmf_chip_cr4_exitdl(chip, rstvec);
+ return brcmf_chip_cm3_exitdl(chip);
}
bool brcmf_chip_sr_capable(struct brcmf_chip *pub)