[PATCH/RFC 3/4] of/clk: Register clocks suitable for Runtime PM with the PM core
From: geert@linux-m68k.org (Geert Uytterhoeven)
Date: 2014-05-01 13:41:14
Also in:
linux-devicetree, linux-omap, linux-pm, linux-sh, lkml
Hi Grant, On Thu, May 1, 2014 at 10:03 AM, Grant Likely [off-list ref] wrote:
On Wed, 30 Apr 2014 23:54:37 +0200, Geert Uytterhoeven [off-list ref] wrote:quoted
On Tue, Apr 29, 2014 at 3:16 PM, Grant Likely [off-list ref] wrote:quoted
I also don't like that it tries to set up every clock, but there is no guarantee that the driver will even use it. I would rather see this behaviour linked into the function that obtains the clock at driver .probe() time. That way it can handle deferred probe correctly and it only sets up clocks that are actually used by the driver.Not every clock. Only the clocks that are advertised by the clock driver as being suitable for runtime_pm management. These are typically module clocks, that must be enabled for the module to work. The driver doesn't always want to handle these explicitly.Help me out here becasue I don't understand how that works with this patch set. From my, admittedly naive, reading it looks like the setup is being done at device creation time, but if the driver (or module) gets to declare which clocks need to be enabled in order to work, then that information is not available at device creation time.
Setup is indeed done at registration time. Note the check calling
clk_may_runtime_pm(), which is introduced in "[PATCH/RFC 1/4] clk: Add
CLK_RUNTIME_PM and clk_may_runtime_pm()".
Clock drivers are initialized much earlier, so they can set the CLK_RUNTIME_PM
flag for suitable clocks before platform devices are created from DT, cfr. the
example for shmobile MSTP clocks in "[PATCH/RFC 4/4] clk: shmobile: mstp:
Set CLK_RUNTIME_PM flag".
I hope this makes it clear.
Gr{oetje,eeting}s,
Geert
--
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