mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-17 20:54:10 +00:00
mmc: host: omap_hsmmc: Fix MMC for omap3 legacy booting
Starting with commit7d607f9170
("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:7d607f9170
("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") Cc: Felipe Balbi <balbi@ti.com> Cc: Kishon Vijay Abraham I <kishon@ti.com> Cc: Nishanth Menon <nm@ti.com> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Tony Lindgren <tony@atomide.com> Tested-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
bb2726b52f
commit
123e20b145
1 changed files with 3 additions and 3 deletions
|
@ -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");
|
mmc->supply.vmmc = devm_regulator_get_optional(host->dev, "vmmc");
|
||||||
if (IS_ERR(mmc->supply.vmmc)) {
|
if (IS_ERR(mmc->supply.vmmc)) {
|
||||||
ret = PTR_ERR(mmc->supply.vmmc);
|
ret = PTR_ERR(mmc->supply.vmmc);
|
||||||
if (ret != -ENODEV)
|
if ((ret != -ENODEV) && host->dev->of_node)
|
||||||
return ret;
|
return ret;
|
||||||
dev_dbg(host->dev, "unable to get vmmc regulator %ld\n",
|
dev_dbg(host->dev, "unable to get vmmc regulator %ld\n",
|
||||||
PTR_ERR(mmc->supply.vmmc));
|
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");
|
mmc->supply.vqmmc = devm_regulator_get_optional(host->dev, "vmmc_aux");
|
||||||
if (IS_ERR(mmc->supply.vqmmc)) {
|
if (IS_ERR(mmc->supply.vqmmc)) {
|
||||||
ret = PTR_ERR(mmc->supply.vqmmc);
|
ret = PTR_ERR(mmc->supply.vqmmc);
|
||||||
if (ret != -ENODEV)
|
if ((ret != -ENODEV) && host->dev->of_node)
|
||||||
return ret;
|
return ret;
|
||||||
dev_dbg(host->dev, "unable to get vmmc_aux regulator %ld\n",
|
dev_dbg(host->dev, "unable to get vmmc_aux regulator %ld\n",
|
||||||
PTR_ERR(mmc->supply.vqmmc));
|
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");
|
host->pbias = devm_regulator_get_optional(host->dev, "pbias");
|
||||||
if (IS_ERR(host->pbias)) {
|
if (IS_ERR(host->pbias)) {
|
||||||
ret = PTR_ERR(host->pbias);
|
ret = PTR_ERR(host->pbias);
|
||||||
if (ret != -ENODEV)
|
if ((ret != -ENODEV) && host->dev->of_node)
|
||||||
return ret;
|
return ret;
|
||||||
dev_dbg(host->dev, "unable to get pbias regulator %ld\n",
|
dev_dbg(host->dev, "unable to get pbias regulator %ld\n",
|
||||||
PTR_ERR(host->pbias));
|
PTR_ERR(host->pbias));
|
||||||
|
|
Loading…
Add table
Reference in a new issue