Message ID | 20151005171155.GF23801@atomide.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: > * 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. Let me try reverting that in my build tree, and... > > > 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? applying this patch. If that gets things going again, then we _definitely_ should get both of these to Linus ASAP. The breakage has been around far too long already. > 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));
On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: > On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: > > * 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. > > Let me try reverting that in my build tree, and... > > > > > 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? > > applying this patch. If that gets things going again, then we > _definitely_ should get both of these to Linus ASAP. The breakage > has been around far too long already. Last night's build shows that this fixes the non-DT LDP3430 booting, but DT-based LDP3430 and SDP4430 both remain broken for the same reason - neither can find their SD cards. We're at -rc4. That means we're could be only three weeks away from 4.3 being released, and DT OMAP has yet to boot _once_ here. What I find *totally* unacceptable is the lack of reaction from the MMC and TI people: it's just like "we'll break your crap, and we'll ignore reports of regressions." That is *not* acceptable in any shape or form, and people who do this _should_ have their future patches ignored until they demonstrate that they understand the need to not break stuff. I'm at the point of suggesting that there should be a moritorium on all OMAP related development for 4.4: delay all development to 4.5, and have 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and OMAP is still broken, then I don't think there's an option on that. Maybe the idea that development work won't hit mainline for another 4 months will help focus the minds on not breaking stuff and then ignoring regression reports.
* Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: > On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: > > On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: > > > * 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. > > > > Let me try reverting that in my build tree, and... > > > > > > > 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? > > > > applying this patch. If that gets things going again, then we > > _definitely_ should get both of these to Linus ASAP. The breakage > > has been around far too long already. > > Last night's build shows that this fixes the non-DT LDP3430 booting, but > DT-based LDP3430 and SDP4430 both remain broken for the same reason - > neither can find their SD cards. Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not working for you with DT-based booting because you don't seem to have CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that for both your omap3 and omap4 seed config files? > We're at -rc4. That means we're could be only three weeks away from 4.3 > being released, and DT OMAP has yet to boot _once_ here. > > What I find *totally* unacceptable is the lack of reaction from the MMC > and TI people: it's just like "we'll break your crap, and we'll ignore > reports of regressions." That is *not* acceptable in any shape or form, > and people who do this _should_ have their future patches ignored until > they demonstrate that they understand the need to not break stuff. > > I'm at the point of suggesting that there should be a moritorium on all > OMAP related development for 4.4: delay all development to 4.5, and have > 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and > OMAP is still broken, then I don't think there's an option on that. > > Maybe the idea that development work won't hit mainline for another 4 > months will help focus the minds on not breaking stuff and then ignoring > regression reports. I'm thinking along the same lines. In general, I do not and will not apply any patches that are not fixes until all critical regressions are out of the way. So not applying anything new for v4.4 until these MMC regressions are fixed for v4.3. Regards, Tony [1] http://muru.com/for-rmk/dmesg-ldp-v4.3-rc4-mmc-fixes.txt -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 6 October 2015 at 11:44, Tony Lindgren <tony@atomide.com> wrote: > * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: >> On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: >> > On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: >> > > * 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. >> > >> > Let me try reverting that in my build tree, and... >> > >> > > > > 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? >> > >> > applying this patch. If that gets things going again, then we >> > _definitely_ should get both of these to Linus ASAP. The breakage >> > has been around far too long already. >> >> Last night's build shows that this fixes the non-DT LDP3430 booting, but >> DT-based LDP3430 and SDP4430 both remain broken for the same reason - >> neither can find their SD cards. > > Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. > Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not > working for you with DT-based booting because you don't seem to have > CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that > for both your omap3 and omap4 seed config files? > >> We're at -rc4. That means we're could be only three weeks away from 4.3 >> being released, and DT OMAP has yet to boot _once_ here. >> >> What I find *totally* unacceptable is the lack of reaction from the MMC >> and TI people: it's just like "we'll break your crap, and we'll ignore >> reports of regressions." That is *not* acceptable in any shape or form, >> and people who do this _should_ have their future patches ignored until >> they demonstrate that they understand the need to not break stuff. >> >> I'm at the point of suggesting that there should be a moritorium on all >> OMAP related development for 4.4: delay all development to 4.5, and have >> 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and >> OMAP is still broken, then I don't think there's an option on that. >> >> Maybe the idea that development work won't hit mainline for another 4 >> months will help focus the minds on not breaking stuff and then ignoring >> regression reports. > > I'm thinking along the same lines. In general, I do not and will not > apply any patches that are not fixes until all critical regressions are > out of the way. So not applying anything new for v4.4 until these MMC > regressions are fixed for v4.3. > Tony, Russell - just wanted to say thanks for putting a big effort in fixing this. I was expecting support from Kishon, but I guess he's busy. Unfortunate, I don't have any of the hardware that fails, otherwise I would of course be helping out more. The only thing I can think of is to revert the entire patchset I picked up for 4.3 from Kishon for the omap_hsmmc driver, but then I am not sure if that would cause other issues... Kind regards Uffe -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, On Tuesday 06 October 2015 03:41 PM, Ulf Hansson wrote: > On 6 October 2015 at 11:44, Tony Lindgren <tony@atomide.com> wrote: >> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: >>> On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: >>>> On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: >>>>> * 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. >>>> >>>> Let me try reverting that in my build tree, and... >>>> >>>>>>> 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 anHi, >>>>>> 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? >>>> >>>> applying this patch. If that gets things going again, then we >>>> _definitely_ should get both of these to Linus ASAP. The breakage >>>> has been around far too long already. >>> >>> Last night's build shows that this fixes the non-DT LDP3430 booting, but >>> DT-based LDP3430 and SDP4430 both remain broken for the same reason - >>> neither can find their SD cards. >> >> Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. >> Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not >> working for you with DT-based booting because you don't seem to have >> CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that >> for both your omap3 and omap4 seed config files? >> >>> We're at -rc4. That means we're could be only three weeks away from 4.3 >>> being released, and DT OMAP has yet to boot _once_ here. >>> >>> What I find *totally* unacceptable is the lack of reaction from the MMC >>> and TI people: it's just like "we'll break your crap, and we'll ignore >>> reports of regressions." That is *not* acceptable in any shape or form, >>> and people who do this _should_ have their future patches ignored until >>> they demonstrate that they understand the need to not break stuff. >>> >>> I'm at the point of suggesting that there should be a moritorium on all >>> OMAP related development for 4.4: delay all development to 4.5, and have >>> 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and >>> OMAP is still broken, then I don't think there's an option on that. >>> >>> Maybe the idea that development work won't hit mainline for another 4 >>> months will help focus the minds on not breaking stuff and then ignoring >>> regression reports. >> >> I'm thinking along the same lines. In general, I do not and will not >> apply any patches that are not fixes until all critical regressions are >> out of the way. So not applying anything new for v4.4 until these MMC >> regressions are fixed for v4.3. >> > > Tony, Russell - just wanted to say thanks for putting a big effort in > fixing this. I was expecting support from Kishon, but I guess he's > busy. > > Unfortunate, I don't have any of the hardware that fails, otherwise I > would of course be helping out more. The only thing I can think of is > to revert the entire patchset I picked up for 4.3 from Kishon for the > omap_hsmmc driver, but then I am not sure if that would cause other > issues... Please don't do that as that will just mask lot of bugs in the devicetree and might get MMC working. Indeed I was busy but I'll try to get this resolved asap. The 2 pending issues as far as I know 1) warn dump while enabling pbias regulator in duovero. As I mentioned in some other thread it might be because the PBIAS regulator in 4430 is not setting the status bit properly because of which we can't use the regulator_is_enabled API to enable/disable the regulator. I don't think there is any other way to fix this other than reverting c55d7a055364. 2) legacy booting is not working with OMAP3. I'm not sure what is causing this. I'm right now in ELCE and will be able to look at this on Friday when I'll be able to get hold of LDP3430. I really didn't intend to be unresponsive or something but just that the above 2 boards are not readily accessible to me for the debugging. Before posting the patches I tested in all the possible boards I had. Anyways apologies for not having been able to resolved this faster. Thanks Kishon -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Oct 06, 2015 at 02:44:25AM -0700, Tony Lindgren wrote: > * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: > > On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: > > > On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: > > > > * 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. > > > > > > Let me try reverting that in my build tree, and... > > > > > > > > > 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? > > > > > > applying this patch. If that gets things going again, then we > > > _definitely_ should get both of these to Linus ASAP. The breakage > > > has been around far too long already. > > > > Last night's build shows that this fixes the non-DT LDP3430 booting, but > > DT-based LDP3430 and SDP4430 both remain broken for the same reason - > > neither can find their SD cards. > > Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. > Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not > working for you with DT-based booting because you don't seem to have > CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that > for both your omap3 and omap4 seed config files? This is precisely the kind of crap I'm objecting to. New kernel versions come along, and things break because people add extra Kconfig symbols that previous versions did not rely upon - and there's no communication of what's required for new kernel versions. This stuff needs documenting, so that people are aware what changes they need to make - please put something in Documentation/arm/OMAP which tracks what new additions are required to the Kconfig to keep things working.
On Tue, Oct 06, 2015 at 04:06:09PM +0530, Kishon Vijay Abraham I wrote: > Hi, > > On Tuesday 06 October 2015 03:41 PM, Ulf Hansson wrote: > > On 6 October 2015 at 11:44, Tony Lindgren <tony@atomide.com> wrote: > >> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: > >>> On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: > >>>> On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: > >>>>> * 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. > >>>> > >>>> Let me try reverting that in my build tree, and... > >>>> > >>>>>>> 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 anHi, > >>>>>> 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? > >>>> > >>>> applying this patch. If that gets things going again, then we > >>>> _definitely_ should get both of these to Linus ASAP. The breakage > >>>> has been around far too long already. > >>> > >>> Last night's build shows that this fixes the non-DT LDP3430 booting, but > >>> DT-based LDP3430 and SDP4430 both remain broken for the same reason - > >>> neither can find their SD cards. > >> > >> Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. > >> Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not > >> working for you with DT-based booting because you don't seem to have > >> CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that > >> for both your omap3 and omap4 seed config files? > >> > >>> We're at -rc4. That means we're could be only three weeks away from 4.3 > >>> being released, and DT OMAP has yet to boot _once_ here. > >>> > >>> What I find *totally* unacceptable is the lack of reaction from the MMC > >>> and TI people: it's just like "we'll break your crap, and we'll ignore > >>> reports of regressions." That is *not* acceptable in any shape or form, > >>> and people who do this _should_ have their future patches ignored until > >>> they demonstrate that they understand the need to not break stuff. > >>> > >>> I'm at the point of suggesting that there should be a moritorium on all > >>> OMAP related development for 4.4: delay all development to 4.5, and have > >>> 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and > >>> OMAP is still broken, then I don't think there's an option on that. > >>> > >>> Maybe the idea that development work won't hit mainline for another 4 > >>> months will help focus the minds on not breaking stuff and then ignoring > >>> regression reports. > >> > >> I'm thinking along the same lines. In general, I do not and will not > >> apply any patches that are not fixes until all critical regressions are > >> out of the way. So not applying anything new for v4.4 until these MMC > >> regressions are fixed for v4.3. > >> > > > > Tony, Russell - just wanted to say thanks for putting a big effort in > > fixing this. I was expecting support from Kishon, but I guess he's > > busy. > > > > Unfortunate, I don't have any of the hardware that fails, otherwise I > > would of course be helping out more. The only thing I can think of is > > to revert the entire patchset I picked up for 4.3 from Kishon for the > > omap_hsmmc driver, but then I am not sure if that would cause other > > issues... > > Please don't do that as that will just mask lot of bugs in the > devicetree and might get MMC working. Indeed I was busy but I'll try to > get this resolved asap. The 2 pending issues as far as I know Sorry, but no. None of this "mask bugs ... might" crap. Either they're bug fixes, or they aren't bug fixes. This should be a definite decision, not some vague crap. If they're bug fixes, why the _hell_ aren't they queued for -rc kernels? This sounds really screwed up to me, and it's no wonder that OMAP MMC got broken if this is the kind of thing that's going on.
Hi, On Tuesday 06 October 2015 08:37 PM, Russell King - ARM Linux wrote: > On Tue, Oct 06, 2015 at 04:06:09PM +0530, Kishon Vijay Abraham I wrote: >> Hi, >> >> On Tuesday 06 October 2015 03:41 PM, Ulf Hansson wrote: >>> On 6 October 2015 at 11:44, Tony Lindgren <tony@atomide.com> wrote: >>>> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: >>>>> On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: >>>>>> On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: >>>>>>> * 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. >>>>>> >>>>>> Let me try reverting that in my build tree, and... >>>>>> >>>>>>>>> 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 anHi, >>>>>>>> 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? >>>>>> >>>>>> applying this patch. If that gets things going again, then we >>>>>> _definitely_ should get both of these to Linus ASAP. The breakage >>>>>> has been around far too long already. >>>>> >>>>> Last night's build shows that this fixes the non-DT LDP3430 booting, but >>>>> DT-based LDP3430 and SDP4430 both remain broken for the same reason - >>>>> neither can find their SD cards. >>>> >>>> Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. >>>> Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not >>>> working for you with DT-based booting because you don't seem to have >>>> CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that >>>> for both your omap3 and omap4 seed config files? >>>> >>>>> We're at -rc4. That means we're could be only three weeks away from 4.3 >>>>> being released, and DT OMAP has yet to boot _once_ here. >>>>> >>>>> What I find *totally* unacceptable is the lack of reaction from the MMC >>>>> and TI people: it's just like "we'll break your crap, and we'll ignore >>>>> reports of regressions." That is *not* acceptable in any shape or form, >>>>> and people who do this _should_ have their future patches ignored until >>>>> they demonstrate that they understand the need to not break stuff. >>>>> >>>>> I'm at the point of suggesting that there should be a moritorium on all >>>>> OMAP related development for 4.4: delay all development to 4.5, and have >>>>> 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and >>>>> OMAP is still broken, then I don't think there's an option on that. >>>>> >>>>> Maybe the idea that development work won't hit mainline for another 4 >>>>> months will help focus the minds on not breaking stuff and then ignoring >>>>> regression reports. >>>> >>>> I'm thinking along the same lines. In general, I do not and will not >>>> apply any patches that are not fixes until all critical regressions are >>>> out of the way. So not applying anything new for v4.4 until these MMC >>>> regressions are fixed for v4.3. >>>> >>> >>> Tony, Russell - just wanted to say thanks for putting a big effort in >>> fixing this. I was expecting support from Kishon, but I guess he's >>> busy. >>> >>> Unfortunate, I don't have any of the hardware that fails, otherwise I >>> would of course be helping out more. The only thing I can think of is >>> to revert the entire patchset I picked up for 4.3 from Kishon for the >>> omap_hsmmc driver, but then I am not sure if that would cause other >>> issues... >> >> Please don't do that as that will just mask lot of bugs in the >> devicetree and might get MMC working. Indeed I was busy but I'll try to >> get this resolved asap. The 2 pending issues as far as I know > > Sorry, but no. None of this "mask bugs ... might" crap. Either they're > bug fixes, or they aren't bug fixes. This should be a definite decision, > not some vague crap. What I meant is the patches merged by Ulf *did* exposed bugs in device tree (for instance a dt patch caused PBIAS regulator from not being registered) and if those patches are reverted then a future dt breakage might again be not caught. -Kishon -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Oct 07, 2015 at 12:59:29AM +0530, Kishon Vijay Abraham I wrote: > Hi, > > On Tuesday 06 October 2015 08:37 PM, Russell King - ARM Linux wrote: > > On Tue, Oct 06, 2015 at 04:06:09PM +0530, Kishon Vijay Abraham I wrote: > >> Hi, > >> > >> On Tuesday 06 October 2015 03:41 PM, Ulf Hansson wrote: > >>> On 6 October 2015 at 11:44, Tony Lindgren <tony@atomide.com> wrote: > >>>> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: > >>>>> On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: > >>>>>> On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: > >>>>>>> * 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. > >>>>>> > >>>>>> Let me try reverting that in my build tree, and... > >>>>>> > >>>>>>>>> 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 anHi, > >>>>>>>> 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? > >>>>>> > >>>>>> applying this patch. If that gets things going again, then we > >>>>>> _definitely_ should get both of these to Linus ASAP. The breakage > >>>>>> has been around far too long already. > >>>>> > >>>>> Last night's build shows that this fixes the non-DT LDP3430 booting, but > >>>>> DT-based LDP3430 and SDP4430 both remain broken for the same reason - > >>>>> neither can find their SD cards. > >>>> > >>>> Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. > >>>> Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not > >>>> working for you with DT-based booting because you don't seem to have > >>>> CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that > >>>> for both your omap3 and omap4 seed config files? > >>>> > >>>>> We're at -rc4. That means we're could be only three weeks away from 4.3 > >>>>> being released, and DT OMAP has yet to boot _once_ here. > >>>>> > >>>>> What I find *totally* unacceptable is the lack of reaction from the MMC > >>>>> and TI people: it's just like "we'll break your crap, and we'll ignore > >>>>> reports of regressions." That is *not* acceptable in any shape or form, > >>>>> and people who do this _should_ have their future patches ignored until > >>>>> they demonstrate that they understand the need to not break stuff. > >>>>> > >>>>> I'm at the point of suggesting that there should be a moritorium on all > >>>>> OMAP related development for 4.4: delay all development to 4.5, and have > >>>>> 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and > >>>>> OMAP is still broken, then I don't think there's an option on that. > >>>>> > >>>>> Maybe the idea that development work won't hit mainline for another 4 > >>>>> months will help focus the minds on not breaking stuff and then ignoring > >>>>> regression reports. > >>>> > >>>> I'm thinking along the same lines. In general, I do not and will not > >>>> apply any patches that are not fixes until all critical regressions are > >>>> out of the way. So not applying anything new for v4.4 until these MMC > >>>> regressions are fixed for v4.3. > >>>> > >>> > >>> Tony, Russell - just wanted to say thanks for putting a big effort in > >>> fixing this. I was expecting support from Kishon, but I guess he's > >>> busy. > >>> > >>> Unfortunate, I don't have any of the hardware that fails, otherwise I > >>> would of course be helping out more. The only thing I can think of is > >>> to revert the entire patchset I picked up for 4.3 from Kishon for the > >>> omap_hsmmc driver, but then I am not sure if that would cause other > >>> issues... > >> > >> Please don't do that as that will just mask lot of bugs in the > >> devicetree and might get MMC working. Indeed I was busy but I'll try to > >> get this resolved asap. The 2 pending issues as far as I know > > > > Sorry, but no. None of this "mask bugs ... might" crap. Either they're > > bug fixes, or they aren't bug fixes. This should be a definite decision, > > not some vague crap. > > What I meant is the patches merged by Ulf *did* exposed bugs in device > tree (for instance a dt patch caused PBIAS regulator from not being > registered) and if those patches are reverted then a future dt breakage > might again be not caught. That makes it even worse then. What you seem to be saying now is that the old DT files were wrong, and you've fixed the DT files up in the latest kernel. You've also changed the kernel in a way to make the old DT files fail. That's totally unacceptable. Users have the right to expect that old DT files work with later kernels. It's fine to detect the broken DT files and print a warning, and have the kernel fix up the breakage, but it is unacceptable to decide that old DT files are broken and to then change stuff to prevent them working with later kernels.
Hi, On Wednesday 07 October 2015 01:27 AM, Russell King - ARM Linux wrote: > On Wed, Oct 07, 2015 at 12:59:29AM +0530, Kishon Vijay Abraham I wrote: >> Hi, >> >> On Tuesday 06 October 2015 08:37 PM, Russell King - ARM Linux wrote: >>> On Tue, Oct 06, 2015 at 04:06:09PM +0530, Kishon Vijay Abraham I wrote: >>>> Hi, >>>> >>>> On Tuesday 06 October 2015 03:41 PM, Ulf Hansson wrote: >>>>> On 6 October 2015 at 11:44, Tony Lindgren <tony@atomide.com> wrote: >>>>>> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151006 02:04]: >>>>>>> On Mon, Oct 05, 2015 at 07:38:13PM +0100, Russell King - ARM Linux wrote: >>>>>>>> On Mon, Oct 05, 2015 at 10:11:56AM -0700, Tony Lindgren wrote: >>>>>>>>> * 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. >>>>>>>> >>>>>>>> Let me try reverting that in my build tree, and... >>>>>>>> >>>>>>>>>>> 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 anHi, >>>>>>>>>> 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? >>>>>>>> >>>>>>>> applying this patch. If that gets things going again, then we >>>>>>>> _definitely_ should get both of these to Linus ASAP. The breakage >>>>>>>> has been around far too long already. >>>>>>> >>>>>>> Last night's build shows that this fixes the non-DT LDP3430 booting, but >>>>>>> DT-based LDP3430 and SDP4430 both remain broken for the same reason - >>>>>>> neither can find their SD cards. >>>>>> >>>>>> Hmm DT-based boot finds the MMC card for LDP, dmesg below from DT boot [1]. >>>>>> Looks like you're on on -rc4 and not -rc3. My guess is that MMC is not >>>>>> working for you with DT-based booting because you don't seem to have >>>>>> CONFIG_REGULATOR_PBIAS in your seed config for. Care to try enabling that >>>>>> for both your omap3 and omap4 seed config files? >>>>>> >>>>>>> We're at -rc4. That means we're could be only three weeks away from 4.3 >>>>>>> being released, and DT OMAP has yet to boot _once_ here. >>>>>>> >>>>>>> What I find *totally* unacceptable is the lack of reaction from the MMC >>>>>>> and TI people: it's just like "we'll break your crap, and we'll ignore >>>>>>> reports of regressions." That is *not* acceptable in any shape or form, >>>>>>> and people who do this _should_ have their future patches ignored until >>>>>>> they demonstrate that they understand the need to not break stuff. >>>>>>> >>>>>>> I'm at the point of suggesting that there should be a moritorium on all >>>>>>> OMAP related development for 4.4: delay all development to 4.5, and have >>>>>>> 4.4 as a pure bug-fixing _only_ cycle for OMAP. If 4.3 is released and >>>>>>> OMAP is still broken, then I don't think there's an option on that. >>>>>>> >>>>>>> Maybe the idea that development work won't hit mainline for another 4 >>>>>>> months will help focus the minds on not breaking stuff and then ignoring >>>>>>> regression reports. >>>>>> >>>>>> I'm thinking along the same lines. In general, I do not and will not >>>>>> apply any patches that are not fixes until all critical regressions are >>>>>> out of the way. So not applying anything new for v4.4 until these MMC >>>>>> regressions are fixed for v4.3. >>>>>> >>>>> >>>>> Tony, Russell - just wanted to say thanks for putting a big effort in >>>>> fixing this. I was expecting support from Kishon, but I guess he's >>>>> busy. >>>>> >>>>> Unfortunate, I don't have any of the hardware that fails, otherwise I >>>>> would of course be helping out more. The only thing I can think of is >>>>> to revert the entire patchset I picked up for 4.3 from Kishon for the >>>>> omap_hsmmc driver, but then I am not sure if that would cause other >>>>> issues... >>>> >>>> Please don't do that as that will just mask lot of bugs in the >>>> devicetree and might get MMC working. Indeed I was busy but I'll try to >>>> get this resolved asap. The 2 pending issues as far as I know >>> >>> Sorry, but no. None of this "mask bugs ... might" crap. Either they're >>> bug fixes, or they aren't bug fixes. This should be a definite decision, >>> not some vague crap. >> >> What I meant is the patches merged by Ulf *did* exposed bugs in device >> tree (for instance a dt patch caused PBIAS regulator from not being >> registered) and if those patches are reverted then a future dt breakage >> might again be not caught. > > That makes it even worse then. > > What you seem to be saying now is that the old DT files were wrong, and > you've fixed the DT files up in the latest kernel. You've also changed > the kernel in a way to make the old DT files fail. I'll try to explain the changes that went in MMC driver, PBIAS regulator driver and devicetree. ****** MMC controller in OMAP platforms uses PBIAS to know when the voltage to the IO lines are stable. So PBIAS regulator device tree node was added (as a child node of ocp), CONFIG_PBIAS_REGULATOR was added to omap2plus_defconfig and code to get and enable pbias regulator was added in MMC driver. But then error checking in MMC driver wasn't correct. It was something like this reg = devm_regulator_get_optional(host->dev, "pbias"); host->pbias = IS_ERR(reg) ? NULL : reg; For *any* errors it just sets pbias to NULL and proceeds normally. With this code the behavior is same if CONFIG_PBIAS_REGULATOR is either set or unset. The behavior is same if pbias driver gets probed properly or not. ****** Then certain modifications were done in devicetree in order to correctly model users of syscon registers. With this pbias regulator device tree node was made as child node of scm_conf node. This resulted in pbias device not being created (fixed by [1]), probe of pbias regulator driver fails while doing platform_get_resource (fixed by [2]) and pbias regulator enable was failing (fixed by [3]) [1] -> https://lkml.org/lkml/2015/7/27/391 [2] -> https://lkml.org/lkml/2015/9/4/210 [3] -> https://lkml.org/lkml/2015/9/4/205 But even without any of these fixes MMC continued to work because error checking in MMC driver was not proper. ****** Along with PBIAS fixes, patches were sent to clean-up and fix MMC [4]. With this series MMC fails on real failures like if "pbias-supply" property is populated in MMC dt node, then MMC driver will fail if it doesn't get the pbias regulator (which means now if CONFIG_PBIAS_REGULATOR is not enabled, MMC driver will fail if it finds pbias-supply property in devicetree node). Since omap2plus_defconfig already had CONFIG_PBIAS_REGULATOR, it was added for multi_v7_defconfig [5]. However not adding this detail in *Documentation* resulted in MMC failures and $subject. [4] -> https://lkml.org/lkml/2015/8/27/122 [5] -> https://lkml.org/lkml/2015/9/3/119 > > That's totally unacceptable. Users have the right to expect that old DT > files work with later kernels. > > It's fine to detect the broken DT files and print a warning, and have > the kernel fix up the breakage, but it is unacceptable to decide that > old DT files are broken and to then change stuff to prevent them working > with later kernels. No, we didn't break old DT files. We added new compatible string to handle newer DT [6] [6] -> https://lkml.org/lkml/2015/9/3/51 Thanks Kishon -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- 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));