aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Wang <wangedward@google.com>2018-10-03 18:00:31 -0700
committerEdward Wang <wangedward@google.com>2018-10-11 16:03:16 +0000
commit467e4e08c45ef225c0d4f842f00ab5a44e9d6fe5 (patch)
tree7924fe1221b9ba6fd785a1c15f78eb6df8556a43
parented456ccf063abfc744f0c5a5e7c258f41621bbca (diff)
downloadqcom-msm-v4.9-467e4e08c45ef225c0d4f842f00ab5a44e9d6fe5.tar.gz
mmc: try low speed fallback only for sd card
In _mmc_detect_card_removed() when alive check shows removed card, it want to give 2nd chance to fallback to low speed to see if it can become live again. But mmc_recovery_fallback_lower_speed() only apply to sd card. In case of sdio card, mmc_recovery_fallback_lower_speed() simply return 0, which will overwrite the previous checked alive state. Check card type before call mmc_recovery_fallback_lower_speed function. Change-Id: If2aab96d13c6db1cfc02dfef1f40fcf6c1dec1d8 Signed-off-by: Edward Wang <wangedward@google.com>
-rw-r--r--drivers/mmc/core/core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 69465f8a58f3..b70b79cb7f7d 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -4393,7 +4393,8 @@ int _mmc_detect_card_removed(struct mmc_host *host)
}
if (ret) {
- if (host->ops->get_cd && host->ops->get_cd(host)) {
+ if (mmc_card_sd(host->card) &&
+ host->ops->get_cd && host->ops->get_cd(host)) {
ret = mmc_recovery_fallback_lower_speed(host);
} else {
mmc_card_set_removed(host->card);