From: Andreas Kemnade <andreas@kemnade.info>
To: Tony Lindgren <tony@atomide.com>
Cc: Discussions about the Letux Kernel <letux-kernel@openphoenux.org>,
Linux USB Mailing List <linux-usb@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-omap <linux-omap@vger.kernel.org>, Bin Liu <b-liu@ti.com>
Subject: Re: [Letux-kernel] [PATCH v2] musb: omap2430: do not assume balanced enable()/disable()
Date: Tue, 9 Aug 2016 07:35:59 +0200 [thread overview]
Message-ID: <20160809073559.287d0a59@aktux> (raw)
In-Reply-To: <20160806062134.GK28140@atomide.com>
[-- Attachment #1: Type: text/plain, Size: 3819 bytes --]
On Fri, 5 Aug 2016 23:21:35 -0700
Tony Lindgren <tony@atomide.com> wrote:
> * Andreas Kemnade <andreas@kemnade.info> [160805 08:35]:
> > I repeat the subject line of the patch:
> > [PATCH v2] musb: omap2430: do not assume balanced enable()/disable()
> > It is *not* fix charging.
> >
> > So you mean that the phy should magically know at which refcounter
> > it should power on and off if power on/off is not called in the
> > balanced way?
>
> No, I mean we need to figure out why things can be called in
> unbalanced way. With your patch I end up with unbalanced calls
> leaving the phy on after all the modules have been removed :)
>
Well, causing trouble when modules are removed was not the intention.
I was just happy to have things working a bit again.
The phy is powered on/off via
musb_platform_enable()/musb_platform_disable().
Calls to musb_platform_enable() occur at only 1 place.
musb_platform_disable() is called at 4 places.
about balancing:
There is musb_start() and musb_stop(). They are called from
musb_gadget_start/stop()
These call musb_platform_enable() and musb_platform_disable().
Looks ok.
There is musb_suspend() and musb_resume():
musb_suspend() calls musb_platform_disable()
musb_resume() calls musb_plaform_enable() via musb_start()
looks balanced but why don't we use musb_stop() in musb_suspend()?
Now the odd things:
musb_platform_disable() in musb_remove() called upon module removal
musb_platform_disable() in musb_init_controller() called from
musb_probe()
This looks clearly unbalanced.
> > Maybe the phy-twl4030 uses the phy layer wrong.
> > Now the relevant part of power on/off in phy-twl4030 is done via
> > struct phy_ops.power_off/power_on (*not* via pm_runtime). Maybe
> > that is wrong and more parts should be moved to the pm_runtime
> > stuff (which is also present).
>
> We should use phy power_off/power_on for the USB related parts.
> The parts needed by other components, like VBUS detection, should
> be handled by PM runtime. We should get phy-twl4030-usb and the
> charger driver working also when no musb modules are loaded.
>
> > Then the phy subsystem has its own power refcounter in struct
> > phy.power_count. It it handled via phy_power_off()/phy_power_on().
> > And that is called from musb/omap2430.c
> > But that is another story.
>
> Yes that's what the USB driver is expected to do. But obviously
> there are issues remaining also in the phy-twl4030-usb.c driver.
> And it seems that we should have some OTG parts always enabled
> when VBUS is detected when twl4030-charger is configured?
>
Seems so. I am writing a patch for it.
> > > If there are MUSB specific PM runtime issues then let's fix
> > > those separately.
> > >
> > And that exactly tries my patch to do. For that task it does not
> > even use the PM runtime system. Again please read the subject line
> > of the patch. Maybe it unveils some other pm issues in musb
> > which should first be fixed in a complete patch series.
>
> Certainly that needs to be fixed, but let's do it in a way where
> things work for other test cases also. Care to describe how to
> to reproduce the issue you're seeing? It seems that you are
> seeing devices not being enmerated leading to the charger not
> working? Is this with built in MUSB and phy modules?
>
Both as modules. I added some debug output to the driver/phy/phy-core.c
and have seen the phy->power_count sticking at -1 or 0.
g_ether is also loaded.
Gadget stops for me (device not showing up at the other side) at 4.7rc4.
But I remember Nikolaus having the situation on the same type of device
that it was important on which side you replug the usb cable
(probably causing some timing differences) with 4.7rc1.
Regards,
Andreas
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2016-08-09 5:35 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-03 15:38 [PATCH v2] musb: omap2430: do not assume balanced enable()/disable() Andreas Kemnade
2016-08-03 17:07 ` [Letux-kernel] " H. Nikolaus Schaller
2016-08-04 14:29 ` Tony Lindgren
2016-08-04 14:49 ` H. Nikolaus Schaller
[not found] ` <3EF398D0-6B90-46B6-83AE-EAE065A68890-xXXSsgcRVICgSpxsJD1C4w@public.gmane.org>
2016-08-04 15:01 ` Tony Lindgren
2016-08-04 20:59 ` Andreas Kemnade
2016-08-04 16:31 ` Andreas Kemnade
2016-08-04 16:44 ` Andreas Kemnade
2016-08-05 13:55 ` Tony Lindgren
2016-08-05 15:20 ` Andreas Kemnade
2016-08-06 6:21 ` Tony Lindgren
2016-08-09 5:35 ` Andreas Kemnade [this message]
2016-08-11 18:25 ` Tony Lindgren
2016-09-09 19:27 ` [v2] " Laurent Pinchart
2016-09-09 20:08 ` Tony Lindgren
2016-09-09 20:21 ` Laurent Pinchart
2016-09-09 20:40 ` Andreas Kemnade
2016-09-09 20:55 ` Tony Lindgren
2016-09-09 20:51 ` Tony Lindgren
2016-09-09 21:22 ` Andreas Kemnade
2016-09-09 21:33 ` Tony Lindgren
2016-09-09 23:40 ` Tony Lindgren
2016-09-10 11:27 ` Andreas Kemnade
2016-09-10 13:07 ` Tony Lindgren
[not found] ` <20160910130749.5qk37gwfidejdqlm-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-09-11 9:06 ` Laurent Pinchart
2016-09-12 14:35 ` Tony Lindgren
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=20160809073559.287d0a59@aktux \
--to=andreas@kemnade.info \
--cc=b-liu@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=letux-kernel@openphoenux.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=tony@atomide.com \
/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).