linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: NeilBrown <neil@brown.name>
Cc: Sebastian Reichel <sre@kernel.org>,
	Samuel Ortiz <sameo@linux.intel.com>,
	linux-pm@vger.kernel.org, David Woodhouse <dwmw2@infradead.org>,
	linux-kernel@vger.kernel.org,
	real GTA04 owners <gta04-owner@goldelico.com>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	Pavel Machek <pavel@ucw.cz>,
	linux-omap@vger.kernel.org, Lee Jones <lee.jones@linaro.org>
Subject: Re: [PATCH 03/13] twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node
Date: Tue, 18 Aug 2015 23:25:39 -0700	[thread overview]
Message-ID: <20150819062539.GH4215@atomide.com> (raw)
In-Reply-To: <20150819102832.29a5059f@home.neil.brown.name>

* NeilBrown <neil@brown.name> [150818 17:32]:
> On Tue, 18 Aug 2015 01:07:58 -0700 Tony Lindgren <tony@atomide.com>
> wrote:
> 
> > * NeilBrown <neil@brown.name> [150729 17:29]:
> > > Now that twl4030_bci_probe can safely return -EPROBE_DEFER,
> > > do so when devm_usb_get_phy_by_node returns that error.
> > > 
> > > Signed-off-by: NeilBrown <neil@brown.name>
> > > ---
> > >  drivers/power/twl4030_charger.c |    6 +++++-
> > >  1 file changed, 5 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/power/twl4030_charger.c b/drivers/power/twl4030_charger.c
> > > index 045238370d3f..ffc123fb7158 100644
> > > --- a/drivers/power/twl4030_charger.c
> > > +++ b/drivers/power/twl4030_charger.c
> > > @@ -636,9 +636,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
> > >  
> > >  		phynode = of_find_compatible_node(bci->dev->of_node->parent,
> > >  						  NULL, "ti,twl4030-usb");
> > > -		if (phynode)
> > > +		if (phynode) {
> > >  			bci->transceiver = devm_usb_get_phy_by_node(
> > >  				bci->dev, phynode, &bci->usb_nb);
> > > +			if (IS_ERR(bci->transceiver) &&
> > > +			    PTR_ERR(bci->transceiver) == -EPROBE_DEFER)
> > > +				return -EPROBE_DEFER;
> > > +		}
> > >  	}
> > 
> > Neil, the return with -EPROBE_DEFER here causes flakeyness booting
> > for me somehow at least on my logicpd-torpedo-37xx-devkit using
> > omap2plus_defconfig.
> > 
> > It seems that the twl4030_bci_probe keeps looping or something about
> > 1/3 of the boots and that probably prevents the other twl modules
> > from loading? Reverting this patch alone seems to fix the issue.
> > 
> > I don't think I have a battery wired on this board the USB is wired
> > the same way as on beagle-xm. So I'd assume also flakeyness on beagle
> > xm with this patch.
> 
> What dts file are you using?
> I'm guessing that it doesn't have something like:
> 
> &usb_otg_hs {
>         interface-type = <0>;
>         usb-phy = <&usb2_phy>;
>         phys = <&usb2_phy>;
>         phy-names = "usb2-phy";
>         mode = <3>;
>         power = <50>;
> };

It's the logicpd-torpedo-37xx-devkit.dts like I mentioned above,
and yes it has the same entry above like beagle xm.
 
> ? i.e. with a usb-phy=<&usb2_phy> ?
> 
> What if you add
> 
> &usb2_phy {
>  status = "disabled";
> }
> 
> to your dts file?

Yes then the PHY driver won't get probed and modprobe of the
charger won't hang with -EPROBE_DEFER.. The USB is working on this
one like on beagle xm so that's not a solution.
 
> Should the 'status' be disabled in twl4030.dtsi, and then marked OK in
> any dts that uses it?  I'm not at all clear on how 'status' is meant to
> be used.

Well status = "disabled" makes kernel completely ignore the
hardware, so the struct device is never created. I'd stay away from
using that in general for proper runtime idling of devices.. The
hardware is there for sure :)

Can you check if something like the the following allows you to
reproduce the hang of modprobe twl4030_charger:

# rmmod phy-twl4030-usb
# modprobe twl4030_charger

So just don't probe phy-twl4030-usb before twl4030_charger and
then modprobe of twl4030_charger hangs?

That is with proper usb2_phy configured in .dts file and not
set to status = "disabled".

Regards,

Tony

  reply	other threads:[~2015-08-19  6:25 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-30  0:11 [PATCH 00/13] Enhance twl4030_charger functionality. - V3 NeilBrown
2015-07-30  0:11 ` [PATCH 02/13] twl4030_charger: convert to module_platform_driver instead of ..._probe NeilBrown
2015-07-30  0:11 ` [PATCH 11/13] twl4030_charger: add ac/mode to match usb/mode NeilBrown
2015-07-30  0:11 ` [PATCH 01/13] twl4030_charger: use runtime_pm to keep usb phy active while charging NeilBrown
2015-09-15 11:29   ` Pavel Machek
2015-07-30  0:11 ` [PATCH 03/13] twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node NeilBrown
2015-08-18  8:07   ` Tony Lindgren
2015-08-19  0:28     ` NeilBrown
2015-08-19  6:25       ` Tony Lindgren [this message]
2015-08-27 20:51   ` Kevin Hilman
2015-09-02  3:25     ` Kevin Hilman
2015-09-02  6:19       ` Neil Brown
2015-09-02 13:07         ` Tony Lindgren
2015-09-08 18:32           ` Kevin Hilman
2015-09-08 20:14             ` Tony Lindgren
2015-09-10  8:08               ` Sebastian Reichel
2015-09-10 20:27                 ` Sebastian Reichel
2015-09-10 20:43                   ` Tony Lindgren
2015-07-30  0:11 ` [PATCH 05/13] twl4030_charger: split uA calculation into a function NeilBrown
2015-07-30  0:11 ` [PATCH 07/13] twl4030_charger: distinguish between USB current and 'AC' current NeilBrown
2015-08-07  3:11   ` Tony Lindgren
2015-08-07  3:45     ` NeilBrown
2015-08-07  4:21       ` Tony Lindgren
2015-08-07  5:13       ` Sebastian Reichel
2015-08-07  5:29         ` NeilBrown
2015-07-30  0:11 ` [PATCH 12/13] twl4030_charger: Increase current carefully while watching voltage NeilBrown
2015-07-30  0:11 ` [PATCH 08/13] twl4030_charger: allow max_current to be managed via sysfs NeilBrown
2015-07-30  0:11 ` [PATCH 06/13] twl4030_charger: allow fine control of charger current NeilBrown
2015-07-30  0:11 ` [PATCH 04/13] twl4030_charger: trust phy to determine when USB power is available NeilBrown
2015-09-15 11:30   ` Pavel Machek
2015-07-30  0:11 ` [PATCH 09/13] twl4030_charger: enable manual enable/disable of usb charging NeilBrown
2015-07-30  0:11 ` [PATCH 10/13] twl4030_charger: add software controlled linear charging mode NeilBrown
2015-09-15 11:28   ` Pavel Machek
2015-09-15 12:08     ` [Gta04-owner] " Christ van Willegen
2015-10-01  6:14     ` Neil Brown
2015-10-06 14:34       ` Pavel Machek
2015-10-29 16:20         ` [Gta04-owner] " Andreas Kemnade
2015-11-14 18:12           ` Pavel Machek
2015-11-24 22:31             ` Andreas Kemnade
2015-07-30  0:11 ` [PATCH 13/13] twl4030_charger: assume a 'charger' can supply maximum current NeilBrown
2015-08-05  3:35 ` [PATCH 00/13] Enhance twl4030_charger functionality. - V3 Sebastian Reichel

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=20150819062539.GH4215@atomide.com \
    --to=tony@atomide.com \
    --cc=dbaryshkov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=gta04-owner@goldelico.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=neil@brown.name \
    --cc=pavel@ucw.cz \
    --cc=sameo@linux.intel.com \
    --cc=sre@kernel.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).