diff options
Diffstat (limited to 'include/linux/pm_qos_params.h')
-rw-r--r-- | include/linux/pm_qos_params.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/include/linux/pm_qos_params.h b/include/linux/pm_qos_params.h new file mode 100644 index 00000000000..5a536cbb25b --- /dev/null +++ b/include/linux/pm_qos_params.h | |||
@@ -0,0 +1,51 @@ | |||
1 | #ifndef _LINUX_PM_QOS_PARAMS_H | ||
2 | #define _LINUX_PM_QOS_PARAMS_H | ||
3 | /* interface for the pm_qos_power infrastructure of the linux kernel. | ||
4 | * | ||
5 | * Mark Gross <mgross@linux.intel.com> | ||
6 | */ | ||
7 | #include <linux/plist.h> | ||
8 | #include <linux/notifier.h> | ||
9 | #include <linux/miscdevice.h> | ||
10 | |||
11 | enum { | ||
12 | PM_QOS_RESERVED = 0, | ||
13 | PM_QOS_CPU_DMA_LATENCY, | ||
14 | PM_QOS_NETWORK_LATENCY, | ||
15 | PM_QOS_NETWORK_THROUGHPUT, | ||
16 | PM_QOS_MIN_ONLINE_CPUS, | ||
17 | PM_QOS_MAX_ONLINE_CPUS, | ||
18 | PM_QOS_CPU_FREQ_MIN, | ||
19 | PM_QOS_CPU_FREQ_MAX, | ||
20 | |||
21 | /* insert new class ID */ | ||
22 | |||
23 | PM_QOS_NUM_CLASSES, | ||
24 | }; | ||
25 | |||
26 | #define PM_QOS_DEFAULT_VALUE -1 | ||
27 | |||
28 | #define PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE (2000 * USEC_PER_SEC) | ||
29 | #define PM_QOS_NETWORK_LAT_DEFAULT_VALUE (2000 * USEC_PER_SEC) | ||
30 | #define PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE 0 | ||
31 | #define PM_QOS_MIN_ONLINE_CPUS_DEFAULT_VALUE 1 | ||
32 | #define PM_QOS_MAX_ONLINE_CPUS_DEFAULT_VALUE LONG_MAX | ||
33 | #define PM_QOS_CPU_FREQ_MIN_DEFAULT_VALUE 0 | ||
34 | #define PM_QOS_CPU_FREQ_MAX_DEFAULT_VALUE LONG_MAX | ||
35 | |||
36 | struct pm_qos_request_list { | ||
37 | struct plist_node list; | ||
38 | int pm_qos_class; | ||
39 | }; | ||
40 | |||
41 | void pm_qos_add_request(struct pm_qos_request_list *l, int pm_qos_class, s32 value); | ||
42 | void pm_qos_update_request(struct pm_qos_request_list *pm_qos_req, | ||
43 | s32 new_value); | ||
44 | void pm_qos_remove_request(struct pm_qos_request_list *pm_qos_req); | ||
45 | |||
46 | int pm_qos_request(int pm_qos_class); | ||
47 | int pm_qos_add_notifier(int pm_qos_class, struct notifier_block *notifier); | ||
48 | int pm_qos_remove_notifier(int pm_qos_class, struct notifier_block *notifier); | ||
49 | int pm_qos_request_active(struct pm_qos_request_list *req); | ||
50 | |||
51 | #endif | ||