summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/broadcom/brcm80211/brcmfmac
diff options
context:
space:
mode:
authorChi-Hsien Lin <chi-hsien.lin@cypress.com>2018-06-12 04:41:43 -0500
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:34:12 +0800
commit2611284625850ab2e77728c7a275adea9529bae0 (patch)
treec7c4a5c6e67fa2e76b6a913e55cd5a2ce09c7169 /drivers/net/wireless/broadcom/brcm80211/brcmfmac
parentb04e89876bda5965c27434e1505be6e7c202a722 (diff)
MLK-19517-17 brcmfmac: 4373 save-restore support
Use sr_eng_en bit to check 4373 sr support. Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com> Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Diffstat (limited to 'drivers/net/wireless/broadcom/brcm80211/brcmfmac')
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
index 01c6a4923aa1..ba1d279497ea 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
@@ -1329,7 +1329,7 @@ bool brcmf_chip_set_active(struct brcmf_chip *pub, u32 rstvec)
bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
{
- u32 base, addr, reg, pmu_cc3_mask = ~0;
+ u32 base, addr, reg, sr_eng_en, pmu_cc3_mask = ~0;
struct brcmf_chip_priv *chip;
struct brcmf_core *pmu = brcmf_chip_get_pmu(pub);
@@ -1362,6 +1362,12 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
addr = CORE_CC_REG(base, sr_control1);
reg = chip->ops->read32(chip->ctx, addr);
return reg != 0;
+ case CY_CC_4373_CHIP_ID:
+ /* explicitly check SR engine enable bit */
+ sr_eng_en = BIT(0);
+ addr = CORE_CC_REG(base, sr_control0);
+ reg = chip->ops->read32(chip->ctx, addr);
+ return (reg & sr_eng_en) != 0;
case CY_CC_43012_CHIP_ID:
addr = CORE_CC_REG(pmu->base, retention_ctl);
reg = chip->ops->read32(chip->ctx, addr);