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