Driver core: Fix device_move() vs. dpm list ordering, v2
[safe/jmp/linux-2.6] / drivers / base / power / power.h
1 static inline void device_pm_init(struct device *dev)
2 {
3         dev->power.status = DPM_ON;
4 }
5
6 #ifdef CONFIG_PM_SLEEP
7
8 /*
9  * main.c
10  */
11
12 extern struct list_head dpm_list;       /* The active device list */
13
14 static inline struct device *to_device(struct list_head *entry)
15 {
16         return container_of(entry, struct device, power.entry);
17 }
18
19 extern void device_pm_add(struct device *);
20 extern void device_pm_remove(struct device *);
21 extern void device_pm_move_before(struct device *, struct device *);
22 extern void device_pm_move_after(struct device *, struct device *);
23 extern void device_pm_move_last(struct device *);
24
25 #else /* CONFIG_PM_SLEEP */
26
27 static inline void device_pm_add(struct device *dev) {}
28 static inline void device_pm_remove(struct device *dev) {}
29 static inline void device_pm_move_before(struct device *deva,
30                                          struct device *devb) {}
31 static inline void device_pm_move_after(struct device *deva,
32                                         struct device *devb) {}
33 static inline void device_pm_move_last(struct device *dev) {}
34
35 #endif
36
37 #ifdef CONFIG_PM
38
39 /*
40  * sysfs.c
41  */
42
43 extern int dpm_sysfs_add(struct device *);
44 extern void dpm_sysfs_remove(struct device *);
45
46 #else /* CONFIG_PM */
47
48 static inline int dpm_sysfs_add(struct device *dev)
49 {
50         return 0;
51 }
52
53 static inline void dpm_sysfs_remove(struct device *dev)
54 {
55 }
56
57 #endif