From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: All OMAP platforms: MMC is broken
Date: Mon, 5 Oct 2015 10:11:56 -0700 [thread overview]
Message-ID: <20151005171155.GF23801@atomide.com> (raw)
In-Reply-To: <20151005145127.GB23801@atomide.com>
* Tony Lindgren <tony@atomide.com> [151005 07:57]:
> * Tony Lindgren <tony@atomide.com> [151005 07:44]:
> > * Tony Lindgren <tony@atomide.com> [151005 04:28]:
> >
> > Based on some tests it seems that the duovero unpaired regulator usage
> > is fixed by reverting:
> >
> > c55d7a055364 ("mmc: host: omap_hsmmc: use regulator_is_enabled to
> > find pbias status")
>
> With commit c55d7a055364 my guess is that the PBIAS regulator is
> already on from an earlier MMC probe and getting re-enabled when
> a deferred probe happens?
Unless somebody has a better fix in mind for the above, I suggest
we revert it for the -rc kernel.
> > And it seems that omap3 legacy MMC is broken earlier in the
> > series with:
> >
> > 7d607f917008 ("mmc: host: omap_hsmmc: use
> > devm_regulator_get_optional() for vmmc")
> >
> > This one does not cleanly revert so have not yet tried reverting
> > it.
>
> And with commit 7d607f917008 I'm guessing we can't return an
> error if the PBIAS regulator does not exist as that's not there
> for the legacy booting.
For omap3 legacy booting, we keep getting -EPROBE_DEFER for
all the optional regulators.
Something like the following might be the minimal fix for the -rc
cycle?
Regards,
Tony
8< ----------------
From: Tony Lindgren <tony@atomide.com>
Date: Mon, 5 Oct 2015 09:37:36 -0700
Subject: [PATCH] mmc: host: omap_hsmmc: Fix MMC for omap3 legacy booting
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")
Signed-off-by: Tony Lindgren <tony@atomide.com>
--- 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));
next prev parent reply other threads:[~2015-10-05 17:11 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-24 9:00 All OMAP platforms: MMC is broken Russell King - ARM Linux
2015-09-24 22:51 ` Grygorii Strashko
2015-09-24 22:53 ` Russell King - ARM Linux
2015-09-24 23:37 ` Tony Lindgren
2015-09-25 1:13 ` Tony Lindgren
2015-09-26 2:54 ` Nishanth Menon
2015-10-01 9:33 ` Russell King - ARM Linux
2015-10-01 9:50 ` Ulf Hansson
2015-10-01 10:03 ` Russell King - ARM Linux
2015-10-05 11:23 ` Tony Lindgren
2015-10-05 14:35 ` Tony Lindgren
2015-10-05 14:51 ` Tony Lindgren
2015-10-05 17:11 ` Tony Lindgren [this message]
2015-10-05 18:38 ` Russell King - ARM Linux
2015-10-06 9:00 ` Russell King - ARM Linux
2015-10-06 9:44 ` Tony Lindgren
2015-10-06 10:11 ` Ulf Hansson
2015-10-06 10:36 ` Kishon Vijay Abraham I
2015-10-06 15:07 ` Russell King - ARM Linux
2015-10-06 19:29 ` Kishon Vijay Abraham I
2015-10-06 19:57 ` Russell King - ARM Linux
2015-10-08 0:46 ` Kishon Vijay Abraham I
2015-10-06 15:00 ` Russell King - ARM Linux
2015-10-06 15:37 ` Tony Lindgren
2015-10-07 12:45 ` Russell King - ARM Linux
2015-10-07 13:26 ` Tony Lindgren
2015-10-07 13:41 ` Ulf Hansson
2015-10-07 15:52 ` Tony Lindgren
2015-10-07 19:40 ` Ulf Hansson
2015-10-07 23:13 ` Kishon Vijay Abraham I
2015-10-08 8:40 ` Tony Lindgren
2015-10-08 9:35 ` Russell King - ARM Linux
2015-10-08 9:56 ` Tony Lindgren
2015-10-08 10:00 ` Russell King - ARM Linux
2015-10-07 17:53 ` Russell King - ARM Linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151005171155.GF23801@atomide.com \
--to=tony@atomide.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).