On 7 October 2015 at 15:22, Tony Lindgren <t...@atomide.com> wrote:
> Starting with commit 7d607f917008 ("mmc: host: omap_hsmmc: use
> devm_regulator_get_optional() for vmmc") MMC on omap3 stopped working
> for legacy booting.
>
> This is because legacy booting sets up some of the resource in the
> platform init code, and for optional regulators always seem to
> return -EPROBE_DEFER for the legacy booting.
>
> Let's fix the issue by checking for device tree based booting for
> now. Then when omap3 boots in device tree only mode, this patch
> can be just reverted.
>
> Fixes: 7d607f917008 ("mmc: host: omap_hsmmc: use
> devm_regulator_get_optional() for vmmc")
> Cc: Felipe Balbi <ba...@ti.com>
> Cc: Kishon Vijay Abraham I <kis...@ti.com>
> Cc: Nishanth Menon <n...@ti.com>
> Cc: Russell King <rmk+ker...@arm.linux.org.uk>
> Signed-off-by: Tony Lindgren <t...@atomide.com>

Thanks, applied for fixes!

Kind regards
Uffe

> ---
>  drivers/mmc/host/omap_hsmmc.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index ae3a2b9..7fb0753 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -478,7 +478,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host 
> *host)
>         mmc->supply.vmmc = devm_regulator_get_optional(host->dev, "vmmc");
>         if (IS_ERR(mmc->supply.vmmc)) {
>                 ret = PTR_ERR(mmc->supply.vmmc);
> -               if (ret != -ENODEV)
> +               if ((ret != -ENODEV) && host->dev->of_node)
>                         return ret;
>                 dev_dbg(host->dev, "unable to get vmmc regulator %ld\n",
>                         PTR_ERR(mmc->supply.vmmc));
> @@ -493,7 +493,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host 
> *host)
>         mmc->supply.vqmmc = devm_regulator_get_optional(host->dev, 
> "vmmc_aux");
>         if (IS_ERR(mmc->supply.vqmmc)) {
>                 ret = PTR_ERR(mmc->supply.vqmmc);
> -               if (ret != -ENODEV)
> +               if ((ret != -ENODEV) && host->dev->of_node)
>                         return ret;
>                 dev_dbg(host->dev, "unable to get vmmc_aux regulator %ld\n",
>                         PTR_ERR(mmc->supply.vqmmc));
> @@ -503,7 +503,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host 
> *host)
>         host->pbias = devm_regulator_get_optional(host->dev, "pbias");
>         if (IS_ERR(host->pbias)) {
>                 ret = PTR_ERR(host->pbias);
> -               if (ret != -ENODEV)
> +               if ((ret != -ENODEV) && host->dev->of_node)
>                         return ret;
>                 dev_dbg(host->dev, "unable to get pbias regulator %ld\n",
>                         PTR_ERR(host->pbias));
> --
> 2.1.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to