From 27c2bff3487f3f9acc8e31ce9a8a5c3ecd02de6e Mon Sep 17 00:00:00 2001 From: Chi-Hsien Lin Date: Fri, 13 Mar 2020 03:08:13 -0500 Subject: [PATCH 032/296] non-upstream: disable command decode in sdio_aos for 4373 AOS is a part of the SDIOD core that becomes active when the rest of SDIOD is sleeping to keep SDIO bus alive responding to reduced set of commands. Transaction between AOS and SDIOD is not protected, and if cmd 52 is received in AOS and in the middle of response state changed from AOS to SDIOD, response is corrupted and it causes to SDIO Host controller to hang. Signed-off-by: Chi-hsien Lin --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index e407376b7fd7..f24def037a4b 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -3623,6 +3623,7 @@ static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus) { if (bus->ci->chip == CY_CC_43012_CHIP_ID || bus->ci->chip == CY_CC_43752_CHIP_ID || + bus->ci->chip == CY_CC_4373_CHIP_ID || bus->ci->chip == BRCM_CC_4354_CHIP_ID || bus->ci->chip == BRCM_CC_4356_CHIP_ID) return true; -- 2.25.1