| From bf12d9b671d385e01503c7b6effdeaf2169c6540 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 4 Jun 2020 02:18:33 -0500 |
| Subject: brcmfmac: keep SDIO watchdog running when console_interval is |
| non-zero |
| |
| From: Wright Feng <wright.feng@cypress.com> |
| |
| [ 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 | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c |
| index 3a08252f1a53f..0dbbb467c2291 100644 |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c |
| @@ -3689,7 +3689,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); |
| -- |
| 2.25.1 |
| |