On 2/16/22 18:52, Marek Vasut wrote: > On 2/16/22 13:06, Vaittinen, Matti wrote: > > Hi, > > [...] > >>> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c >>> index 8de6a22498e70..1e1686fa76e01 100644 >>> --- a/drivers/clk/clk.c >>> +++ b/drivers/clk/clk.c >>> @@ -3872,6 +3872,45 @@ static void clk_core_free_parent_map(struct >>> clk_core *core) >>> kfree(core->parents); >>> } >>> +static void >>> +__clk_register_critical_clock(struct device_node *np, struct >>> clk_core *core, >>> + struct clk_hw *hw) >>> +{ >>> + struct of_phandle_args clkspec; >>> + u32 clksize, clktotal; >>> + int ret, i, index; >>> + >>> + if (!np) >>> + return; >>> + >>> + if (!core->ops->match_clkspec) >>> + return; >>> + >>> + if (of_property_read_u32(np, "#clock-cells", &clksize)) >>> + return; >>> + >>> + /* Clock node with #clock-cells = <0> uses critical-clocks; */ >>> + if (clksize == 0) { >>> + if (of_property_read_bool(np, "critical-clocks") && >>> + !core->ops->match_clkspec(hw, &clkspec)) >> >> I think this is never true as there is >> if (!core->ops->match_clkspec) >> return; >> >> above. > > If the driver implements match_clkspec() callback, then the callback > gets used here to determine whether the clock match this clkspec. /me feels _utterly_ stupid. Of course :) I somehow completely misread the code. Sorry for the noise! >> Anyways, seeing you added a dummy bd71837_match_clkspec in a follow-up >> patch for BD71837 - which has only single clock - I wonder if there is a >> way to omit that dummy callback in controllers which really provide only >> one clock? > > Yes, I think we can omit the match_clkspec call for clock controllers > with clock-cells == 0 altogether. That would mean you could probably drop the bd718x7 driver patch, right? Best Regards -- Matti -- The Linux Kernel guy at ROHM Semiconductors Matti Vaittinen, Linux device drivers ROHM Semiconductors, Finland SWDC Kiviharjunlenkki 1E 90220 OULU FINLAND ~~ this year is the year of a signature writers block ~~