power.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. #else /* CONFIG_PM */
  52. static inline int device_pm_add(struct device * dev)
  53. {
  54. return 0;
  55. }
  56. static inline void device_pm_remove(struct device * dev)
  57. {
  58. }
  59. #endif