From 7a2840c91899216afeaadc931621b66e63b01eef Mon Sep 17 00:00:00 2001 From: Shelley Yang Date: Thu, 29 Feb 2024 20:06:03 -0600 Subject: [PATCH 241/296] brcmfmac: fix mmc tuning failed -can't frequently switch 1 bit/4 bits width when use high speed mode such as DDR50 Signed-off-by: Shelley Yang --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index c807f2f7c7de..11c60a1435d6 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -773,7 +773,7 @@ brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) start_jiffy = jiffies; /* Change bus width to 1-bit mode before kso 0 */ - if (!on) + if (!on && bus->idleclock == BRCMF_IDLE_STOP) brcmf_sdio_set_sdbus_clk_width(bus, SDIO_SDMODE_1BIT); /* 1st KSO write goes to AOS wake up core if device is asleep */ @@ -860,7 +860,7 @@ brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) brcmf_dbg(SDIO, "INFO: KSO=%d try_cnt=%d err_cnt=%d kso_seq_time=%uus rd_val=0x%x err=%d\n", on, try_cnt, err_cnt, kso_loop_time, rd_val, err); - if (on) { + if (on && bus->idleclock == BRCMF_IDLE_STOP) { /* Change the bus width to 4-bit mode on kso 1 */ brcmf_sdio_set_sdbus_clk_width(bus, SDIO_SDMODE_4BIT); sdio_retune_release(bus->sdiodev->func1); -- 2.25.1