mmc: tmio: check mmc_regulator_get_supply return value
authorFabrizio Castro <fabrizio.castro@bp.renesas.com>
Fri, 22 Sep 2017 11:22:17 +0000 (12:22 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 30 Oct 2017 10:46:03 +0000 (11:46 +0100)
mmc_regulator_get_supply returns -EPROBE_DEFER if either vmmc or
vqmmc regulators had their probing deferred.
vqmmc regulator is needed by UHS to work properly, therefore this
patch checks the value returned by mmc_regulator_get_supply to
make sure we have a reference to both vmmc and vqmmc (if found in
the DT).

Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/tmio_mmc_core.c

index 9c4e6199b854d38c585ae1464d9056a754e4de33..3a6d49f07e22d7273e85d49c8882400bb446b2dd 100644 (file)
@@ -1113,8 +1113,11 @@ static int tmio_mmc_init_ocr(struct tmio_mmc_host *host)
 {
        struct tmio_mmc_data *pdata = host->pdata;
        struct mmc_host *mmc = host->mmc;
+       int err;
 
-       mmc_regulator_get_supply(mmc);
+       err = mmc_regulator_get_supply(mmc);
+       if (err)
+               return err;
 
        /* use ocr_mask if no regulator */
        if (!mmc->ocr_avail)