Re: [PATCH v3 01/11] usb: phy: Add APIs for runtime power management

From: Alan Stern
Date: Wed Apr 03 2013 - 14:14:09 EST


On Wed, 3 Apr 2013, Felipe Balbi wrote:

> > Lets suppose DWC3 enables runtime_pm on USB 2 type phy,
> > it will try to go into suspend state and thereby call runtime_suspend(), if any.
> > And PHY will come to active state only when its consumer wakes it up,
> > and this consumer is operational
> > only when its related PHY is in fully functional state.
> > So do we have a situation in which this PHY goes into low power state
> > in its runtime_suspend(),
> > resulting in non-detection of devices on further attach (since PHY is
> > in low power state) ?
> >
> > Will the controller (like EHCI/OHCI) be functional now ?
>
> ehci/ohci need to cope with that by calling usb_phy_autopm_get_sync(),
> right ? (so does DWC3 :-)

Maybe you guys have already got this all figured out -- if so, feel
free to ignore this email.

Some subsystems handle this issue by calling pm_runtime_get_sync()
before probing a driver and pm_runtime_put_sync() after unbinding the
driver. If the driver is runtime-PM-enabled, it then does its own
put_sync near the end of its probe routine and get_sync in its release
routine.

With PHYs you don't have probing and releasing, but you do have
consumers registering and unregistering themselves, which is about the
same thing.

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/