Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: sifive: sifive-prci: 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.

Note that the changes to the three header files were done by hand.

Reviewed-by: Samuel Holland <samuel.holland@sifive.com>
Signed-off-by: Brian Masney <bmasney@redhat.com>

+10 -9
+1 -1
drivers/clk/sifive/fu540-prci.h
··· 49 49 50 50 static const struct clk_ops sifive_fu540_prci_wrpll_clk_ops = { 51 51 .set_rate = sifive_prci_wrpll_set_rate, 52 - .round_rate = sifive_prci_wrpll_round_rate, 52 + .determine_rate = sifive_prci_wrpll_determine_rate, 53 53 .recalc_rate = sifive_prci_wrpll_recalc_rate, 54 54 .enable = sifive_prci_clock_enable, 55 55 .disable = sifive_prci_clock_disable,
+1 -1
drivers/clk/sifive/fu740-prci.h
··· 55 55 56 56 static const struct clk_ops sifive_fu740_prci_wrpll_clk_ops = { 57 57 .set_rate = sifive_prci_wrpll_set_rate, 58 - .round_rate = sifive_prci_wrpll_round_rate, 58 + .determine_rate = sifive_prci_wrpll_determine_rate, 59 59 .recalc_rate = sifive_prci_wrpll_recalc_rate, 60 60 .enable = sifive_prci_clock_enable, 61 61 .disable = sifive_prci_clock_disable,
+6 -5
drivers/clk/sifive/sifive-prci.c
··· 183 183 return wrpll_calc_output_rate(&pwd->c, parent_rate); 184 184 } 185 185 186 - long sifive_prci_wrpll_round_rate(struct clk_hw *hw, 187 - unsigned long rate, 188 - unsigned long *parent_rate) 186 + int sifive_prci_wrpll_determine_rate(struct clk_hw *hw, 187 + struct clk_rate_request *req) 189 188 { 190 189 struct __prci_clock *pc = clk_hw_to_prci_clock(hw); 191 190 struct __prci_wrpll_data *pwd = pc->pwd; ··· 192 193 193 194 memcpy(&c, &pwd->c, sizeof(c)); 194 195 195 - wrpll_configure_for_rate(&c, rate, *parent_rate); 196 + wrpll_configure_for_rate(&c, req->rate, req->best_parent_rate); 196 197 197 - return wrpll_calc_output_rate(&c, *parent_rate); 198 + req->rate = wrpll_calc_output_rate(&c, req->best_parent_rate); 199 + 200 + return 0; 198 201 } 199 202 200 203 int sifive_prci_wrpll_set_rate(struct clk_hw *hw,
+2 -2
drivers/clk/sifive/sifive-prci.h
··· 291 291 void sifive_prci_hfpclkpllsel_use_hfpclkpll(struct __prci_data *pd); 292 292 293 293 /* Linux clock framework integration */ 294 - long sifive_prci_wrpll_round_rate(struct clk_hw *hw, unsigned long rate, 295 - unsigned long *parent_rate); 294 + int sifive_prci_wrpll_determine_rate(struct clk_hw *hw, 295 + struct clk_rate_request *req); 296 296 int sifive_prci_wrpll_set_rate(struct clk_hw *hw, unsigned long rate, 297 297 unsigned long parent_rate); 298 298 int sifive_clk_is_enabled(struct clk_hw *hw);