From 914ff717a54e459becee1ffee9a025c66fd604c3 Mon Sep 17 00:00:00 2001 From: Ting-Ying Li Date: Fri, 26 Mar 2021 02:14:17 -0500 Subject: [PATCH 057/296] brcmfmac: fix sdio watchdog timer start fail issue brcmf_sdio_wd_timer() started before F2 function enabling. In such case, it will be returned because the sdiodev state is not BRCMF_SDIOD_DATA. The first timer start will then fail. As a fix, run brcmf_sdio_wd_timer() after F2 function enabling instead. Signed-off-by: Ting-Ying Li Signed-off-by: Chung-Hsien Hsu Signed-off-by: Chi-hsien Lin --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 40e7312219f0..86cdc33b2ef4 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -4443,10 +4443,6 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err, goto fail; bus->alp_only = false; - /* Start the watchdog timer */ - bus->sdcnt.tickcnt = 0; - brcmf_sdio_wd_timer(bus, true); - sdio_claim_host(sdiod->func1); /* Make sure backplane clock is on, needed to generate F2 interrupt */ @@ -4595,6 +4591,10 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err, sdio_release_host(sdiod->func1); + /* Start the watchdog timer */ + bus->sdcnt.tickcnt = 0; + brcmf_sdio_wd_timer(bus, true); + err = brcmf_alloc(sdiod->dev, sdiod->settings); if (err) { brcmf_err("brcmf_alloc failed\n"); -- 2.25.1