The user interface for controlling dynamic PM is located in the power/
subdirectory of each USB device's sysfs directory, that is, in
/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
The user interface for controlling dynamic PM is located in the power/
subdirectory of each USB device's sysfs directory, that is, in
/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
-relevant attribute files are: wakeup, level, and autosuspend.
+relevant attribute files are: wakeup, control, and autosuspend.
+(There may also be a file named "level"; this file was deprecated
+as of the 2.6.35 kernel and replaced by the "control" file.)
while the device is suspended, the change won't take
effect until the following suspend.)
while the device is suspended, the change won't take
effect until the following suspend.)
This file contains one of two words: "on" or "auto".
You can write those words to the file to change the
This file contains one of two words: "on" or "auto".
You can write those words to the file to change the
essentially the same thing -- they both prevent the device from being
autosuspended. Yes, this is a redundancy in the API.
(In 2.6.21 writing "0" to power/autosuspend would prevent the device
from being autosuspended; the behavior was changed in 2.6.22. The
power/autosuspend attribute did not exist prior to 2.6.21, and the
essentially the same thing -- they both prevent the device from being
autosuspended. Yes, this is a redundancy in the API.
(In 2.6.21 writing "0" to power/autosuspend would prevent the device
from being autosuspended; the behavior was changed in 2.6.22. The
power/autosuspend attribute did not exist prior to 2.6.21, and the
set to "on", or another interface in the same device might not be
idle. This is perfectly normal. If the reason for failure was that
the device hasn't been idle for long enough, a timer is scheduled to
set to "on", or another interface in the same device might not be
idle. This is perfectly normal. If the reason for failure was that
the device hasn't been idle for long enough, a timer is scheduled to
in their probe() routine, if they know that the device is capable of
suspending and resuming correctly. This is exactly equivalent to
in their probe() routine, if they know that the device is capable of
suspending and resuming correctly. This is exactly equivalent to
Sometimes a driver needs to make sure that remote wakeup is enabled
during autosuspend. For example, there's not much point
Sometimes a driver needs to make sure that remote wakeup is enabled
during autosuspend. For example, there's not much point