pm_qos_params.h 1.2 KB
Newer Older
1 2
#ifndef _LINUX_PM_QOS_PARAMS_H
#define _LINUX_PM_QOS_PARAMS_H
M
Mark Gross 已提交
3 4
/* interface for the pm_qos_power infrastructure of the linux kernel.
 *
R
Richard Hughes 已提交
5
 * Mark Gross <mgross@linux.intel.com>
M
Mark Gross 已提交
6
 */
7
#include <linux/plist.h>
M
Mark Gross 已提交
8 9 10 11 12 13 14 15 16 17 18
#include <linux/notifier.h>
#include <linux/miscdevice.h>

#define PM_QOS_RESERVED 0
#define PM_QOS_CPU_DMA_LATENCY 1
#define PM_QOS_NETWORK_LATENCY 2
#define PM_QOS_NETWORK_THROUGHPUT 3

#define PM_QOS_NUM_CLASSES 4
#define PM_QOS_DEFAULT_VALUE -1

19 20 21 22
#define PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE	(2000 * USEC_PER_SEC)
#define PM_QOS_NETWORK_LAT_DEFAULT_VALUE	(2000 * USEC_PER_SEC)
#define PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE	0

23 24 25 26
struct pm_qos_request_list {
	struct plist_node list;
	int pm_qos_class;
};
M
Mark Gross 已提交
27

28
void pm_qos_add_request(struct pm_qos_request_list *l, int pm_qos_class, s32 value);
M
Mark Gross 已提交
29 30 31
void pm_qos_update_request(struct pm_qos_request_list *pm_qos_req,
		s32 new_value);
void pm_qos_remove_request(struct pm_qos_request_list *pm_qos_req);
M
Mark Gross 已提交
32

M
Mark Gross 已提交
33 34 35
int pm_qos_request(int pm_qos_class);
int pm_qos_add_notifier(int pm_qos_class, struct notifier_block *notifier);
int pm_qos_remove_notifier(int pm_qos_class, struct notifier_block *notifier);
36
int pm_qos_request_active(struct pm_qos_request_list *req);
M
Mark Gross 已提交
37

38
#endif