35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
From 62bc67ade6e30b4a578f105d8bb18de0ffc45a88 Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
Date: Sat, 2 Apr 2022 14:06:53 +0200
|
|
Subject: [PATCH] clk: Remove redundant clk_core_init_rate_req() call
|
|
|
|
Since all the users of clk_core_round_rate_nolock() will now properly
|
|
initialize, there's no need for it to initialize the request itself.
|
|
|
|
This is even dangerous, as if the clock cannot change its rate by itself
|
|
and has CLK_SET_RATE_PARENT, clk_core_round_rate_nolock() will call
|
|
itself with the parent clock but the client clk_rate_request structure.
|
|
|
|
We will then reinitialize the child request with the parent context
|
|
(parent, boundaries, etc.), which is an issue if the parent ever changes
|
|
its own parent or parent rate.
|
|
|
|
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 | 2 --
|
|
1 file changed, 2 deletions(-)
|
|
|
|
--- a/drivers/clk/clk.c
|
|
+++ b/drivers/clk/clk.c
|
|
@@ -1429,8 +1429,6 @@ static int clk_core_round_rate_nolock(st
|
|
return 0;
|
|
}
|
|
|
|
- clk_core_init_rate_req(core, req, req->rate);
|
|
-
|
|
if (clk_core_can_round(core))
|
|
return clk_core_determine_round_nolock(core, req);
|
|
else if (core->flags & CLK_SET_RATE_PARENT)
|