From 0b8cbc3c459de326013070f1dba49c0fa296e9d4 Mon Sep 17 00:00:00 2001 From: Wright Feng Date: Wed, 5 Jan 2022 22:56:09 -0600 Subject: [PATCH 083/296] brcmfmac: Disable out-of-band device wake based DeepSleep State Machine The out-of-band device wake is not supported in host side, so we disable it via host cap if PCIE shared version is >= 6. This change also reduces 7.9mA current consumption in VBAT a(8.0mA to 0.1mA) fter loading the driver in PM2 state. --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index 0198eabb056d..b44753a214ed 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -259,7 +259,8 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = { #define BRCMF_DEF_MAX_RXBUFPOST 255 -#define BRCMF_H2D_ENABLE_HOSTRDY 0x400 +#define BRCMF_HOSTCAP_H2D_ENABLE_HOSTRDY 0x400 +#define BRCMF_HOSTCAP_DS_NO_OOB_DW 0x1000 #define BRCMF_CONSOLE_BUFADDR_OFFSET 8 #define BRCMF_CONSOLE_BUFSIZE_OFFSET 12 @@ -2071,18 +2072,22 @@ brcmf_pcie_init_share_ram_info(struct brcmf_pciedev_info *devinfo, if (shared->version >= BRCMF_PCIE_SHARED_VERSION_6) { host_cap = shared->version; + /* Disable OOB Device Wake based DeepSleep State Machine */ + host_cap |= BRCMF_HOSTCAP_DS_NO_OOB_DW; + devinfo->hostready = ((shared->flags & BRCMF_PCIE_SHARED_HOSTRDY_DB1) == BRCMF_PCIE_SHARED_HOSTRDY_DB1); if (devinfo->hostready) { brcmf_dbg(PCIE, "HostReady supported by dongle.\n"); - host_cap = host_cap | BRCMF_H2D_ENABLE_HOSTRDY; + host_cap |= BRCMF_HOSTCAP_H2D_ENABLE_HOSTRDY; } devinfo->use_mailbox = ((shared->flags & BRCMF_PCIE_SHARED_USE_MAILBOX) == BRCMF_PCIE_SHARED_USE_MAILBOX); devinfo->use_d0_inform = false; addr = sharedram_addr + BRCMF_SHARED_HOST_CAP_OFFSET; + brcmf_pcie_write_tcm32(devinfo, addr, host_cap); } else { devinfo->use_d0_inform = true; -- 2.25.1