9 #ifndef _LINUX_PM_RUNTIME_H
10 #define _LINUX_PM_RUNTIME_H
12 #include <linux/device.h>
19 #define RPM_ASYNC 0x01
20 #define RPM_NOWAIT 0x02
22 #define RPM_GET_PUT 0x04
26 #ifdef CONFIG_PM_RUNTIME
40 extern int pm_generic_runtime_idle(
struct device *
dev);
41 extern int pm_generic_runtime_suspend(
struct device *
dev);
42 extern int pm_generic_runtime_resume(
struct device *
dev);
48 extern void pm_runtime_update_max_time_suspended(
struct device *
dev,
51 static inline bool pm_children_suspended(
struct device *
dev)
53 return dev->
power.ignore_children
57 static inline void pm_runtime_get_noresume(
struct device *
dev)
62 static inline void pm_runtime_put_noidle(
struct device *
dev)
64 atomic_add_unless(&dev->
power.usage_count, -1, 0);
67 static inline bool device_run_wake(
struct device *
dev)
69 return dev->
power.run_wake;
77 static inline bool pm_runtime_suspended(
struct device *
dev)
80 && !dev->
power.disable_depth;
83 static inline bool pm_runtime_status_suspended(
struct device *
dev)
88 static inline bool pm_runtime_enabled(
struct device *
dev)
90 return !dev->
power.disable_depth;
93 static inline bool pm_runtime_callbacks_present(
struct device *
dev)
95 return !dev->
power.no_callbacks;
98 static inline void pm_runtime_mark_last_busy(
struct device *
dev)
122 unsigned int status) {
return 0; }
129 static inline bool pm_children_suspended(
struct device *
dev) {
return false; }
130 static inline void pm_runtime_get_noresume(
struct device *
dev) {}
131 static inline void pm_runtime_put_noidle(
struct device *
dev) {}
132 static inline bool device_run_wake(
struct device *
dev) {
return false; }
133 static inline void device_set_run_wake(
struct device *
dev,
bool enable) {}
134 static inline bool pm_runtime_suspended(
struct device *
dev) {
return false; }
135 static inline bool pm_runtime_status_suspended(
struct device *
dev) {
return false; }
136 static inline bool pm_runtime_enabled(
struct device *
dev) {
return false; }
138 static inline int pm_generic_runtime_idle(
struct device *
dev) {
return 0; }
139 static inline int pm_generic_runtime_suspend(
struct device *
dev) {
return 0; }
140 static inline int pm_generic_runtime_resume(
struct device *
dev) {
return 0; }
144 static inline bool pm_runtime_callbacks_present(
struct device *
dev) {
return false; }
145 static inline void pm_runtime_mark_last_busy(
struct device *
dev) {}
155 static inline int pm_runtime_idle(
struct device *
dev)
160 static inline int pm_runtime_suspend(
struct device *
dev)
165 static inline int pm_runtime_autosuspend(
struct device *
dev)
170 static inline int pm_runtime_resume(
struct device *
dev)
175 static inline int pm_request_idle(
struct device *
dev)
180 static inline int pm_request_resume(
struct device *
dev)
185 static inline int pm_request_autosuspend(
struct device *
dev)
190 static inline int pm_runtime_get(
struct device *
dev)
195 static inline int pm_runtime_get_sync(
struct device *
dev)
200 static inline int pm_runtime_put(
struct device *
dev)
205 static inline int pm_runtime_put_autosuspend(
struct device *
dev)
211 static inline int pm_runtime_put_sync(
struct device *
dev)
216 static inline int pm_runtime_put_sync_suspend(
struct device *
dev)
221 static inline int pm_runtime_put_sync_autosuspend(
struct device *
dev)
226 static inline int pm_runtime_set_active(
struct device *
dev)
231 static inline void pm_runtime_set_suspended(
struct device *
dev)
236 static inline void pm_runtime_disable(
struct device *
dev)
241 static inline void pm_runtime_use_autosuspend(
struct device *
dev)
246 static inline void pm_runtime_dont_use_autosuspend(
struct device *
dev)