]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: highbank: convert from round_rate() to determine_rate()
authorBrian Masney <bmasney@redhat.com>
Mon, 11 Aug 2025 15:18:09 +0000 (11:18 -0400)
committerBrian Masney <bmasney@redhat.com>
Mon, 8 Sep 2025 13:41:26 +0000 (09:41 -0400)
The round_rate() clk ops is deprecated, so migrate this driver from
round_rate() to determine_rate() using the Coccinelle semantic patch
on the cover letter of this series.

Signed-off-by: Brian Masney <bmasney@redhat.com>
drivers/clk/clk-highbank.c

index 6e68a41a70a1b7160359c98138de76fb30535e68..cc583934ecf2481f481f470a185afb1fc6064760 100644 (file)
@@ -130,15 +130,17 @@ static void clk_pll_calc(unsigned long rate, unsigned long ref_freq,
        *pdivf = divf;
 }
 
-static long clk_pll_round_rate(struct clk_hw *hwclk, unsigned long rate,
-                              unsigned long *parent_rate)
+static int clk_pll_determine_rate(struct clk_hw *hw,
+                                 struct clk_rate_request *req)
 {
        u32 divq, divf;
-       unsigned long ref_freq = *parent_rate;
+       unsigned long ref_freq = req->best_parent_rate;
 
-       clk_pll_calc(rate, ref_freq, &divq, &divf);
+       clk_pll_calc(req->rate, ref_freq, &divq, &divf);
 
-       return (ref_freq * (divf + 1)) / (1 << divq);
+       req->rate = (ref_freq * (divf + 1)) / (1 << divq);
+
+       return 0;
 }
 
 static int clk_pll_set_rate(struct clk_hw *hwclk, unsigned long rate,
@@ -185,7 +187,7 @@ static const struct clk_ops clk_pll_ops = {
        .enable = clk_pll_enable,
        .disable = clk_pll_disable,
        .recalc_rate = clk_pll_recalc_rate,
-       .round_rate = clk_pll_round_rate,
+       .determine_rate = clk_pll_determine_rate,
        .set_rate = clk_pll_set_rate,
 };
 
@@ -227,16 +229,18 @@ static unsigned long clk_periclk_recalc_rate(struct clk_hw *hwclk,
        return parent_rate / div;
 }
 
-static long clk_periclk_round_rate(struct clk_hw *hwclk, unsigned long rate,
-                                  unsigned long *parent_rate)
+static int clk_periclk_determine_rate(struct clk_hw *hw,
+                                     struct clk_rate_request *req)
 {
        u32 div;
 
-       div = *parent_rate / rate;
+       div = req->best_parent_rate / req->rate;
        div++;
        div &= ~0x1;
 
-       return *parent_rate / div;
+       req->rate = req->best_parent_rate / div;
+
+       return 0;
 }
 
 static int clk_periclk_set_rate(struct clk_hw *hwclk, unsigned long rate,
@@ -255,7 +259,7 @@ static int clk_periclk_set_rate(struct clk_hw *hwclk, unsigned long rate,
 
 static const struct clk_ops periclk_ops = {
        .recalc_rate = clk_periclk_recalc_rate,
-       .round_rate = clk_periclk_round_rate,
+       .determine_rate = clk_periclk_determine_rate,
        .set_rate = clk_periclk_set_rate,
 };