By default the global operation power_set_mode
affects all power controllers. There may be circumstances when this is
not desirable. For example if a particular device is not currently
being used then it can be left switched off: the rest of the system
could be moving between active, idle and
sleep modes, but there is no point in invoking the power
controller for the unused device. To support this the power management
package supports the concept of attached and detached controllers. By
default all controllers are attached, and hence will be affected by
global mode changes. A specific controller can be detached using the
function power_set_controller_attached
. This
function takes two arguments, one to specify a particular controller
and another to specify the desired new state.
power_get_controller_attached
can be used to
determine whether or not a specific controller is currently attached.
The attached or detached state of a controller only affects what
happens during a global mode change, in other words following a call
to power_set_mode
. It is still possible to
manipulate a detached controller using
power_set_controller_mode
or
power_set_controller_mode_now
.