blob: 8ba0830cbc03fa6fe50d8bc27be7b5c3e770259c [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * shutdown.c
3 */
4
Linus Torvalds1da177e2005-04-16 15:20:36 -07005extern void device_shutdown(void);
6
7
Rafael J. Wysocki296699d2007-07-29 23:27:18 +02008#ifdef CONFIG_PM_SLEEP
Linus Torvalds1da177e2005-04-16 15:20:36 -07009
10/*
11 * main.c
12 */
13
14/*
15 * Used to synchronize global power management operations.
16 */
Matthias Kaehlcke11048dc2007-05-23 14:19:41 -070017extern struct mutex dpm_mtx;
Linus Torvalds1da177e2005-04-16 15:20:36 -070018
19/*
20 * Used to serialize changes to the dpm_* lists.
21 */
Matthias Kaehlcke11048dc2007-05-23 14:19:41 -070022extern struct mutex dpm_list_mtx;
Linus Torvalds1da177e2005-04-16 15:20:36 -070023
24/*
25 * The PM lists.
26 */
27extern struct list_head dpm_active;
28extern struct list_head dpm_off;
29extern struct list_head dpm_off_irq;
30
31
32static inline struct dev_pm_info * to_pm_info(struct list_head * entry)
33{
34 return container_of(entry, struct dev_pm_info, entry);
35}
36
37static inline struct device * to_device(struct list_head * entry)
38{
39 return container_of(to_pm_info(entry), struct device, power);
40}
41
42extern int device_pm_add(struct device *);
43extern void device_pm_remove(struct device *);
44
45/*
46 * sysfs.c
47 */
48
49extern int dpm_sysfs_add(struct device *);
50extern void dpm_sysfs_remove(struct device *);
51
52/*
53 * resume.c
54 */
55
56extern void dpm_resume(void);
57extern void dpm_power_up(void);
58extern int resume_device(struct device *);
59
60/*
61 * suspend.c
62 */
63extern int suspend_device(struct device *, pm_message_t);
64
Rafael J. Wysocki296699d2007-07-29 23:27:18 +020065#else /* CONFIG_PM_SLEEP */
Linus Torvalds1da177e2005-04-16 15:20:36 -070066
67
68static inline int device_pm_add(struct device * dev)
69{
70 return 0;
71}
72static inline void device_pm_remove(struct device * dev)
73{
74
75}
76
Linus Torvalds1da177e2005-04-16 15:20:36 -070077#endif