Files
linux-t2-patches/8004-workaround-disable-D3-for-BCM4377b.patch
T
Redecorating 77ce64340d Support suspend on 4377
Thanks to Tremendous Sasquath for this patch. It also needs a script,
see here: https://github.com/t2linux/wiki/commit/7947992e6be8ea6bba8b42c64ec32b62444eb22d
2021-11-12 18:42:46 +11:00

29 lines
1.2 KiB
Diff

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");