Messages in this thread | | | Date | Mon, 2 Mar 2015 15:38:12 +0530 | Subject | Re: [PATCH 3/4] clk: Provide always-on clock support | From | Jassi Brar <> |
| |
On Mon, Mar 2, 2015 at 2:06 PM, Lee Jones <lee.jones@linaro.org> wrote: > On Sat, 28 Feb 2015, Jassi Brar wrote: > >> On 28 February 2015 at 02:44, Lee Jones <lee.jones@linaro.org> wrote: >> > Lots of platforms contain clocks which if turned off would prove fatal. >> > The only way to recover from these catastrophic failures is to restart >> > the board(s). Now, when a clock is registered with the framework it is >> > compared against a list of provided always-on clock names which must be >> > kept ungated. If it matches, we enable the existing CLK_IGNORE_UNUSED >> > flag, which will prevent the common clk framework from attempting to >> > gate it during the clk_disable_unused() procedure. >> > >> If a clock is critical on a certain board, it could be got+enabled >> during early boot so there is always a user. > > I tried this. There was push-back from the DT maintainers. > > http://lists.infradead.org/pipermail/linux-arm-kernel/2015-February/324417.html > Thanks, I wasn't aware of the history.
>> To be able to do that from DT, maybe add a new, say, CLK_ALWAYS_ON >> flag could be made to initialize the clock with one phantom user >> already. Or just reuse the CLK_IGNORE_UNUSED? > > How is that different to what this set is doing? > The phantom user - that's there but none can see it.
How about?
+ of_property_for_each_string(np, "clock-always-on", prop, clkname) { + clk = __clk_lookup(clkname); + if (!clk) + continue; + + clk->core->enable_count = 1; + clk->core->prepare_count = 1; + }
-jassi
| |