clk: highbank: convert from round_rate() to determine_rate()

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>
This commit is contained in:
Brian Masney 2025-08-11 11:18:09 -04:00
parent 2ffdd7fbf7
commit 29d6d9e529
1 changed files with 15 additions and 11 deletions

View File

@ -130,15 +130,17 @@ static void clk_pll_calc(unsigned long rate, unsigned long ref_freq,
*pdivf = divf; *pdivf = divf;
} }
static long clk_pll_round_rate(struct clk_hw *hwclk, unsigned long rate, static int clk_pll_determine_rate(struct clk_hw *hw,
unsigned long *parent_rate) struct clk_rate_request *req)
{ {
u32 divq, divf; 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, 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, .enable = clk_pll_enable,
.disable = clk_pll_disable, .disable = clk_pll_disable,
.recalc_rate = clk_pll_recalc_rate, .recalc_rate = clk_pll_recalc_rate,
.round_rate = clk_pll_round_rate, .determine_rate = clk_pll_determine_rate,
.set_rate = clk_pll_set_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; return parent_rate / div;
} }
static long clk_periclk_round_rate(struct clk_hw *hwclk, unsigned long rate, static int clk_periclk_determine_rate(struct clk_hw *hw,
unsigned long *parent_rate) struct clk_rate_request *req)
{ {
u32 div; u32 div;
div = *parent_rate / rate; div = req->best_parent_rate / req->rate;
div++; div++;
div &= ~0x1; 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, 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 = { static const struct clk_ops periclk_ops = {
.recalc_rate = clk_periclk_recalc_rate, .recalc_rate = clk_periclk_recalc_rate,
.round_rate = clk_periclk_round_rate, .determine_rate = clk_periclk_determine_rate,
.set_rate = clk_periclk_set_rate, .set_rate = clk_periclk_set_rate,
}; };