OSDN Git Service

brcmfmac: set SDIO F1 MesBusyCtrl for CYW4373
authorMadhan Mohan R <MadhanMohan.R@cypress.com>
Wed, 21 Nov 2018 07:53:45 +0000 (07:53 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 08:20:06 +0000 (09:20 +0100)
[ Upstream commit 58e4bbea0c1d9b5ace11df968c5dc096ce052a73 ]

Along with F2 watermark (existing) configuration, F1 MesBusyCtrl
should be enabled & sdio device RX FIFO watermark should be
configured to avoid overflow errors.

Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Madhan Mohan R <madhanmohan.r@cypress.com>
Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h

index e487dd7..abaed2f 100644 (file)
@@ -4133,6 +4133,9 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
                        devctl |= SBSDIO_DEVCTL_F2WM_ENAB;
                        brcmf_sdiod_writeb(sdiod, SBSDIO_DEVICE_CTL, devctl,
                                           &err);
+                       brcmf_sdiod_writeb(sdiod, SBSDIO_FUNC1_MESBUSYCTRL,
+                                          CY_4373_F2_WATERMARK |
+                                          SBSDIO_MESBUSYCTRL_ENAB, &err);
                        break;
                default:
                        brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
index 7faed83..34b0311 100644 (file)
@@ -77,7 +77,7 @@
 #define SBSDIO_GPIO_OUT                        0x10006
 /* gpio enable */
 #define SBSDIO_GPIO_EN                 0x10007
-/* rev < 7, watermark for sdio device */
+/* rev < 7, watermark for sdio device TX path */
 #define SBSDIO_WATERMARK               0x10008
 /* control busy signal generation */
 #define SBSDIO_DEVICE_CTL              0x10009
 #define SBSDIO_FUNC1_RFRAMEBCHI                0x1001C
 /* MesBusyCtl (rev 11) */
 #define SBSDIO_FUNC1_MESBUSYCTRL       0x1001D
+/* Watermark for sdio device RX path */
+#define SBSDIO_MESBUSY_RXFIFO_WM_MASK  0x7F
+#define SBSDIO_MESBUSY_RXFIFO_WM_SHIFT 0
+/* Enable busy capability for MES access */
+#define SBSDIO_MESBUSYCTRL_ENAB                0x80
+#define SBSDIO_MESBUSYCTRL_ENAB_SHIFT  7
+
 /* Sdio Core Rev 12 */
 #define SBSDIO_FUNC1_WAKEUPCTRL                0x1001E
 #define SBSDIO_FUNC1_WCTRL_ALPWAIT_MASK                0x1