From 30e22b06c4ea57dba7ac18bf4ee229eda0705b73 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Sat, 2 Apr 2022 13:45:05 +0200 Subject: [PATCH] clk: Add our request boundaries in clk_core_init_rate_req The expectation is that a new clk_rate_request is initialized through a call to clk_core_init_rate_req(). However, at the moment it only fills the parent rate and clk_hw pointer, but omits the other fields such as the clock rate boundaries. Some users of that function will update them after calling it, but most don't. As we are passed the clk_core pointer, we have access to those boundaries in clk_core_init_rate_req() however, so let's just fill it there and remove it from the few callers that do it right. Tested-by: Alexander Stein # imx8mp Tested-by: Marek Szyprowski # exynos4210, meson g12b Signed-off-by: Maxime Ripard --- drivers/clk/clk.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1380,6 +1380,8 @@ static void clk_core_init_rate_req(struc if (WARN_ON(!core || !req)) return; + clk_core_get_boundaries(core, &req->min_rate, &req->max_rate); + parent = core->parent; if (parent) { req->best_parent_hw = parent->hw; @@ -1454,7 +1456,6 @@ unsigned long clk_hw_round_rate(struct c int ret; struct clk_rate_request req; - clk_core_get_boundaries(hw->core, &req.min_rate, &req.max_rate); req.rate = rate; ret = clk_core_round_rate_nolock(hw->core, &req); @@ -1487,7 +1488,6 @@ long clk_round_rate(struct clk *clk, uns if (clk->exclusive_count) clk_core_rate_unprotect(clk->core); - clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate); req.rate = rate; ret = clk_core_round_rate_nolock(clk->core, &req); @@ -1994,8 +1994,6 @@ static struct clk_core *clk_calc_new_rat struct clk_rate_request req; req.rate = rate; - req.min_rate = min_rate; - req.max_rate = max_rate; clk_core_init_rate_req(core, &req);