Thread (48 messages) 48 messages, 6 authors, 2026-03-03

Re: [PATCH 02/11] clk: scmi: Use new determine_rate clock operation

From: Cristian Marussi <cristian.marussi@arm.com>
Date: 2026-03-03 12:49:23
Also in: arm-scmi, linux-clk, linux-renesas-soc, lkml

On Mon, Mar 02, 2026 at 01:39:51PM +0100, Geert Uytterhoeven wrote:
Hi Cristian,

On Fri, 27 Feb 2026 at 16:33, Cristian Marussi [off-list ref] wrote:
quoted
Use the Clock protocol layer determine_rate logic to calculate the closest
rate that can be supported by a specific clock.

No functional change.

Cc: Brian Masney <bmasney@redhat.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: linux-clk@vger.kernel.org
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
quoted
--- a/drivers/clk/clk-scmi.c
+++ b/drivers/clk/clk-scmi.c
@@ -57,35 +56,17 @@ static unsigned long scmi_clk_recalc_rate(struct clk_hw *hw,
 static int scmi_clk_determine_rate(struct clk_hw *hw,
                                   struct clk_rate_request *req)
 {
-       u64 fmin, fmax, ftmp;
+       int ret;
        struct scmi_clk *clk = to_scmi_clk(hw);

        /*
-        * We can't figure out what rate it will be, so just return the
-        * rate back to the caller. scmi_clk_recalc_rate() will be called
-        * after the rate is set and we'll know what rate the clock is
+        * If we could not get a better rate scmi_clk_recalc_rate() will be
+        * called after the rate is set and we'll know what rate the clock is
         * running at then.
         */
-       if (clk->info->rate_discrete)
-               return 0;
-
-       fmin = clk->info->range.min_rate;
-       fmax = clk->info->range.max_rate;
-       if (req->rate <= fmin) {
-               req->rate = fmin;
-
-               return 0;
-       } else if (req->rate >= fmax) {
-               req->rate = fmax;
-
-               return 0;
-       }
-
-       ftmp = req->rate - fmin;
-       ftmp += clk->info->range.step_size - 1; /* to round up */
-       do_div(ftmp, clk->info->range.step_size);
Oh, so the truncation bug exists in the original code, too.
Yep...as said I will fix the original code and then move the fixed
code.

Thanks,
Cristian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help