From c52054e568d1707b8d191e639b64c919831cb767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Sun, 16 Jun 2019 18:56:15 +0200 Subject: mac80211: brcm: backport remaining brcmfmac 5.2 patches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This improves FullMAC firmware compatibility, adds logging in case of firmware crash and *may* fix "Invalid packet id" errors. Signed-off-by: Rafał Miłecki (cherry picked from commit 8888cb725d492ad5cad5b59fc7117b006e1bba5a) --- ...nd-mailbox-interrupt-twice-for-specific-h.patch | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 package/kernel/mac80211/patches/brcm/372-v5.2-brcmfmac-send-mailbox-interrupt-twice-for-specific-h.patch (limited to 'package/kernel/mac80211/patches/brcm/372-v5.2-brcmfmac-send-mailbox-interrupt-twice-for-specific-h.patch') diff --git a/package/kernel/mac80211/patches/brcm/372-v5.2-brcmfmac-send-mailbox-interrupt-twice-for-specific-h.patch b/package/kernel/mac80211/patches/brcm/372-v5.2-brcmfmac-send-mailbox-interrupt-twice-for-specific-h.patch new file mode 100644 index 0000000000..1fcf8c70c7 --- /dev/null +++ b/package/kernel/mac80211/patches/brcm/372-v5.2-brcmfmac-send-mailbox-interrupt-twice-for-specific-h.patch @@ -0,0 +1,39 @@ +From 9ef77fbedad9ea8895cd5d7fb7aee16071f527dc Mon Sep 17 00:00:00 2001 +From: Wright Feng +Date: Fri, 26 Apr 2019 03:12:32 +0000 +Subject: [PATCH] brcmfmac: send mailbox interrupt twice for specific hardware + device + +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 +Signed-off-by: Kalle Valo +--- + drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- 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_pci + + 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; + } -- cgit v1.2.3