3.2.2.11.4. Runtime PM

Overview

Runtime Power Management (PM) framework reduces the active power consumption of the SoC by allowing individual devices to suspend themselves when they are idle. The decision to suspend is driven by the device independently of the overall system state or any other devices (except parent device). It is not necessary for the user space to idle for a device to runtime suspend itself. Each device selects its desired low power state based on its internal hardware capabilities like clock and power domain, and wake-up capabilities. For more details, please refer to the Linux Kernel documentation on Runtime PM.

Supported Devices

The following drivers have been validated for Runtime PM in this release:

DSS, GPU, McASP, OSPI, MCAN, Video Encoder/Decoder Engine.

Driver Usage

Linux provides the following sysfs interface (/sys/devices/…/power/) to control the Runtime PM behavior at per device level:

  1. autosuspend_delay_ms: desired period of inactivity until which runtime suspend will be automatically delayed.

  2. control: if set to “auto”, driver manages power at runtime. If set to “on”, it basically turns off runtime pm for the device.

  3. runtime_active_time: period that device has been active.

  4. runtime_status: current status of the device. It can be suspended, active, or unsupported.

  5. runtime_suspended_time: period that device has been suspended.

For example, here are the default values for DSS device:

root@evm:~# cat /sys/devices/platform/bus@f0000/30200000.dss/power/*
1000
auto
2285
suspended
199159074

To disable Runtime PM for the DSS device, the “control” parameter can be changed to “on”:

root@evm:~# echo on > /sys/devices/platform/bus@f0000/30200000.dss/power/control
root@evm:~# cat /sys/devices/platform/bus@f0000/30200000.dss/power/*
1000
on
4629
active
199277671