On 7 October 2015 at 15:22, Tony Lindgren <tony@xxxxxxxxxxx> 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 <balbi@xxxxxx> > Cc: Kishon Vijay Abraham I <kishon@xxxxxx> > Cc: Nishanth Menon <nm@xxxxxx> > Cc: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html