Thread (10 messages) 10 messages, 4 authors, 2015-02-01

Re: [PATCH v4 5/5] drivers: bus: Add Simple Power-Managed Bus Driver

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2015-02-01 09:37:04
Also in: linux-arm-kernel, linux-pm, linux-sh, lkml

Hi Ulf,

On Fri, Jan 30, 2015 at 10:34 AM, Ulf Hansson [off-list ref] wrote:
On 26 January 2015 at 17:16, Geert Uytterhoeven [off-list ref] wrote:
quoted
Add a driver for transparent busses that don't need a real driver, but
where the bus controller is part of a PM domain, or under the control of
a functional clock.  Typically, the bus controller's PM domain and/or
clock must be enabled for child devices connected to the bus (either
on-SoC or externally) to function.

Hence the sole purpose of this driver is to enable its clock and PM
domain (if exist(s)), which are specified in the DT and managed from
platform and PM domain code, and to probe for child devices.

Due to the child-parent relationship with devices connected to the bus,
PM domain and clock state transitions are handled in the correct order.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Ulrich Hecht <redacted>
quoted
--- /dev/null
+++ b/drivers/bus/simple-pm-bus.c
quoted
+static int simple_pm_bus_probe(struct platform_device *pdev)
+{
+       struct device_node *np = pdev->dev.of_node;
+
+       dev_dbg(&pdev->dev, "%s\n", __func__);
+
+       pm_runtime_enable(&pdev->dev);
+
+       if (np)
+               of_platform_populate(np, NULL, NULL, &pdev->dev);
+
I am not sure my comments is valid in this initial step. Yet, you
state in the DT documentation, that this driver supports clocks and PM
domains.

How you are going add that support it quite interesting. :-) I also
The clock can be controlled through e.g. pm_clk domain (pm_clk_notifier
and pm_clk_{suspend,resume}()) or genpd (GENPD_FLAG_PM_CLK,
which you have added yourself ;-)
especially interested how the interaction (child to parents) through
runtime PM will look like.
When a child is to be runtime-resumed, the core make sure the parent is
runtime-resumed. When all children have been runtime-suspended, the parent
is runtime-suspended. This is already working. This patch series is the
only missing piece: without a driver that calls pm_runtime_enable(), the
parent is not runtime-managed.
Overall, I like the idea in patchset, but I would like to understand a
bit more around the above.
Thanks!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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