[linux-pm] [RFC] Disabling Devices

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

 



One potentially important aspect of power management is the ability for the
user to disable a device that he or she does not intend to use.  Our current
model does not allow for this.  Calling PMSG_SUSPEND won't cut it, because it
might enable wake events and is expecting the system to sleep.  It seems we
need to implement something specifically for this case.  Also, there is the
posibility of resource rebalancing, which requires yet another slightly
different behavior.

Consider if a user wanted to disable a pci bus...  If the bus was just
suspended, it would be straightforward, put all the children to sleep and
then turn off the bus.  However, in the case of disabling it (as in "do not
use me") all of the child devices would actually need to be unregistered.

Furthermore, take an ethernet controller as an example.  When suspending, just
run the driver specific logic.  When disabling, you actually want to unregister
from the net class interface.

Unbinding the driver may not be the solution, because the driver may be
retaining configuration state information lost during the power-down.

"Disabling" is just one possible user preference.  Selective-suspending a
device is another.  For example, if a user was using an ethernet interface on
a laptop, the wireless interface should probably reduce power consumption.
The kernel may be able to take care of this automatically via idle timers etc.

I'm interested in any opinions.  Should we try to support something like
this?  How might we go about it?

As another issue, how should we handle surprise removal between suspend and
resume?  It seems like we would need to tell the resume method about this.

Thanks,
Adam

[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux