Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
base
power
power.h
Go to the documentation of this file.
1
#include <
linux/pm_qos.h
>
2
3
static
inline
void
device_pm_init_common(
struct
device
*
dev
)
4
{
5
if
(!dev->
power
.early_init) {
6
spin_lock_init
(&dev->
power
.lock);
7
dev->
power
.power_state =
PMSG_INVALID
;
8
dev->
power
.early_init =
true
;
9
}
10
}
11
12
#ifdef CONFIG_PM_RUNTIME
13
14
static
inline
void
pm_runtime_early_init(
struct
device
*dev)
15
{
16
dev->
power
.disable_depth = 1;
17
device_pm_init_common(dev);
18
}
19
20
extern
void
pm_runtime_init
(
struct
device
*dev);
21
extern
void
pm_runtime_remove
(
struct
device
*dev);
22
23
#else
/* !CONFIG_PM_RUNTIME */
24
25
static
inline
void
pm_runtime_early_init(
struct
device
*dev)
26
{
27
device_pm_init_common(dev);
28
}
29
30
static
inline
void
pm_runtime_init
(
struct
device
*dev) {}
31
static
inline
void
pm_runtime_remove
(
struct
device
*dev) {}
32
33
#endif
/* !CONFIG_PM_RUNTIME */
34
35
#ifdef CONFIG_PM_SLEEP
36
37
/* kernel/power/main.c */
38
extern
int
pm_async_enabled;
39
40
/* drivers/base/power/main.c */
41
extern
struct
list_head
dpm_list;
/* The active device list */
42
43
static
inline
struct
device
*
to_device
(
struct
list_head
*
entry
)
44
{
45
return
container_of
(entry,
struct
device
,
power
.entry);
46
}
47
48
extern
void
device_pm_sleep_init
(
struct
device
*dev);
49
extern
void
device_pm_add
(
struct
device
*);
50
extern
void
device_pm_remove
(
struct
device
*);
51
extern
void
device_pm_move_before
(
struct
device
*,
struct
device
*);
52
extern
void
device_pm_move_after
(
struct
device
*,
struct
device
*);
53
extern
void
device_pm_move_last
(
struct
device
*);
54
55
#else
/* !CONFIG_PM_SLEEP */
56
57
static
inline
void
device_pm_sleep_init
(
struct
device
*dev) {}
58
59
static
inline
void
device_pm_add
(
struct
device
*dev)
60
{
61
dev_pm_qos_constraints_init
(dev);
62
}
63
64
static
inline
void
device_pm_remove
(
struct
device
*dev)
65
{
66
dev_pm_qos_constraints_destroy
(dev);
67
pm_runtime_remove
(dev);
68
}
69
70
static
inline
void
device_pm_move_before
(
struct
device
*deva,
71
struct
device
*devb) {}
72
static
inline
void
device_pm_move_after
(
struct
device
*deva,
73
struct
device
*devb) {}
74
static
inline
void
device_pm_move_last
(
struct
device
*dev) {}
75
76
#endif
/* !CONFIG_PM_SLEEP */
77
78
static
inline
void
device_pm_init(
struct
device
*dev)
79
{
80
device_pm_init_common(dev);
81
device_pm_sleep_init
(dev);
82
pm_runtime_init
(dev);
83
}
84
85
#ifdef CONFIG_PM
86
87
/*
88
* sysfs.c
89
*/
90
91
extern
int
dpm_sysfs_add
(
struct
device
*dev);
92
extern
void
dpm_sysfs_remove
(
struct
device
*dev);
93
extern
void
rpm_sysfs_remove
(
struct
device
*dev);
94
extern
int
wakeup_sysfs_add
(
struct
device
*dev);
95
extern
void
wakeup_sysfs_remove
(
struct
device
*dev);
96
extern
int
pm_qos_sysfs_add
(
struct
device
*dev);
97
extern
void
pm_qos_sysfs_remove
(
struct
device
*dev);
98
99
#else
/* CONFIG_PM */
100
101
static
inline
int
dpm_sysfs_add
(
struct
device
*dev) {
return
0; }
102
static
inline
void
dpm_sysfs_remove
(
struct
device
*dev) {}
103
static
inline
void
rpm_sysfs_remove
(
struct
device
*dev) {}
104
static
inline
int
wakeup_sysfs_add
(
struct
device
*dev) {
return
0; }
105
static
inline
void
wakeup_sysfs_remove
(
struct
device
*dev) {}
106
static
inline
int
pm_qos_sysfs_add
(
struct
device
*dev) {
return
0; }
107
static
inline
void
pm_qos_sysfs_remove
(
struct
device
*dev) {}
108
109
#endif
Generated on Thu Jan 10 2013 13:25:50 for Linux Kernel by
1.8.2