Re: [RFC PATCH] clk: ti: set CLK_SET_RATE_NO_REPARENT for ti,mux-clock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Paul Walmsley (2014-06-17 01:15:09)
> On Tue, 17 Jun 2014, Tomi Valkeinen wrote:
> 
> > When setting the rate of a clock, by default the clock framework will
> > change the parent of the clock to the most suitable one in
> > __clk_mux_determine_rate() (most suitable by looking at the clock rate).
> 
> That is just insane.

The patch description is insane. The framework has nothing to do with
this dynamic re-parenting behavior and certainly the framework does not
force this behavior on clock providers. This behavior is specific to
users of __clk_mux_determine_rate. Those are:

1) drivers/clk/clk-mux.c
2) drivers/clk/qcom/mmcc-msm8960.c
3) drivers/clk/samsung/clk-s3c2410-dclk.c
4) drivers/clk/ti/mux.c

If dynamic re-parenting by default doesn't work for your platform then
you have two choices:

1) use the CLK_SET_RATE_NO_REPARENT flag (as this patch does)
2) don't use the basic divider type and write your own

If you choose #2 then all you have to do when implementing
.determine_rate is ignore the best_parent_rate argument.

Finally when the .determine_rate callback was introduced (allowing
dynamic re-parenting from a call to clk_set_rate) the
CLK_SET_RATE_NO_REPARENT flag was applied to all affected users to
maintain prior behavior and prevent regressions.

I have some local patches to improve documentation around these areas
for 3.17.

Regards,
Mike

> 
> > This is a rather dangerous default, and causes problems on AM43x when
> > using display and ethernet. There are multiple ways to select the clock
> > muxes on AM43x, and some of those clock paths have the same source
> > clocks for display and ethernet. When changing the clock rate for the
> > display subsystem, the clock framework decides to change the display mux
> > from the dedicated display PLL to a shared PLL which is used by the
> > ethernet, and then changes the rate of the shared PLL, breaking the
> > ethernet.
> > 
> > As I don't think there ever is a case where we want the clock framework
> > to automatically change the parent clock of a clock mux, this patch sets
> > the CLK_SET_RATE_NO_REPARENT for all ti,mux-clocks.
> > 
> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
> 
> Reviewed-by: Paul Walmsley <paul@xxxxxxxxx>
> 
> 
> - Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux