[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAD=FV=V1oOdYLZyw3RpdYUQMCKnhcZ=AymnTDzy6Zm=MXqnehQ@mail.gmail.com>
Date: Mon, 6 Jul 2015 12:39:27 -0700
From: Doug Anderson <dianders@...omium.org>
To: Felipe Balbi <balbi@...com>
Cc: Alan Stern <stern@...land.harvard.edu>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
John Youn <johnyoun@...opsys.com>,
"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
Chris Zhong <zyw@...k-chips.com>,
Heiko Stuebner <heiko@...ech.de>,
Julius Werner <jwerner@...omium.org>,
Andrew Bresticker <abrestic@...omium.org>,
Alexandru Stan <amstan@...omium.org>, lyz <lyz@...k-chips.com>,
"open list:ARM/Rockchip SoC..." <linux-rockchip@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [REPOST PATCH 3/3] USB: dwc2: Don't turn off the usbphy in
suspend if wakeup is enabled
Hi,
On Mon, Jul 6, 2015 at 12:02 PM, Felipe Balbi <balbi@...com> wrote:
> On Mon, Jul 06, 2015 at 02:58:16PM -0400, Alan Stern wrote:
>> On Mon, 6 Jul 2015, Douglas Anderson wrote:
>>
>> > If the 'snps,need-phy-for-wake' is set in the device tree then:
>> >
>> > - We know that we can wakeup, so call device_set_wakeup_capable().
>> > The USB core will use this knowledge to enable wakeup by default.
>> > - We know that we should keep the PHY on during suspend if something
>> > on our root hub needs remote wakeup. This requires the patch (USB:
>> > Export usb_wakeup_enabled_descendants()). Note that we don't keep
>> > the PHY on at suspend time if it's not needed because it would be a
>> > power draw.
>>
>> You know, this is the first time I've run across this optimization.
>>
>> In principle it applies to any USB host controller, not just to PHYs.
>> There's no reason to enable wakeup for a controller if none of the
>> attached devices can issue a wakeup request.
>>
>> I don't know if implementing this in other HCDs would save any power.
>> Any ideas?
>
> most likely it would. Enabling wakeup usually boils down to keeping a
> tiny part of the controller (or PHY) powered up. Sometimes that lies in
> an always-on power domain, so there would be no difference.
As per Andrew Bresticker (CCed on this email), the optimization made
sense in Tegra. If you're willing to look into the chromeos-3.10
tree, you can see that Andrew added a usb_port_may_wakeup() call in
<https://chromium-review.googlesource.com/196593>. He then used it in
the tegra XHCI driver in
<https://chromium-review.googlesource.com/196594>. Recently I talked
to Andrew and he indicated that rather than add usb_port_may_wakeup()
like he did it probably made sense to just export
usb_wakeup_enabled_descendants().
-Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists