From 91b844659215f93cdb3180cdc886285b1941137c Mon Sep 17 00:00:00 2001 From: JasonHuang Date: Thu, 26 Sep 2024 04:47:20 -0500 Subject: [PATCH 295/296] brcmfmac: fix reload FMAC timeout error while using build-in mmc driver Observed bootloader ready timeout error while reload FMAC and using build-in mmc driver. To make chip in the clear status, run hardware mmc reset while doing sdio remove in FMAC. Signed-off-by: JasonHuang --- 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 80c07e70c18a..07956956e270 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -5956,7 +5956,11 @@ void brcmf_sdio_remove(struct brcmf_sdio *bus) release_firmware(bus->sdiodev->clm_fw); bus->sdiodev->clm_fw = NULL; inf_btsdio_deinit(bus_if); - +#if IS_BUILTIN(CONFIG_MMC) + sdio_claim_host(bus->sdiodev->func1); + mmc_hw_reset(bus->sdiodev->func1->card); + sdio_release_host(bus->sdiodev->func1); +#endif kfree(bus->rxbuf); kfree(bus->hdrbuf); kfree(bus); -- 2.25.1