| |
| |
| enum { |
| DEVICE_PM_ON, |
| DEVICE_PM1, |
| DEVICE_PM2, |
| DEVICE_PM3, |
| DEVICE_PM_OFF, |
| }; |
| |
| /* |
| * shutdown.c |
| */ |
| |
| extern int device_detach_shutdown(struct device *); |
| extern void device_shutdown(void); |
| |
| |
| #ifdef CONFIG_PM |
| |
| /* |
| * main.c |
| */ |
| |
| /* |
| * Used to synchronize global power management operations. |
| */ |
| extern struct semaphore dpm_sem; |
| |
| /* |
| * Used to serialize changes to the dpm_* lists. |
| */ |
| extern struct semaphore dpm_list_sem; |
| |
| /* |
| * The PM lists. |
| */ |
| extern struct list_head dpm_active; |
| extern struct list_head dpm_off; |
| extern struct list_head dpm_off_irq; |
| |
| |
| static inline struct dev_pm_info * to_pm_info(struct list_head * entry) |
| { |
| return container_of(entry, struct dev_pm_info, entry); |
| } |
| |
| static inline struct device * to_device(struct list_head * entry) |
| { |
| return container_of(to_pm_info(entry), struct device, power); |
| } |
| |
| extern int device_pm_add(struct device *); |
| extern void device_pm_remove(struct device *); |
| |
| /* |
| * sysfs.c |
| */ |
| |
| extern int dpm_sysfs_add(struct device *); |
| extern void dpm_sysfs_remove(struct device *); |
| |
| /* |
| * resume.c |
| */ |
| |
| extern void dpm_resume(void); |
| extern void dpm_power_up(void); |
| extern int resume_device(struct device *); |
| |
| /* |
| * suspend.c |
| */ |
| extern int suspend_device(struct device *, pm_message_t); |
| |
| |
| /* |
| * runtime.c |
| */ |
| |
| extern int dpm_runtime_suspend(struct device *, pm_message_t); |
| extern void dpm_runtime_resume(struct device *); |
| |
| #else /* CONFIG_PM */ |
| |
| |
| static inline int device_pm_add(struct device * dev) |
| { |
| return 0; |
| } |
| static inline void device_pm_remove(struct device * dev) |
| { |
| |
| } |
| |
| static inline int dpm_runtime_suspend(struct device * dev, pm_message_t state) |
| { |
| return 0; |
| } |
| |
| static inline void dpm_runtime_resume(struct device * dev) |
| { |
| |
| } |
| |
| #endif |