[PATCH] clk: Fix clk_set_parent() regression
Miquel Raynal
miquel.raynal at bootlin.com
Tue Apr 22 09:47:12 CEST 2025
On 19/04/2025 at 09:07:16 GMT, Jonas Karlman <jonas at kwiboo.se> wrote:
> The commit ac30d90f3367 ("clk: Ensure the parent clocks are enabled
> while reparenting") add a call to clk_enable() for the parent clock.
>
> For clock drivers that do not implement the enable() ops, like most
> Rockchip clock drivers, this now cause the set_parent() ops to never
> be called when CLK_CCF=n (default for Rockchip).
>
> clk_enable() typically return -NOSYS when the enable() ops is not
> implemented by the clock driver, with CLK_CCF=y clk_enable() instead
> return 0 when the enable() ops is unimplemented.
I am really not a big fan of this logic to return low-level information
in high-level helpers. I am constantly disagreeing with this approach
because this is exactly the kind of breakage it leads to.
> Change to ignore -NOSYS from the newly introduced clk_enable() call to
> fix this regression and restore the old behavior of set_parent() ops
> being called regardless of if enable() ops is implemented or not.
>
> Fixes: ac30d90f3367 ("clk: Ensure the parent clocks are enabled while reparenting")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
Thanks for the fix,
Acked-by: Miquel Raynal <miquel.raynal at bootlin.com>
Miquèl
More information about the U-Boot
mailing list