]> git.itanic.dy.fi Git - linux-stable/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 10 Dec 2017 12:40:39 +0000 (13:40 +0100)
[ Upstream commit a3d95d1d4007b1fefd6d8b12db26fda05de05cfb ]

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>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.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)