3.6. Runtime Device Power Management

Runtime device power management (RDPM) helps to reduce power consumption with minimum user-visible impact. If a device has been idle for a sufficient time and the RDPM hardware support exists in both the device and driver, the device is put into a lower power state. The recovery from the lower power state is assured by an external I/O event for this device, which triggers the kernel and the device driver to bring the device back to the running state. All this occurs automatically, as RDPM is enabled by default.
Users are allowed to control RDPM of a device by setting the attribute in a particular RDPM configuration file. The RDPM configuration files for particular devices can be found in the /sys/devices/device/power/ directory, where device replaces the path to the directory of a particular device.
For example, to configure the RDPM for a CPU, access this directory:
/sys/devices/system/cpu/power/
Bringing a device back from a lower power state to the running state adds additional latency to the next I/O operation. The duration of that additional delay is device-specific. The configuration scheme described here allows the system administrator to disable RDPM on a device-by-device basis and to both examine and control some of the other parameters. Every /sys/devices/device/power directory contains the following configuration files:

control

This file is used to enable or disable RDPM for a particular device. All devices have one of the following two values of the attribute in the control file:

auto
default for all devices, they may be subject to automatic RDPM, depending on their driver
on
prevents the driver from managing the device's power state at run time

autosuspend_delay_ms

This file controls the auto-suspend delay, which is the minimum time period of inactivity between idle state and suspending of the device. The file contains the auto-suspend delay value in milliseconds. A negative value prevents the device from being suspended at run time, thus having the same effect as setting the attribute in the /sys/devices/device/power/control file to on. Values higher than 1000 are rounded up to the nearest second.