diff options
Diffstat (limited to 'package/kernel/mac80211/patches/319-0019-brcmfmac-sdio-shorten-retry-loop-in-brcmf_sdio_kso_c.patch')
-rw-r--r-- | package/kernel/mac80211/patches/319-0019-brcmfmac-sdio-shorten-retry-loop-in-brcmf_sdio_kso_c.patch | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/package/kernel/mac80211/patches/319-0019-brcmfmac-sdio-shorten-retry-loop-in-brcmf_sdio_kso_c.patch b/package/kernel/mac80211/patches/319-0019-brcmfmac-sdio-shorten-retry-loop-in-brcmf_sdio_kso_c.patch deleted file mode 100644 index fb78fbe..0000000 --- a/package/kernel/mac80211/patches/319-0019-brcmfmac-sdio-shorten-retry-loop-in-brcmf_sdio_kso_c.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 5251b6be8bb5c5675bdf12347c7b83937a5c91e5 Mon Sep 17 00:00:00 2001 -From: Arend Van Spriel <arend.vanspriel@broadcom.com> -Date: Mon, 5 Sep 2016 11:42:13 +0100 -Subject: [PATCH] brcmfmac: sdio: shorten retry loop in - brcmf_sdio_kso_control() - -In brcmf_sdio_kso_control() there is a retry loop as hardware may take -time to settle. However, when the call to brcmf_sdiod_regrb() returns -an error it is due to SDIO access failure and it makes no sense to wait -for hardware to settle. This patch aborts the loop after a number of -subsequent access errors. - -Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com> -Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> -Reviewed-by: Franky Lin <franky.lin@broadcom.com> -Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -@@ -313,6 +313,7 @@ struct rte_console { - - #define KSO_WAIT_US 50 - #define MAX_KSO_ATTEMPTS (PMU_MAX_TRANSITION_DLY/KSO_WAIT_US) -+#define BRCMF_SDIO_MAX_ACCESS_ERRORS 5 - - /* - * Conversion of 802.1D priority to precedence level -@@ -677,6 +678,7 @@ brcmf_sdio_kso_control(struct brcmf_sdio - { - u8 wr_val = 0, rd_val, cmp_val, bmask; - int err = 0; -+ int err_cnt = 0; - int try_cnt = 0; - - brcmf_dbg(TRACE, "Enter: on=%d\n", on); -@@ -712,9 +714,14 @@ brcmf_sdio_kso_control(struct brcmf_sdio - */ - rd_val = brcmf_sdiod_regrb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, - &err); -- if (((rd_val & bmask) == cmp_val) && !err) -+ if (!err) { -+ if ((rd_val & bmask) == cmp_val) -+ break; -+ err_cnt = 0; -+ } -+ /* bail out upon subsequent access errors */ -+ if (err && (err_cnt++ > BRCMF_SDIO_MAX_ACCESS_ERRORS)) - break; -- - udelay(KSO_WAIT_US); - brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, - wr_val, &err); |