aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pm_runtime.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/pm_runtime.h')
-rw-r--r--include/linux/pm_runtime.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index 370ce0a6fe4a..6e81888c6222 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -28,6 +28,11 @@ extern int __pm_runtime_set_status(struct device *dev, unsigned int status);
28extern int pm_runtime_barrier(struct device *dev); 28extern int pm_runtime_barrier(struct device *dev);
29extern void pm_runtime_enable(struct device *dev); 29extern void pm_runtime_enable(struct device *dev);
30extern void __pm_runtime_disable(struct device *dev, bool check_resume); 30extern void __pm_runtime_disable(struct device *dev, bool check_resume);
31extern void pm_runtime_allow(struct device *dev);
32extern void pm_runtime_forbid(struct device *dev);
33extern int pm_generic_runtime_idle(struct device *dev);
34extern int pm_generic_runtime_suspend(struct device *dev);
35extern int pm_generic_runtime_resume(struct device *dev);
31 36
32static inline bool pm_children_suspended(struct device *dev) 37static inline bool pm_children_suspended(struct device *dev)
33{ 38{
@@ -60,6 +65,11 @@ static inline void device_set_run_wake(struct device *dev, bool enable)
60 dev->power.run_wake = enable; 65 dev->power.run_wake = enable;
61} 66}
62 67
68static inline bool pm_runtime_suspended(struct device *dev)
69{
70 return dev->power.runtime_status == RPM_SUSPENDED;
71}
72
63#else /* !CONFIG_PM_RUNTIME */ 73#else /* !CONFIG_PM_RUNTIME */
64 74
65static inline int pm_runtime_idle(struct device *dev) { return -ENOSYS; } 75static inline int pm_runtime_idle(struct device *dev) { return -ENOSYS; }
@@ -78,6 +88,8 @@ static inline int __pm_runtime_set_status(struct device *dev,
78static inline int pm_runtime_barrier(struct device *dev) { return 0; } 88static inline int pm_runtime_barrier(struct device *dev) { return 0; }
79static inline void pm_runtime_enable(struct device *dev) {} 89static inline void pm_runtime_enable(struct device *dev) {}
80static inline void __pm_runtime_disable(struct device *dev, bool c) {} 90static inline void __pm_runtime_disable(struct device *dev, bool c) {}
91static inline void pm_runtime_allow(struct device *dev) {}
92static inline void pm_runtime_forbid(struct device *dev) {}
81 93
82static inline bool pm_children_suspended(struct device *dev) { return false; } 94static inline bool pm_children_suspended(struct device *dev) { return false; }
83static inline void pm_suspend_ignore_children(struct device *dev, bool en) {} 95static inline void pm_suspend_ignore_children(struct device *dev, bool en) {}
@@ -85,6 +97,11 @@ static inline void pm_runtime_get_noresume(struct device *dev) {}
85static inline void pm_runtime_put_noidle(struct device *dev) {} 97static inline void pm_runtime_put_noidle(struct device *dev) {}
86static inline bool device_run_wake(struct device *dev) { return false; } 98static inline bool device_run_wake(struct device *dev) { return false; }
87static inline void device_set_run_wake(struct device *dev, bool enable) {} 99static inline void device_set_run_wake(struct device *dev, bool enable) {}
100static inline bool pm_runtime_suspended(struct device *dev) { return false; }
101
102static inline int pm_generic_runtime_idle(struct device *dev) { return 0; }
103static inline int pm_generic_runtime_suspend(struct device *dev) { return 0; }
104static inline int pm_generic_runtime_resume(struct device *dev) { return 0; }
88 105
89#endif /* !CONFIG_PM_RUNTIME */ 106#endif /* !CONFIG_PM_RUNTIME */
90 107