Thread (8 messages) 8 messages, 4 authors, 2021-02-11

Re: [RFC v1] clk: core: support clocks that need to be enabled during re-parent

From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: 2021-01-23 18:43:50
Also in: linux-arm-kernel, linux-clk, lkml

Hi Stephen,

On Tue, Jun 25, 2019 at 08:52:45PM -0700, Stephen Boyd wrote:
Quoting Weiyi Lu (2019-06-25 18:05:22)
quoted
On Tue, 2019-06-25 at 15:14 -0700, Stephen Boyd wrote:
quoted
Quoting Weiyi Lu (2019-06-09 20:44:53)
quoted
When using property assigned-clock-parents to assign parent clocks,
core clocks might still be disabled during re-parent.
Add flag 'CLK_OPS_CORE_ENABLE' for those clocks must be enabled
during re-parent.

Signed-off-by: Weiyi Lu <redacted>
Can you further describe the scenario where this is a problem? Is it
some sort of clk that is enabled by default out of the bootloader and is
then configured to have an 'assigned-clock-parents' property to change
the parent, but that clk needs to be "enabled" so that the framework
turns on the parents for the parent switch?
When driver is built as module(.ko) and install at runtime after the
whole initialization stage. Clk might already be turned off before
configuring by assigned-clock-parents. For such clock design that need
to have clock enabled during re-parent, the configuration of
assigned-clock-parents might be failed. That's the problem we have now.
Great. Please put this sort of information in the commit text.
quoted
Do you have any suggestion for such usage of clocks? Many thanks.
Ok, and in this case somehow CLK_OPS_PARENT_ENABLE flag doesn't work? Is
that because the clk itself doesn't do anything unless it's enabled?  I
seem to recall that we usually work around this by caching the state of
the clk parents or frequencies and then when the clk prepare or enable
op is called we actually write the hardware to change the state. There
are some qcom clks like this and we basically just use the hardware
itself to cache the state of the clk while it hasn't actually changed to
be at that rate, because the clk is not enabled yet.
I'm trying to move the fix to the clock driver itself. Do you have any
pointer to such a clock that I can use as an example ?
The main concern is that we're having to turn on clks to make things
work, when it would be best to not turn on clks just so that register
writes actually make a difference to what the hardware does.
I agree, it's best not to turn the clock on if we can avoid it.

-- 
Regards,

Laurent Pinchart

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help