aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core/mmc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/core/mmc.c')
-rw-r--r--drivers/mmc/core/mmc.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index ff3063ce2acd..6c091793bd76 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -1888,6 +1888,12 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
if (!oldcard)
host->card = card;
+ err = mmc_start_movi_operation(host->card);
+ if (err) {
+ pr_warn("%s: movi operation failed\n", mmc_hostname(host));
+ goto free_card;
+ }
+
return 0;
free_card:
@@ -2260,6 +2266,17 @@ int mmc_attach_mmc(struct mmc_host *host)
if (err)
goto remove_card;
+ if (!strncmp(host->card->cid.prod_name, "VTU00M", 6) &&
+ (host->card->cid.prv == 0xf1) &&
+ (mmc_start_movi_smart(host->card) == 0x2))
+ host->card->movi_ops = 0x2;
+
+ err = mmc_start_movi_operation(host->card);
+ if (err) {
+ pr_warn("%s: movi operation failed\n", mmc_hostname(host));
+ goto remove_card;
+ }
+
mmc_claim_host(host);
return 0;