From: Kaustabh Chakraborty Date: Fri, 17 Oct 2025 15:21:34 +0000 (+0530) Subject: clk: use private clk struct to access clock flags X-Git-Tag: v2026.01-rc4~20^2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07b8261d482549351dfd6f9a5e49b7d59e1fc3d9;p=thirdparty%2Fu-boot.git clk: use private clk struct to access clock flags There may be cases where the flags set for a clock is not available. This is usually the case with clocks which have been retrieved using clk_request(). However, clock flags are found in their respective private clock struct, so use that instead. Signed-off-by: Kaustabh Chakraborty Signed-off-by: Minkyu Kang --- diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 3dbe1ce9441..f7709d89a82 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -594,12 +594,13 @@ ulong clk_set_rate(struct clk *clk, ulong rate) if (!clk_valid(clk)) return 0; ops = clk_dev_ops(clk->dev); + clk_get_priv(clk, &clkp); /* Try to find parents which can set rate */ while (!ops->set_rate) { struct clk *parent; - if (!(clk->flags & CLK_SET_RATE_PARENT)) + if (!(clkp->flags & CLK_SET_RATE_PARENT)) return -ENOSYS; parent = clk_get_parent(clk); @@ -608,10 +609,9 @@ ulong clk_set_rate(struct clk *clk, ulong rate) clk = parent; ops = clk_dev_ops(clk->dev); + clk_get_priv(clk, &clkp); } - /* get private clock struct used for cache */ - clk_get_priv(clk, &clkp); /* Clean up cached rates for us and all child clocks */ clk_clean_rate_cache(clkp);