public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* runtime PM: common hooks for static and runtime PM
@ 2010-02-03 23:30 Kevin Hilman
  2010-02-04 15:24 ` Alan Stern
  0 siblings, 1 reply; 22+ messages in thread
From: Kevin Hilman @ 2010-02-03 23:30 UTC (permalink / raw)
  To: linux-pm

Hello,

I'm implementing runtime PM for the TI OMAP SoCs by overriding the
platform_bus hooks.  All is working well for runtime PM, but it's 
brought up a couple snags for static PM.

Most of our drivers don't really need to distinguish between runtime
PM and static PM as we can hit the same power states when idle as we
can in suspend.  Before switching to runtime PM we've been using the
clock framework to do both runtime PM and static PM.  The driver would
disable its clocks & HW when idle and when going into suspend,
typically using a common 'disable' function.

In converting a test driver to runtime PM, I just converted this
common disable function from a clock disable to a
pm_runtime_put_sync() and the common enable function to do a
pm_runtime_get_sync().  This all worked well for runtime PM, resulting
in my platform_pm_runtime_* hooks being called where I can then
disable/re-enable the clocks/HW etc.  So far so good.

However, I'm not able to use the common function in the static suspend
path because dpm_prepare() does a pm_runtime_get_no_resume() which
prevents any runtime PM transitions during suspend.

I understand the motivation for this is probably to prevent runtime PM
transitions during static suspend, and that makes sense.  However, I'm
wondering if there's some other way to handle my problem without
having to have the driver have different paths for static and runtime
PM.

My current hack is to add an "extra" pm_runtime_put_sync() to the
driver's static suspend hook (and 'get' in the resume hook) to
essentially cancel out the 'get' held by dpm_prepare(), but I'm pretty
sure this is not an acceptable long-term solution.

Any other ideas?  Or maybe I've misunderstood something more basic.
Any pointers would be appreciated.

Thanks,

Kevin

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2010-03-18 14:13 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-03 23:30 runtime PM: common hooks for static and runtime PM Kevin Hilman
2010-02-04 15:24 ` Alan Stern
2010-02-05 10:43   ` Mark Brown
2010-02-05 15:41     ` Alan Stern
2010-02-05 16:11       ` Mark Brown
2010-02-05 21:40         ` Alan Stern
2010-02-05 22:44           ` Mark Brown
2010-02-06  2:57             ` Alan Stern
2010-02-06 15:46               ` Mark Brown
2010-02-06 16:18                 ` Alan Stern
2010-02-08 14:54                   ` Alan Stern
2010-02-24 18:14                     ` Mark Brown
2010-02-24 18:56                       ` Alan Stern
2010-02-24 22:32                         ` Mark Brown
2010-02-25 15:26                         ` Kevin Hilman
2010-03-16 21:31   ` Kevin Hilman
2010-03-17 14:47     ` Alan Stern
2010-03-17 16:42       ` Kevin Hilman
2010-03-17 17:10         ` Alan Stern
2010-03-17 21:46           ` Rafael J. Wysocki
2010-03-17 22:32             ` Kevin Hilman
2010-03-18 14:13               ` Alan Stern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox