e39473d0b9
Define two device PM QoS flags, PM_QOS_FLAG_NO_POWER_OFF and PM_QOS_FLAG_REMOTE_WAKEUP, and introduce routines dev_pm_qos_expose_flags() and dev_pm_qos_hide_flags() allowing the caller to expose those two flags to user space or to hide them from it, respectively. After the flags have been exposed, user space will see two additional sysfs attributes, pm_qos_no_power_off and pm_qos_remote_wakeup, under the device's /sys/devices/.../power/ directory. Then, writing 1 to one of them will update the PM QoS flags request owned by user space so that the corresponding flag is requested to be set. In turn, writing 0 to one of them will cause the corresponding flag in the user space's request to be cleared (however, the owners of the other PM QoS flags requests for the same device may still request the flag to be set and it may be effectively set even if user space doesn't request that). Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Jean Pihet <j-pihet@ti.com> Acked-by: mark gross <markgross@thegnar.org>
238 lines
9.4 KiB
Plaintext
238 lines
9.4 KiB
Plaintext
What: /sys/devices/.../power/
|
|
Date: January 2009
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../power directory contains attributes
|
|
allowing the user space to check and modify some power
|
|
management related properties of given device.
|
|
|
|
What: /sys/devices/.../power/wakeup
|
|
Date: January 2009
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../power/wakeup attribute allows the user
|
|
space to check if the device is enabled to wake up the system
|
|
from sleep states, such as the memory sleep state (suspend to
|
|
RAM) and hibernation (suspend to disk), and to enable or disable
|
|
it to do that as desired.
|
|
|
|
Some devices support "wakeup" events, which are hardware signals
|
|
used to activate the system from a sleep state. Such devices
|
|
have one of the following two values for the sysfs power/wakeup
|
|
file:
|
|
|
|
+ "enabled\n" to issue the events;
|
|
+ "disabled\n" not to do so;
|
|
|
|
In that cases the user space can change the setting represented
|
|
by the contents of this file by writing either "enabled", or
|
|
"disabled" to it.
|
|
|
|
For the devices that are not capable of generating system wakeup
|
|
events this file is not present. In that case the device cannot
|
|
be enabled to wake up the system from sleep states.
|
|
|
|
What: /sys/devices/.../power/control
|
|
Date: January 2009
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../power/control attribute allows the user
|
|
space to control the run-time power management of the device.
|
|
|
|
All devices have one of the following two values for the
|
|
power/control file:
|
|
|
|
+ "auto\n" to allow the device to be power managed at run time;
|
|
+ "on\n" to prevent the device from being power managed;
|
|
|
|
The default for all devices is "auto", which means that they may
|
|
be subject to automatic power management, depending on their
|
|
drivers. Changing this attribute to "on" prevents the driver
|
|
from power managing the device at run time. Doing that while
|
|
the device is suspended causes it to be woken up.
|
|
|
|
What: /sys/devices/.../power/async
|
|
Date: January 2009
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../async attribute allows the user space to
|
|
enable or diasble the device's suspend and resume callbacks to
|
|
be executed asynchronously (ie. in separate threads, in parallel
|
|
with the main suspend/resume thread) during system-wide power
|
|
transitions (eg. suspend to RAM, hibernation).
|
|
|
|
All devices have one of the following two values for the
|
|
power/async file:
|
|
|
|
+ "enabled\n" to permit the asynchronous suspend/resume;
|
|
+ "disabled\n" to forbid it;
|
|
|
|
The value of this attribute may be changed by writing either
|
|
"enabled", or "disabled" to it.
|
|
|
|
It generally is unsafe to permit the asynchronous suspend/resume
|
|
of a device unless it is certain that all of the PM dependencies
|
|
of the device are known to the PM core. However, for some
|
|
devices this attribute is set to "enabled" by bus type code or
|
|
device drivers and in that cases it should be safe to leave the
|
|
default value.
|
|
|
|
What: /sys/devices/.../power/wakeup_count
|
|
Date: September 2010
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_count attribute contains the number
|
|
of signaled wakeup events associated with the device. This
|
|
attribute is read-only. If the device is not enabled to wake up
|
|
the system from sleep states, this attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_active_count
|
|
Date: September 2010
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_active_count attribute contains the
|
|
number of times the processing of wakeup events associated with
|
|
the device was completed (at the kernel level). This attribute
|
|
is read-only. If the device is not enabled to wake up the
|
|
system from sleep states, this attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_abort_count
|
|
Date: February 2012
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_abort_count attribute contains the
|
|
number of times the processing of a wakeup event associated with
|
|
the device might have aborted system transition into a sleep
|
|
state in progress. This attribute is read-only. If the device
|
|
is not enabled to wake up the system from sleep states, this
|
|
attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_expire_count
|
|
Date: February 2012
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_expire_count attribute contains the
|
|
number of times a wakeup event associated with the device has
|
|
been reported with a timeout that expired. This attribute is
|
|
read-only. If the device is not enabled to wake up the system
|
|
from sleep states, this attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_active
|
|
Date: September 2010
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_active attribute contains either 1,
|
|
or 0, depending on whether or not a wakeup event associated with
|
|
the device is being processed (1). This attribute is read-only.
|
|
If the device is not enabled to wake up the system from sleep
|
|
states, this attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_total_time_ms
|
|
Date: September 2010
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_total_time_ms attribute contains
|
|
the total time of processing wakeup events associated with the
|
|
device, in milliseconds. This attribute is read-only. If the
|
|
device is not enabled to wake up the system from sleep states,
|
|
this attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_max_time_ms
|
|
Date: September 2010
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_max_time_ms attribute contains
|
|
the maximum time of processing a single wakeup event associated
|
|
with the device, in milliseconds. This attribute is read-only.
|
|
If the device is not enabled to wake up the system from sleep
|
|
states, this attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_last_time_ms
|
|
Date: September 2010
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_last_time_ms attribute contains
|
|
the value of the monotonic clock corresponding to the time of
|
|
signaling the last wakeup event associated with the device, in
|
|
milliseconds. This attribute is read-only. If the device is
|
|
not enabled to wake up the system from sleep states, this
|
|
attribute is not present.
|
|
|
|
What: /sys/devices/.../power/wakeup_prevent_sleep_time_ms
|
|
Date: February 2012
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../wakeup_prevent_sleep_time_ms attribute
|
|
contains the total time the device has been preventing
|
|
opportunistic transitions to sleep states from occuring.
|
|
This attribute is read-only. If the device is not enabled to
|
|
wake up the system from sleep states, this attribute is not
|
|
present.
|
|
|
|
What: /sys/devices/.../power/autosuspend_delay_ms
|
|
Date: September 2010
|
|
Contact: Alan Stern <stern@rowland.harvard.edu>
|
|
Description:
|
|
The /sys/devices/.../power/autosuspend_delay_ms attribute
|
|
contains the autosuspend delay value (in milliseconds). Some
|
|
drivers do not want their device to suspend as soon as it
|
|
becomes idle at run time; they want the device to remain
|
|
inactive for a certain minimum period of time first. That
|
|
period is called the autosuspend delay. Negative values will
|
|
prevent the device from being suspended at run time (similar
|
|
to writing "on" to the power/control attribute). Values >=
|
|
1000 will cause the autosuspend timer expiration to be rounded
|
|
up to the nearest second.
|
|
|
|
Not all drivers support this attribute. If it isn't supported,
|
|
attempts to read or write it will yield I/O errors.
|
|
|
|
What: /sys/devices/.../power/pm_qos_latency_us
|
|
Date: March 2012
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../power/pm_qos_resume_latency_us attribute
|
|
contains the PM QoS resume latency limit for the given device,
|
|
which is the maximum allowed time it can take to resume the
|
|
device, after it has been suspended at run time, from a resume
|
|
request to the moment the device will be ready to process I/O,
|
|
in microseconds. If it is equal to 0, however, this means that
|
|
the PM QoS resume latency may be arbitrary.
|
|
|
|
Not all drivers support this attribute. If it isn't supported,
|
|
it is not present.
|
|
|
|
This attribute has no effect on system-wide suspend/resume and
|
|
hibernation.
|
|
|
|
What: /sys/devices/.../power/pm_qos_no_power_off
|
|
Date: September 2012
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../power/pm_qos_no_power_off attribute
|
|
is used for manipulating the PM QoS "no power off" flag. If
|
|
set, this flag indicates to the kernel that power should not
|
|
be removed entirely from the device.
|
|
|
|
Not all drivers support this attribute. If it isn't supported,
|
|
it is not present.
|
|
|
|
This attribute has no effect on system-wide suspend/resume and
|
|
hibernation.
|
|
|
|
What: /sys/devices/.../power/pm_qos_remote_wakeup
|
|
Date: September 2012
|
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
|
Description:
|
|
The /sys/devices/.../power/pm_qos_remote_wakeup attribute
|
|
is used for manipulating the PM QoS "remote wakeup required"
|
|
flag. If set, this flag indicates to the kernel that the
|
|
device is a source of user events that have to be signaled from
|
|
its low-power states.
|
|
|
|
Not all drivers support this attribute. If it isn't supported,
|
|
it is not present.
|
|
|
|
This attribute has no effect on system-wide suspend/resume and
|
|
hibernation.
|