Revert "brcmfmac: disable command decode in sdio_aos"
authorDouglas Anderson <dianders@chromium.org>
Mon, 17 Jun 2019 17:56:49 +0000 (10:56 -0700)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 18 Jun 2019 11:30:18 +0000 (13:30 +0200)
This reverts commit 29f6589140a10ece8c1d73f58043ea5b3473ab3e.

After that patch landed I find that my kernel log on
rk3288-veyron-minnie and rk3288-veyron-speedy is filled with:
brcmfmac: brcmf_sdio_bus_sleep: error while changing bus sleep state -110

This seems to happen every time the Broadcom WiFi transitions out of
sleep mode.  Reverting the commit fixes the problem for me, so that's
what this patch does.

Note that, in general, the justification in the original commit seemed
a little weak.  It looked like someone was testing on a SD card
controller that would sometimes die if there were CRC errors on the
bus.  This used to happen back in early days of dw_mmc (the controller
on my boards), but we fixed it.  Disabling a feature on all boards
just because one SD card controller is broken seems bad.

Fixes: 29f6589140a1 ("brcmfmac: disable command decode in sdio_aos")
Cc: Wright Feng <wright.feng@cypress.com>
Cc: Double Lo <double.lo@cypress.com>
Cc: Madhan Mohan R <madhanmohan.r@cypress.com>
Cc: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Cc: stable@vger.kernel.org
Acked-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

index 22b73da428225f67675ca9f6bb7d8d07b9cecb95..b6466f3b38f446fdd2ed669c829674b37478cbc3 100644 (file)
@@ -3375,11 +3375,7 @@ err:
 
 static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus)
 {
-       if (bus->ci->chip == CY_CC_43012_CHIP_ID ||
-           bus->ci->chip == CY_CC_4373_CHIP_ID ||
-           bus->ci->chip == BRCM_CC_4339_CHIP_ID ||
-           bus->ci->chip == BRCM_CC_4345_CHIP_ID ||
-           bus->ci->chip == BRCM_CC_4354_CHIP_ID)
+       if (bus->ci->chip == CY_CC_43012_CHIP_ID)
                return true;
        else
                return false;