From: Philip Rakity Date: Tue, 24 Jul 2012 00:25:18 +0000 (-0700) Subject: mmc: sdhci: vmmc regulator should be explicitly enabled/disabled X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=77dcb3f4c344d4c9619803848f1aba4d271dac7b;p=deliverable%2Flinux.git mmc: sdhci: vmmc regulator should be explicitly enabled/disabled The vmmc regulator should not rely on the platform code to enable it. Expliciitly enable and disable the regulator inside the driver. Signed-off-by: Philip Rakity Signed-off-by: Chris Ball --- diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 828ac6c2990c..d98b1992d778 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -2908,7 +2908,8 @@ int sdhci_add_host(struct sdhci_host *host) if (IS_ERR(host->vmmc)) { pr_info("%s: no vmmc regulator found\n", mmc_hostname(mmc)); host->vmmc = NULL; - } + } else + regulator_enable(host->vmmc); #ifdef CONFIG_REGULATOR if (host->vmmc) { @@ -3165,8 +3166,10 @@ void sdhci_remove_host(struct sdhci_host *host, int dead) tasklet_kill(&host->card_tasklet); tasklet_kill(&host->finish_tasklet); - if (host->vmmc) + if (host->vmmc) { + regulator_disable(host->vmmc); regulator_put(host->vmmc); + } if (host->vqmmc) { regulator_disable(host->vqmmc);