summaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorMichal Miroslaw <mirq-linux@rere.qmqm.pl>2010-12-02 23:38:12 +0100
committerChris Ball <cjb@laptop.org>2011-01-09 04:48:37 +0100
commite6f29a8dc1602e170daf955233891a9130573a55 (patch)
treee63c6bae4b61e4251c5f3f25605192b9720d4bc7 /drivers/mmc
parentmmc: sdio: don't reinitialize nonremovable powered-resumed cards (diff)
downloadlinux-e6f29a8dc1602e170daf955233891a9130573a55.tar.xz
linux-e6f29a8dc1602e170daf955233891a9130573a55.zip
mmc: fix detection of memory part of SD-combo card with broken SDIO
In case of failure, mmc_attach_sdio() will power off the SD bus. Power it up and reinitialize before trying SD memory detection. Reported-by: Sahitya Tummala <stummala@codeaurora.org> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Reviewed-by: Chris Ball <cjb@laptop.org> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/core/core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 241ffb28351c..97e0624eb9b6 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1569,6 +1569,11 @@ void mmc_rescan(struct work_struct *work)
* Try SDMEM (but not MMC) even if SDIO
* is broken.
*/
+ mmc_power_up(host);
+ sdio_reset(host);
+ mmc_go_idle(host);
+ mmc_send_if_cond(host, host->ocr_avail);
+
if (mmc_send_app_op_cond(host, 0, &ocr))
goto out_fail;