Re: [REPOST PATCH 3/3] USB: dwc2: Don't turn off the usbphy in suspend if wakeup is enabled

From: Alan Stern
Date: Tue Jul 07 2015 - 10:28:57 EST


On Mon, 6 Jul 2015, Felipe Balbi wrote:

> > 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.

Doug, how would you feel about reworking the patch that exports
usb_wakeup_enabled_descendants()? Instead of doing it that way, create
and export a new subroutine in hcd.c called
usb_hcd_wakeup_not_needed(), or something similar.

The idea is that a host controller driver can do something like this:

do_wakeup = device_may_wakeup(...);
if (usb_hcd_wakeup_not_needed(hcd))
do_wakeup = false;

It encapsulates what you want in a form that can easily be used by
every HCD. We can then add this call into the HCDs, over time.

(Merging a change like this would be a challenge. I guess Felipe would
have to put it in a separate branch which Greg could pull, or vice
versa, so that the new routine would be available to patches submitted
to either maintainer.)

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/