PM QoS: Implement per-device PM QoS constraints
authorJean Pihet <j-pihet@ti.com>
Thu, 25 Aug 2011 13:35:41 +0000 (15:35 +0200)
committerRafael J. Wysocki <rjw@sisk.pl>
Thu, 25 Aug 2011 13:35:41 +0000 (15:35 +0200)
commit91ff4cb803df6de9114351b9f2f0f39f397ee03e
treeeb24c7df28d0f93557ac1d9e7d72a79fc3556b97
parentabe98ec2d86279fe821c9051003a0abc43444f15
PM QoS: Implement per-device PM QoS constraints

Implement the per-device PM QoS constraints by creating a device
PM QoS API, which calls the PM QoS constraints management core code.

The per-device latency constraints data strctures are stored
in the device dev_pm_info struct.

The device PM code calls the init and destroy of the per-device constraints
data struct in order to support the dynamic insertion and removal of the
devices in the system.

To minimize the data usage by the per-device constraints, the data struct
is only allocated at the first call to dev_pm_qos_add_request.
The data is later free'd when the device is removed from the system.
A global mutex protects the constraints users from the data being
allocated and free'd.

Signed-off-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
drivers/base/power/Makefile
drivers/base/power/main.c
drivers/base/power/qos.c [new file with mode: 0644]
include/linux/pm.h
include/linux/pm_qos.h