|
@@ -600,6 +600,12 @@ static void brcmf_chip_socram_ramsize(struct brcmf_core_priv *sr, u32 *ramsize,
|
|
|
if (sr->chip->pub.chiprev < 2)
|
|
|
*srsize = (32 * 1024);
|
|
|
break;
|
|
|
+ case BRCM_CC_43430_CHIP_ID:
|
|
|
+ /* assume sr for now as we can not check
|
|
|
+ * firmware sr capability at this point.
|
|
|
+ */
|
|
|
+ *srsize = (64 * 1024);
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -1072,6 +1078,7 @@ static void
|
|
|
brcmf_chip_cm3_set_passive(struct brcmf_chip_priv *chip)
|
|
|
{
|
|
|
struct brcmf_core *core;
|
|
|
+ struct brcmf_core_priv *sr;
|
|
|
|
|
|
brcmf_chip_disable_arm(chip, BCMA_CORE_ARM_CM3);
|
|
|
core = brcmf_chip_get_core(&chip->pub, BCMA_CORE_80211);
|
|
@@ -1081,6 +1088,13 @@ brcmf_chip_cm3_set_passive(struct brcmf_chip_priv *chip)
|
|
|
D11_BCMA_IOCTL_PHYCLOCKEN);
|
|
|
core = brcmf_chip_get_core(&chip->pub, BCMA_CORE_INTERNAL_MEM);
|
|
|
brcmf_chip_resetcore(core, 0, 0, 0);
|
|
|
+
|
|
|
+ /* disable bank #3 remap for this device */
|
|
|
+ if (chip->pub.chip == BRCM_CC_43430_CHIP_ID) {
|
|
|
+ sr = container_of(core, struct brcmf_core_priv, pub);
|
|
|
+ brcmf_chip_core_write32(sr, SOCRAMREGOFFS(bankidx), 3);
|
|
|
+ brcmf_chip_core_write32(sr, SOCRAMREGOFFS(bankpda), 0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static bool brcmf_chip_cm3_set_active(struct brcmf_chip_priv *chip)
|
|
@@ -1188,6 +1202,10 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
|
|
|
addr = CORE_CC_REG(base, chipcontrol_data);
|
|
|
reg = chip->ops->read32(chip->ctx, addr);
|
|
|
return (reg & pmu_cc3_mask) != 0;
|
|
|
+ case BRCM_CC_43430_CHIP_ID:
|
|
|
+ addr = CORE_CC_REG(base, sr_control1);
|
|
|
+ reg = chip->ops->read32(chip->ctx, addr);
|
|
|
+ return reg != 0;
|
|
|
default:
|
|
|
addr = CORE_CC_REG(base, pmucapabilities_ext);
|
|
|
reg = chip->ops->read32(chip->ctx, addr);
|