2
0

329-v5.0-0008-brcmfmac-disable-command-decode-in-sdio_aos.patch 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. From 29f6589140a10ece8c1d73f58043ea5b3473ab3e Mon Sep 17 00:00:00 2001
  2. From: Wright Feng <[email protected]>
  3. Date: Wed, 21 Nov 2018 07:53:52 +0000
  4. Subject: [PATCH] brcmfmac: disable command decode in sdio_aos
  5. AOS is a part of the SDIOD core that becomes active when the rest of
  6. SDIOD is sleeping to keep SDIO bus alive responding to reduced set of
  7. commands.
  8. Transaction between AOS and SDIOD is not protected, and if cmd 52 is
  9. received in AOS and in the middle of response state changed from AOS to
  10. SDIOD, response is corrupted and it causes to SDIO Host controller to
  11. hang.
  12. Command decode for below chips are disabled in this commit:
  13. - 4339
  14. - 4345
  15. - 4354
  16. - 4373
  17. Reviewed-by: Arend van Spriel <[email protected]>
  18. Signed-off-by: Wright Feng <[email protected]>
  19. Signed-off-by: Double Lo <[email protected]>
  20. Signed-off-by: Madhan Mohan R <[email protected]>
  21. Signed-off-by: Chi-Hsien Lin <[email protected]>
  22. Signed-off-by: Kalle Valo <[email protected]>
  23. ---
  24. drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 6 +++++-
  25. 1 file changed, 5 insertions(+), 1 deletion(-)
  26. --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
  27. +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
  28. @@ -3354,7 +3354,11 @@ err:
  29. static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus)
  30. {
  31. - if (bus->ci->chip == CY_CC_43012_CHIP_ID)
  32. + if (bus->ci->chip == CY_CC_43012_CHIP_ID ||
  33. + bus->ci->chip == CY_CC_4373_CHIP_ID ||
  34. + bus->ci->chip == BRCM_CC_4339_CHIP_ID ||
  35. + bus->ci->chip == BRCM_CC_4345_CHIP_ID ||
  36. + bus->ci->chip == BRCM_CC_4354_CHIP_ID)
  37. return true;
  38. else
  39. return false;