Message ID | 1415802748-30530-2-git-send-email-k.kozlowski@samsung.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Wednesday, November 12, 2014 03:32:23 PM Krzysztof Kozlowski wrote: > 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> I'm fine with this one, please feel free to add my ACK if that needs to go through a different tree. > --- > Documentation/power/runtime_pm.txt | 4 ++++ > include/linux/pm_runtime.h | 6 ++++++ > 2 files changed, 10 insertions(+) > > diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt > index 0e5ea26b255a..44fe1d28a163 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: > - set the power.irq_safe flag for the device, causing the runtime-PM > callbacks to be invoked with interrupts off > > + bool pm_runtime_is_irq_safe(struct device *dev); > + - return true if power.irq_safe flag was set for the device, causing > + the runtime-PM callbacks to be invoked with interrupts off > + > void pm_runtime_mark_last_busy(struct device *dev); > - set the power.last_busy field to the current time > > 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) > ACCESS_ONCE(dev->power.last_busy) = jiffies; > } > > +static inline bool pm_runtime_is_irq_safe(struct device *dev) > +{ > + return dev->power.irq_safe; > +} > + > #else /* !CONFIG_PM_RUNTIME */ > > static 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; } > > static inline void pm_runtime_no_callbacks(struct device *dev) {} > static inline void pm_runtime_irq_safe(struct device *dev) {} > +static inline bool pm_runtime_is_irq_safe(struct device *dev) { return false; } > > static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; } > static inline void pm_runtime_mark_last_busy(struct device *dev) {} >
On czw, 2014-11-13 at 02:34 +0100, Rafael J. Wysocki wrote: > On Wednesday, November 12, 2014 03:32:23 PM Krzysztof Kozlowski wrote: > > 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> > > I'm fine with this one, please feel free to add my ACK if that needs to go > through a different tree. Thanks! With your ack I'll push patchset through Russell's patch system. Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt index 0e5ea26b255a..44fe1d28a163 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: - set the power.irq_safe flag for the device, causing the runtime-PM callbacks to be invoked with interrupts off + bool pm_runtime_is_irq_safe(struct device *dev); + - return true if power.irq_safe flag was set for the device, causing + the runtime-PM callbacks to be invoked with interrupts off + void pm_runtime_mark_last_busy(struct device *dev); - set the power.last_busy field to the current time 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) ACCESS_ONCE(dev->power.last_busy) = jiffies; } +static inline bool pm_runtime_is_irq_safe(struct device *dev) +{ + return dev->power.irq_safe; +} + #else /* !CONFIG_PM_RUNTIME */ static 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; } static inline void pm_runtime_no_callbacks(struct device *dev) {} static inline void pm_runtime_irq_safe(struct device *dev) {} +static inline bool pm_runtime_is_irq_safe(struct device *dev) { return false; } static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; } static inline void pm_runtime_mark_last_busy(struct device *dev) {}