ANDROID: mmc: sdio: Disable retuning in sdio_reset_comm()
authorAndrew Bresticker <abrestic@chromium.org>
Tue, 10 Nov 2015 22:11:46 +0000 (14:11 -0800)
committerBrian Norris <briannorris@google.com>
Tue, 1 Mar 2016 20:04:00 +0000 (12:04 -0800)
Since sdio_reset_comm() re-initializes the SDIO card, disable retuning
before idling and shutting down the card.  Tuning will be re-enabled (if
necessary) in mmc_sdio_init_card().

BUG=chrome-os-partner:46444
TEST=With CL:311815, toggle WiFi on/off on Smaug and observe that the
WiFi card comes back up and is able to tune successfully.

Change-Id: Ib4a5cfd4d75fc9e3ed7bb3f1e2ffd30de16c5d28
Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/311797
Reviewed-by: Derek Basehore <dbasehore@chromium.org>
[briannorris: brought from Chromium kernel in 3.18 -> 4.4 rebase]

Signed-off-by: Brian Norris <briannorris@google.com>
drivers/mmc/core/sdio.c

index cc93152f82c61afe46e9c56875ae0372f008daf5..b5a1c022049315450e21b74e158b0246f7e29514 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "core.h"
 #include "bus.h"
+#include "host.h"
 #include "sd.h"
 #include "sdio_bus.h"
 #include "mmc_ops.h"
@@ -1228,6 +1229,8 @@ int sdio_reset_comm(struct mmc_card *card)
        printk("%s():\n", __func__);
        mmc_claim_host(host);
 
+       mmc_retune_disable(host);
+
        mmc_go_idle(host);
 
        mmc_set_clock(host, host->f_min);