Message ID | 1556248345-146837-1-git-send-email-wright.feng@cypress.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9ef77fbedad9ea8895cd5d7fb7aee16071f527dc |
Delegated to: | Kalle Valo |
Headers | show |
Series | [v3] brcmfmac: send mailbox interrupt twice for specific hardware device | expand |
Wright Feng <Wright.Feng@cypress.com> wrote: > For PCIE wireless device with core revision less than 14, device may miss > PCIE to System Backplane Interrupt via PCIEtoSBMailbox. So add sending > mail box interrupt twice as a hardware workaround. > > Signed-off-by: Wright Feng <wright.feng@cypress.com> Patch applied to wireless-drivers-next.git, thanks. 9ef77fbedad9 brcmfmac: send mailbox interrupt twice for specific hardware device
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index fd3968f..d7d3e93 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -675,6 +675,7 @@ static int brcmf_pcie_send_mb_data(struct brcmf_pciedev_info *devinfo, u32 htod_mb_data) { struct brcmf_pcie_shared_info *shared; + struct brcmf_core *core; u32 addr; u32 cur_htod_mb_data; u32 i; @@ -698,7 +699,11 @@ brcmf_pcie_send_mb_data(struct brcmf_pciedev_info *devinfo, u32 htod_mb_data) brcmf_pcie_write_tcm32(devinfo, addr, htod_mb_data); pci_write_config_dword(devinfo->pdev, BRCMF_PCIE_REG_SBMBX, 1); - pci_write_config_dword(devinfo->pdev, BRCMF_PCIE_REG_SBMBX, 1); + + /* Send mailbox interrupt twice as a hardware workaround */ + core = brcmf_chip_get_core(devinfo->ci, BCMA_CORE_PCIE2); + if (core->rev <= 13) + pci_write_config_dword(devinfo->pdev, BRCMF_PCIE_REG_SBMBX, 1); return 0; }
For PCIE wireless device with core revision less than 14, device may miss PCIE to System Backplane Interrupt via PCIEtoSBMailbox. So add sending mail box interrupt twice as a hardware workaround. Signed-off-by: Wright Feng <wright.feng@cypress.com> --- v2: add comment and check for PCIE core revision v3: fix compile error --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)