The user interface for dynamic PM
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, control, and autosuspend_delay_ms. (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. In 2.6.38 the autosuspend file will be deprecated and replaced by the autosuspend_delay_ms file. The only difference is that the newer file expresses the delay in milliseconds whereas the older file uses seconds. Confusingly, both files are present in 2.6.37 but only autosuspend works.)
This file is empty if the device does not support remote wakeup. Otherwise the file contains either the word enabled or the word disabled, and you can write those words to the file. The setting determines whether or not remote wakeup will be enabled when the device is next suspended. (If the setting is changed 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 device’s setting.
on means that the device should be resumed and autosuspend is not allowed. (Of course, system suspends are still allowed.)
auto is the normal state in which the kernel is allowed to autosuspend and autoresume the device.
(In kernels up to 2.6.32, you could also specify suspend, meaning that the device should remain suspended and autoresume was not allowed. This setting is no longer supported.)
This file contains an integer value, which is the number of milliseconds the device should remain idle before the kernel will autosuspend it (the idle-delay time). The default is 2000. 0 means to autosuspend as soon as the device becomes idle, and negative values mean never to autosuspend. You can write a number to the file to change the autosuspend idle-delay time.