Thread (29 messages) 29 messages, 7 authors, 2014-12-12

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help