[PATCH/RFC 3/4] of/clk: Register clocks suitable for Runtime PM with the PM core
From: Ulf Hansson <hidden>
Date: 2014-05-06 07:58:17
Also in:
linux-devicetree, linux-omap, linux-pm, linux-sh, lkml
On 2 May 2014 16:58, Geert Uytterhoeven [off-list ref] wrote:
Hi Ulf, Tomasz, On Fri, May 2, 2014 at 10:13 AM, Ulf Hansson [off-list ref] wrote:quoted
quoted
quoted
quoted
+static int of_clk_register(struct device *dev, struct clk *clk) +{ + int error; + + if (!dev->pm_domain) { + error = pm_clk_create(dev); + if (error) + return error; + + dev->pm_domain = &of_clk_pm_domain;I am concerned about how this will work in conjunction with the generic power domain. A device can't reside in more than one pm_domain; thus I think it would be better to always use the generic power domain and not have a specific one for clocks. Typically the genpd should invoke pm_clk_resume|suspend from it's runtime PM callbacks.I'm not sure about this. A typical use case would be to gate clocks ASAP and then wait until device is idle long enough to consider turning off the power domain worthwhile. Also sometimes we may want to gate the clocks, but prevent power domain from being powered off to retain hardware state (e.g. because there is no way to read it and restore later).So, in principle you prefer to have driver's handle clock gating to save power from their runtime PM callbacks, instead of from the power domain, right? Just to clarify, that's my view as well.If there's both a gate clock and a power domain, and the driver's Runtime PM callbacks handle clock gating, who's handling the power domain?
This is my view, not sure everybody agrees :-) 1. If you have a hardware power domain you need to implement a pm_domain (preferably use the generic power domain). 2. If you don't have a hardware power domain, but still cares about having a centralized solution for dev_pm_qos - you may use the generic power domain, since it supports this. 3. If none of the above, you don't need a pm_domain at all. Kind regards Ulf Hansson
Gr{oetje,eeting}s,
Geert (still trying to fit all pieces of the
puzzle together)
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds