xref: /openbmc/linux/drivers/base/power/power.h (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
1 
2 
3 enum {
4 	DEVICE_PM_ON,
5 	DEVICE_PM1,
6 	DEVICE_PM2,
7 	DEVICE_PM3,
8 	DEVICE_PM_OFF,
9 };
10 
11 /*
12  * shutdown.c
13  */
14 
15 extern int device_detach_shutdown(struct device *);
16 extern void device_shutdown(void);
17 
18 
19 #ifdef CONFIG_PM
20 
21 /*
22  * main.c
23  */
24 
25 /*
26  * Used to synchronize global power management operations.
27  */
28 extern struct semaphore dpm_sem;
29 
30 /*
31  * Used to serialize changes to the dpm_* lists.
32  */
33 extern struct semaphore dpm_list_sem;
34 
35 /*
36  * The PM lists.
37  */
38 extern struct list_head dpm_active;
39 extern struct list_head dpm_off;
40 extern struct list_head dpm_off_irq;
41 
42 
43 static inline struct dev_pm_info * to_pm_info(struct list_head * entry)
44 {
45 	return container_of(entry, struct dev_pm_info, entry);
46 }
47 
48 static inline struct device * to_device(struct list_head * entry)
49 {
50 	return container_of(to_pm_info(entry), struct device, power);
51 }
52 
53 extern int device_pm_add(struct device *);
54 extern void device_pm_remove(struct device *);
55 
56 /*
57  * sysfs.c
58  */
59 
60 extern int dpm_sysfs_add(struct device *);
61 extern void dpm_sysfs_remove(struct device *);
62 
63 /*
64  * resume.c
65  */
66 
67 extern void dpm_resume(void);
68 extern void dpm_power_up(void);
69 extern int resume_device(struct device *);
70 
71 /*
72  * suspend.c
73  */
74 extern int suspend_device(struct device *, pm_message_t);
75 
76 
77 /*
78  * runtime.c
79  */
80 
81 extern int dpm_runtime_suspend(struct device *, pm_message_t);
82 extern void dpm_runtime_resume(struct device *);
83 
84 #else /* CONFIG_PM */
85 
86 
87 static inline int device_pm_add(struct device * dev)
88 {
89 	return 0;
90 }
91 static inline void device_pm_remove(struct device * dev)
92 {
93 
94 }
95 
96 static inline int dpm_runtime_suspend(struct device * dev, pm_message_t state)
97 {
98 	return 0;
99 }
100 
101 static inline void dpm_runtime_resume(struct device * dev)
102 {
103 
104 }
105 
106 #endif
107