]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
brcmfmac: keep SDIO watchdog running when console_interval is non-zero
authorWright Feng <wright.feng@cypress.com>
Thu, 4 Jun 2020 07:18:33 +0000 (02:18 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Aug 2020 06:16:03 +0000 (08:16 +0200)
[ Upstream commit eccbf46b15bb3e35d004148f7c3a8fa8e9b26c1e ]

brcmfmac host driver makes SDIO bus sleep and stops SDIO watchdog if no
pending event or data. As a result, host driver does not poll firmware
console buffer before buffer overflow, which leads to missing firmware
logs. We should not stop SDIO watchdog if console_interval is non-zero
in debug build.

Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200604071835.3842-4-wright.feng@cypress.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

index d43247a95ce539f6bf1de088d31e52e395ab414e..38e6809f16c7596b26ae87236e4894ed44158709 100644 (file)
@@ -3685,7 +3685,11 @@ static void brcmf_sdio_bus_watchdog(struct brcmf_sdio *bus)
                        if (bus->idlecount > bus->idletime) {
                                brcmf_dbg(SDIO, "idle\n");
                                sdio_claim_host(bus->sdiodev->func1);
-                               brcmf_sdio_wd_timer(bus, false);
+#ifdef DEBUG
+                               if (!BRCMF_FWCON_ON() ||
+                                   bus->console_interval == 0)
+#endif
+                                       brcmf_sdio_wd_timer(bus, false);
                                bus->idlecount = 0;
                                brcmf_sdio_bus_sleep(bus, true, false);
                                sdio_release_host(bus->sdiodev->func1);