aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/pm.h')
-rw-r--r--include/linux/pm.h29
1 files changed, 17 insertions, 12 deletions
diff --git a/include/linux/pm.h b/include/linux/pm.h
index 21415cc91cbb..512e09177e57 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -267,7 +267,7 @@ const struct dev_pm_ops name = { \
267 * callbacks provided by device drivers supporting both the system sleep PM and 267 * callbacks provided by device drivers supporting both the system sleep PM and
268 * runtime PM, make the pm member point to generic_subsys_pm_ops. 268 * runtime PM, make the pm member point to generic_subsys_pm_ops.
269 */ 269 */
270#ifdef CONFIG_PM_OPS 270#ifdef CONFIG_PM
271extern struct dev_pm_ops generic_subsys_pm_ops; 271extern struct dev_pm_ops generic_subsys_pm_ops;
272#define GENERIC_SUBSYS_PM_OPS (&generic_subsys_pm_ops) 272#define GENERIC_SUBSYS_PM_OPS (&generic_subsys_pm_ops)
273#else 273#else
@@ -465,6 +465,14 @@ struct dev_pm_info {
465 465
466extern void update_pm_runtime_accounting(struct device *dev); 466extern void update_pm_runtime_accounting(struct device *dev);
467 467
468/*
469 * Power domains provide callbacks that are executed during system suspend,
470 * hibernation, system resume and during runtime PM transitions along with
471 * subsystem-level and driver-level callbacks.
472 */
473struct dev_power_domain {
474 struct dev_pm_ops ops;
475};
468 476
469/* 477/*
470 * The PM_EVENT_ messages are also used by drivers implementing the legacy 478 * The PM_EVENT_ messages are also used by drivers implementing the legacy
@@ -521,13 +529,19 @@ extern void update_pm_runtime_accounting(struct device *dev);
521 */ 529 */
522 530
523#ifdef CONFIG_PM_SLEEP 531#ifdef CONFIG_PM_SLEEP
524extern void device_pm_lock(void); 532#ifndef CONFIG_ARCH_NO_SYSDEV_OPS
533extern int sysdev_suspend(pm_message_t state);
525extern int sysdev_resume(void); 534extern int sysdev_resume(void);
535#else
536static inline int sysdev_suspend(pm_message_t state) { return 0; }
537static inline int sysdev_resume(void) { return 0; }
538#endif
539
540extern void device_pm_lock(void);
526extern void dpm_resume_noirq(pm_message_t state); 541extern void dpm_resume_noirq(pm_message_t state);
527extern void dpm_resume_end(pm_message_t state); 542extern void dpm_resume_end(pm_message_t state);
528 543
529extern void device_pm_unlock(void); 544extern void device_pm_unlock(void);
530extern int sysdev_suspend(pm_message_t state);
531extern int dpm_suspend_noirq(pm_message_t state); 545extern int dpm_suspend_noirq(pm_message_t state);
532extern int dpm_suspend_start(pm_message_t state); 546extern int dpm_suspend_start(pm_message_t state);
533 547
@@ -565,15 +579,6 @@ enum dpm_order {
565 DPM_ORDER_DEV_LAST, 579 DPM_ORDER_DEV_LAST,
566}; 580};
567 581
568/*
569 * Global Power Management flags
570 * Used to keep APM and ACPI from both being active
571 */
572extern unsigned int pm_flags;
573
574#define PM_APM 1
575#define PM_ACPI 2
576
577extern int pm_generic_suspend(struct device *dev); 582extern int pm_generic_suspend(struct device *dev);
578extern int pm_generic_resume(struct device *dev); 583extern int pm_generic_resume(struct device *dev);
579extern int pm_generic_freeze(struct device *dev); 584extern int pm_generic_freeze(struct device *dev);