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