Re: [RFC] Runtime PM for host controllers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On Mon, Apr 9, 2012 at 7:14 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
>> USB runtime PM seems to focus on the individual USB devices, and does
>> not allow for dynamically suspending the entire host controller
> That is not correct.  USB host controllers _can_ be suspended.  (Not
> all of them; many of the platform drivers don't implement controller
> suspend.  But some of them do, and almost all of the PCI-based drivers
> do.)

I am not clear on what is actually happening at the chip level in these cases?

i.e. is the entire USB core getting clock gated or power gated, such
that it is completely non-responsive to register accesses or device
hotplug?  Or is the driver just shutting down a few tiny pieces of the

Is there a way to initiate USB runtime suspend on the host controller
even if there are devices plugged into the downstream ports?

>>  In general I don't
>> see any facility where the application can explicitly tell the PM core
>> to suspend a device (incurring a potential loss of functionality, such
>> as hot plug/unplug detection).
> Right; there is no way to do this.  The OS will suspend a device only
> when it believes it is safe to do so.

Assuming that somebody is able to come up with a satisfactory
implementation, are you open to allowing a "user-initiated suspend"
mode, in addition to "opportunistic suspend"?

>> d) Or should I just go back to using "rmmod"?
> I don't see how rmmod will save any power.

rmmod allows me to forcibly shut down the controller, cleanly (in
theory) disconnecting any active devices and preventing the kernel
from touching the registers.

After rmmod, I can then tell the SoC to put the whole core into an
unresponsive, low power state.

This is not a very clean way of doing things, so I would prefer to use
runtime PM if at all possible.  But I don't think my hardware is
designed in a way that is compatible with "opportunistic suspend."

linux-pm mailing list

[Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Photo]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]     [Linux Resources]     [Free Dating]     [Archives]
Add to Google Powered by Linux