power.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * shutdown.c
  3. */
  4. extern void device_shutdown(void);
  5. #ifdef CONFIG_PM
  6. /*
  7. * main.c
  8. */
  9. /*
  10. * Used to synchronize global power management operations.
  11. */
  12. extern struct semaphore dpm_sem;
  13. /*
  14. * Used to serialize changes to the dpm_* lists.
  15. */
  16. extern struct semaphore dpm_list_sem;
  17. /*
  18. * The PM lists.
  19. */
  20. extern struct list_head dpm_active;
  21. extern struct list_head dpm_off;
  22. extern struct list_head dpm_off_irq;
  23. static inline struct dev_pm_info * to_pm_info(struct list_head * entry)
  24. {
  25. return container_of(entry, struct dev_pm_info, entry);
  26. }
  27. static inline struct device * to_device(struct list_head * entry)
  28. {
  29. return container_of(to_pm_info(entry), struct device, power);
  30. }
  31. extern int device_pm_add(struct device *);
  32. extern void device_pm_remove(struct device *);
  33. /*
  34. * sysfs.c
  35. */
  36. extern int dpm_sysfs_add(struct device *);
  37. extern void dpm_sysfs_remove(struct device *);
  38. /*
  39. * resume.c
  40. */
  41. extern void dpm_resume(void);
  42. extern void dpm_power_up(void);
  43. extern int resume_device(struct device *);
  44. /*
  45. * suspend.c
  46. */
  47. extern int suspend_device(struct device *, pm_message_t);
  48. /*
  49. * runtime.c
  50. */
  51. extern int dpm_runtime_suspend(struct device *, pm_message_t);
  52. extern void dpm_runtime_resume(struct device *);
  53. #else /* CONFIG_PM */
  54. static inline int device_pm_add(struct device * dev)
  55. {
  56. return 0;
  57. }
  58. static inline void device_pm_remove(struct device * dev)
  59. {
  60. }
  61. static inline int dpm_runtime_suspend(struct device * dev, pm_message_t state)
  62. {
  63. return 0;
  64. }
  65. static inline void dpm_runtime_resume(struct device * dev)
  66. {
  67. }
  68. #endif