mmc: mxcmmc: fix the default value for available voltages into mxcmci_probe
authorMatteo Facchinetti <matteo.facchinetti@sirius-es.it>
Wed, 8 Oct 2014 14:24:33 +0000 (16:24 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 10 Nov 2014 11:40:25 +0000 (12:40 +0100)
If available voltages are not given, mmc_regulator_get_supply() function
returns 0 and mxcmmc driver doesn't set a value for ocr_avail mask.

In accordance with the comment in platform_data/mmc-mxcmmc.h,
fix it, assuming MMC_VDD_32_33 | MMC_VDD_33_34 as default value.

Signed-off-by: Matteo Facchinetti <matteo.facchinetti@sirius-es.it>
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mxcmmc.c

index 536a8983c3be4b10eee8c9e36cfe01f4d8651666..5316d9b9e7b42f0bb1f5be0f8d16974ae93da041 100644 (file)
@@ -1077,12 +1077,14 @@ static int mxcmci_probe(struct platform_device *pdev)
                dat3_card_detect = true;
 
        ret = mmc_regulator_get_supply(mmc);
-       if (ret) {
-               if (pdata && ret != -EPROBE_DEFER)
-                       mmc->ocr_avail = pdata->ocr_avail ? :
-                               MMC_VDD_32_33 | MMC_VDD_33_34;
+       if (ret == -EPROBE_DEFER)
+               goto out_free;
+
+       if (!mmc->ocr_avail) {
+               if (pdata && pdata->ocr_avail)
+                       mmc->ocr_avail = pdata->ocr_avail;
                else
-                       goto out_free;
+                       mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
        }
 
        if (dat3_card_detect)