aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2014-11-14 03:47:25 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-11-17 15:23:34 -0500
commit3fb1581ea1ab0aec6ac5430dc0e257a8c9b71680 (patch)
tree6af43faea7b2cbe61d4aefe54a1b3ebe34204d7f
parentf114040e3ea6e07372334ade75d1ee0775c355e1 (diff)
ARM: 8199/1: PM / Runtime: Add getter for querying the IRQ safe option v12
Add a simple getter pm_runtime_is_irq_safe() for querying whether runtime PM IRQ safe was set or not. Various bus drivers implementing runtime PM may use choose to suspend differently based on IRQ safeness status of child driver (e.g. do not unprepare the clock if IRQ safe is not set). Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Rafael J. Wysocki <rjw@rjwysocki.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--Documentation/power/runtime_pm.txt4
-rw-r--r--include/linux/pm_runtime.h6
2 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index f32ce5419573..397b81593142 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -468,6 +468,10 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
468 - set the power.irq_safe flag for the device, causing the runtime-PM 468 - set the power.irq_safe flag for the device, causing the runtime-PM
469 callbacks to be invoked with interrupts off 469 callbacks to be invoked with interrupts off
470 470
471 bool pm_runtime_is_irq_safe(struct device *dev);
472 - return true if power.irq_safe flag was set for the device, causing
473 the runtime-PM callbacks to be invoked with interrupts off
474
471 void pm_runtime_mark_last_busy(struct device *dev); 475 void pm_runtime_mark_last_busy(struct device *dev);
472 - set the power.last_busy field to the current time 476 - set the power.last_busy field to the current time
473 477
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index 367f49b9a1c9..44d74f0f182e 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -128,6 +128,11 @@ static inline void pm_runtime_mark_last_busy(struct device *dev)
128 ACCESS_ONCE(dev->power.last_busy) = jiffies; 128 ACCESS_ONCE(dev->power.last_busy) = jiffies;
129} 129}
130 130
131static inline bool pm_runtime_is_irq_safe(struct device *dev)
132{
133 return dev->power.irq_safe;
134}
135
131#else /* !CONFIG_PM_RUNTIME */ 136#else /* !CONFIG_PM_RUNTIME */
132 137
133static inline int __pm_runtime_idle(struct device *dev, int rpmflags) 138static inline int __pm_runtime_idle(struct device *dev, int rpmflags)
@@ -167,6 +172,7 @@ static inline bool pm_runtime_enabled(struct device *dev) { return false; }
167 172
168static inline void pm_runtime_no_callbacks(struct device *dev) {} 173static inline void pm_runtime_no_callbacks(struct device *dev) {}
169static inline void pm_runtime_irq_safe(struct device *dev) {} 174static inline void pm_runtime_irq_safe(struct device *dev) {}
175static inline bool pm_runtime_is_irq_safe(struct device *dev) { return false; }
170 176
171static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; } 177static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; }
172static inline void pm_runtime_mark_last_busy(struct device *dev) {} 178static inline void pm_runtime_mark_last_busy(struct device *dev) {}