2020-06-01 07:23:08

by Wright Feng

[permalink] [raw]
Subject: [PATCH 0/5] brcmfmac: Stability change series

This series fixes stability and connection related failures.

Prasanna Kerekoppa (1):
brcmfmac: To fix Bss Info flag definition Bug

Raveendran Somu (1):
brcmfmac: To fix kernel crash on out of boundary access

Wright Feng (3):
brcmfmac: fix invliad permanent MAC address in wiphy
brcmfmac: keep SDIO watchdog running when console_interval is non-zero
brcmfmac: reduce maximum station interface from 2 to 1 in RSDB mode

.../net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 8 ++++----
drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 2 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h | 2 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c | 3 +++
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 6 +++++-
5 files changed, 14 insertions(+), 7 deletions(-)

--
2.25.0


2020-06-01 07:24:03

by Wright Feng

[permalink] [raw]
Subject: [PATCH 3/5] brcmfmac: keep SDIO watchdog running when console_interval is non-zero

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 <[email protected]>
Signed-off-by: Chi-hsien Lin <[email protected]>
---
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 ce6f15284277..50444989ae09 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -3686,7 +3686,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.0