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