mmc: mmci: Switch to mmc_regulator_set_vqmmc()
[linux-2.6-microblaze.git] / drivers / mmc / host / mmci.c
index 647567d..a69d6a0 100644 (file)
@@ -1861,31 +1861,17 @@ static int mmci_get_cd(struct mmc_host *mmc)
 static int mmci_sig_volt_switch(struct mmc_host *mmc, struct mmc_ios *ios)
 {
        struct mmci_host *host = mmc_priv(mmc);
-       int ret = 0;
-
-       if (!IS_ERR(mmc->supply.vqmmc)) {
+       int ret;
 
-               switch (ios->signal_voltage) {
-               case MMC_SIGNAL_VOLTAGE_330:
-                       ret = regulator_set_voltage(mmc->supply.vqmmc,
-                                               2700000, 3600000);
-                       break;
-               case MMC_SIGNAL_VOLTAGE_180:
-                       ret = regulator_set_voltage(mmc->supply.vqmmc,
-                                               1700000, 1950000);
-                       break;
-               case MMC_SIGNAL_VOLTAGE_120:
-                       ret = regulator_set_voltage(mmc->supply.vqmmc,
-                                               1100000, 1300000);
-                       break;
-               }
+       ret = mmc_regulator_set_vqmmc(mmc, ios);
 
-               if (!ret && host->ops && host->ops->post_sig_volt_switch)
-                       ret = host->ops->post_sig_volt_switch(host, ios);
+       if (!ret && host->ops && host->ops->post_sig_volt_switch)
+               ret = host->ops->post_sig_volt_switch(host, ios);
+       else if (ret)
+               ret = 0;
 
-               if (ret)
-                       dev_warn(mmc_dev(mmc), "Voltage switch failed\n");
-       }
+       if (ret < 0)
+               dev_warn(mmc_dev(mmc), "Voltage switch failed\n");
 
        return ret;
 }