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

clk: nuvoton: ma35d1-pll: 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>

+18 -10
+18 -10
drivers/clk/nuvoton/clk-ma35d1-pll.c
··· 244 244 return 0; 245 245 } 246 246 247 - static long ma35d1_clk_pll_round_rate(struct clk_hw *hw, unsigned long rate, 248 - unsigned long *parent_rate) 247 + static int ma35d1_clk_pll_determine_rate(struct clk_hw *hw, 248 + struct clk_rate_request *req) 249 249 { 250 250 struct ma35d1_clk_pll *pll = to_ma35d1_clk_pll(hw); 251 251 u32 reg_ctl[3] = { 0 }; 252 252 unsigned long pll_freq; 253 253 long ret; 254 254 255 - if (*parent_rate < PLL_FREF_MIN_FREQ || *parent_rate > PLL_FREF_MAX_FREQ) 255 + if (req->best_parent_rate < PLL_FREF_MIN_FREQ || req->best_parent_rate > PLL_FREF_MAX_FREQ) 256 256 return -EINVAL; 257 257 258 - ret = ma35d1_pll_find_closest(pll, rate, *parent_rate, reg_ctl, &pll_freq); 258 + ret = ma35d1_pll_find_closest(pll, req->rate, req->best_parent_rate, 259 + reg_ctl, &pll_freq); 259 260 if (ret < 0) 260 261 return ret; 261 262 262 263 switch (pll->id) { 263 264 case CAPLL: 264 265 reg_ctl[0] = readl_relaxed(pll->ctl0_base); 265 - pll_freq = ma35d1_calc_smic_pll_freq(reg_ctl[0], *parent_rate); 266 - return pll_freq; 266 + pll_freq = ma35d1_calc_smic_pll_freq(reg_ctl[0], req->best_parent_rate); 267 + req->rate = pll_freq; 268 + 269 + return 0; 267 270 case DDRPLL: 268 271 case APLL: 269 272 case EPLL: 270 273 case VPLL: 271 274 reg_ctl[0] = readl_relaxed(pll->ctl0_base); 272 275 reg_ctl[1] = readl_relaxed(pll->ctl1_base); 273 - pll_freq = ma35d1_calc_pll_freq(pll->mode, reg_ctl, *parent_rate); 274 - return pll_freq; 276 + pll_freq = ma35d1_calc_pll_freq(pll->mode, reg_ctl, req->best_parent_rate); 277 + req->rate = pll_freq; 278 + 279 + return 0; 275 280 } 281 + 282 + req->rate = 0; 283 + 276 284 return 0; 277 285 } 278 286 ··· 319 311 .unprepare = ma35d1_clk_pll_unprepare, 320 312 .set_rate = ma35d1_clk_pll_set_rate, 321 313 .recalc_rate = ma35d1_clk_pll_recalc_rate, 322 - .round_rate = ma35d1_clk_pll_round_rate, 314 + .determine_rate = ma35d1_clk_pll_determine_rate, 323 315 }; 324 316 325 317 static const struct clk_ops ma35d1_clk_fixed_pll_ops = { 326 318 .recalc_rate = ma35d1_clk_pll_recalc_rate, 327 - .round_rate = ma35d1_clk_pll_round_rate, 319 + .determine_rate = ma35d1_clk_pll_determine_rate, 328 320 }; 329 321 330 322 struct clk_hw *ma35d1_reg_clk_pll(struct device *dev, u32 id, u8 u8mode, const char *name,