diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index 8b149996f..78f2cc7c1 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -2022,6 +2022,11 @@ static int brcmf_pcie_pm_enter_D3(struct device *dev) bus = dev_get_drvdata(dev); devinfo = bus->bus_priv.pcie->devinfo; + if(devinfo->ci->chip == BRCM_CC_4377_CHIP_ID) { + brcmf_dbg(PCIE, "Skip enter D3 for 4377, remember to rfkill block before this\n"); + return 0; + } + brcmf_bus_change_state(bus, BRCMF_BUS_DOWN); devinfo->mbdata_completed = false; @@ -2054,6 +2059,11 @@ static int brcmf_pcie_pm_leave_D3(struct device *dev) devinfo = bus->bus_priv.pcie->devinfo; brcmf_dbg(PCIE, "Enter, dev=%p, bus=%p\n", dev, bus); + if(devinfo->ci->chip == BRCM_CC_4377_CHIP_ID) { + brcmf_dbg(PCIE, "Skip leave D3 for 4377, remember to rfkill unblock after this\n"); + return 0; + } + /* Check if device is still up and running, if so we are ready */ if (brcmf_pcie_read_reg32(devinfo, BRCMF_PCIE_PCIE2REG_INTMASK) != 0) { brcmf_dbg(PCIE, "Try to wakeup device....\n");