From: Rabin Vincent Date: Wed, 19 Aug 2015 13:41:34 +0000 (+0200) Subject: mmc: usdhi6rol0: handle probe deferral for regulator X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=767264725d6c0c8e2a42f14ded88c8f05fec5863;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git mmc: usdhi6rol0: handle probe deferral for regulator 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 Signed-off-by: Ulf Hansson --- diff --git a/drivers/mmc/host/usdhi6rol0.c b/drivers/mmc/host/usdhi6rol0.c index 54b082b1804a..63d5d722b01f 100644 --- a/drivers/mmc/host/usdhi6rol0.c +++ b/drivers/mmc/host/usdhi6rol0.c @@ -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;