Thread (1 message) 1 message, 1 author, 2014-10-03

Re: [linux-sunxi] Re: [PATCH v3] dt-bindings: Add a clocks property to the simple-framebuffer bindin

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2014-10-03 21:26:33
Also in: linux-arm-kernel, linux-devicetree

On Fri, Oct 3, 2014 at 10:55 PM, jonsmirl@gmail.com [off-list ref] wrote:
On Thu, Oct 2, 2014 at 9:46 AM, Geert Uytterhoeven [off-list ref] wrote:
quoted
On Thu, Oct 2, 2014 at 3:34 PM, jonsmirl@gmail.com [off-list ref] wrote:
quoted
Does the clock and regulator cleanup happen before drivers can load
off from initrd? I didn't think it did but I might be wrong.
Yes

drivers/base/power/domain.c:late_initcall(genpd_poweroff_unused);
drivers/clk/clk.c:late_initcall_sync(clk_disable_unused);
drivers/regulator/core.c:late_initcall_sync(regulator_init_complete);
What do you think about putting these calls onto an ioctl somewhere
and then eliminating the late_initcall(..)? A tiny user space app
could then hit that ioctl after all of the loadable device drivers are
loaded. Add the command to make this ioctl call to busybox or udev.
After all, it is not fatal if these calls aren't made, all they do is
save power. Add a link in rc.d or somewhere similar to run this app at
the appropriate time.

Switching these over to an ioctl allows a window to be opened for
device specific driver loading before the clock/regulator clean up
happens.

Now all of this mess of protecting clocks and regulator disappears.
Instead get the device specific drivers written and loaded, then run
the cleanup app which hits the ioctl(). All of the correct
clock/regulators will be claimed and then this clean code will do the
right thing.

From my perspective it appears that this cleanup is being done too
early which then triggers a need to protect things from cleanup.
Not doing the cleanup doesn't help.

If someone else calls clk_disable() on a clock which shares a parent
with the clock you're silently using, that clock will still be disabled.
This can happen at any time.

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