63 lines
2.0 KiB
Diff
63 lines
2.0 KiB
Diff
From 30e22b06c4ea57dba7ac18bf4ee229eda0705b73 Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
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 <alexander.stein@ew.tq-group.com> # imx8mp
|
|
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> # exynos4210, meson g12b
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
---
|
|
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);
|
|
|