]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mmc: usdhi6rol0: handle probe deferral for regulator
authorRabin Vincent <rabin.vincent@axis.com>
Wed, 19 Aug 2015 13:41:34 +0000 (15:41 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 27 Aug 2015 12:50:54 +0000 (14:50 +0200)
We ignore errors from mmc_regulator_get_supply() because the usage of
the regulators is optional for the driver, but we still need to check
for and handle EPROBE_DEFER, like it's done in for example dw_mmc.
Otherwise we might end up not using the specified regulators just
because of probe order.

Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/usdhi6rol0.c

index 54b082b1804a5c05973a16e196d3dbd40f1c1779..63d5d722b01f4e426d09ad1bb0bb5e66df5df5fe 100644 (file)
@@ -1715,12 +1715,14 @@ static int usdhi6_probe(struct platform_device *pdev)
        if (!mmc)
                return -ENOMEM;
 
+       ret = mmc_regulator_get_supply(mmc);
+       if (ret == -EPROBE_DEFER)
+               goto e_free_mmc;
+
        ret = mmc_of_parse(mmc);
        if (ret < 0)
                goto e_free_mmc;
 
-       mmc_regulator_get_supply(mmc);
-
        host            = mmc_priv(mmc);
        host->mmc       = mmc;
        host->wait      = USDHI6_WAIT_FOR_REQUEST;