[PATCH 6/6] clk: use private clk struct to access clock flags
    Kaustabh Chakraborty 
    kauschluss at disroot.org
       
    Fri Oct 17 17:21:34 CEST 2025
    
    
  
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 <kauschluss at disroot.org>
---
 drivers/clk/clk-uclass.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index 3dbe1ce9441ca513d41be90520ff175c96b4253a..f7709d89a82cc576d6a522c7cdafc4e8fb521db7 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);
 
-- 
2.51.0
    
    
More information about the U-Boot
mailing list