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

clk: mmp: Convert to clk_hw based provider APIs

We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.

Cc: Chao Xie <chao.xie@marvell.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

authored by

Stephen Boyd and committed by
Michael Turquette
aef28cb6 2f508a95

+17 -21
+1 -2
drivers/clk/mmp/clk-gate.c
··· 27 27 static int mmp_clk_gate_enable(struct clk_hw *hw) 28 28 { 29 29 struct mmp_clk_gate *gate = to_clk_mmp_gate(hw); 30 - struct clk *clk = hw->clk; 31 30 unsigned long flags = 0; 32 31 unsigned long rate; 33 32 u32 tmp; ··· 43 44 spin_unlock_irqrestore(gate->lock, flags); 44 45 45 46 if (gate->flags & MMP_CLK_GATE_NEED_DELAY) { 46 - rate = __clk_get_rate(clk); 47 + rate = clk_hw_get_rate(hw); 47 48 /* Need delay 2 cycles. */ 48 49 udelay(2000000/rate); 49 50 }
+16 -19
drivers/clk/mmp/clk-mix.c
··· 113 113 { 114 114 int i; 115 115 struct mmp_clk_mix_clk_table *item; 116 - struct clk *parent, *clk; 116 + struct clk_hw *parent, *hw; 117 117 unsigned long parent_rate; 118 118 119 - clk = mix->hw.clk; 119 + hw = &mix->hw; 120 120 121 121 for (i = 0; i < table_size; i++) { 122 122 item = &table[i]; 123 - parent = clk_get_parent_by_index(clk, item->parent_index); 124 - parent_rate = __clk_get_rate(parent); 123 + parent = clk_hw_get_parent_by_index(hw, item->parent_index); 124 + parent_rate = clk_hw_get_rate(parent); 125 125 if (parent_rate % item->rate) { 126 126 item->valid = 0; 127 127 } else { ··· 181 181 182 182 if (timeout == 0) { 183 183 pr_err("%s:%s cannot do frequency change\n", 184 - __func__, __clk_get_name(mix->hw.clk)); 184 + __func__, clk_hw_get_name(&mix->hw)); 185 185 ret = -EBUSY; 186 186 goto error; 187 187 } ··· 206 206 { 207 207 struct mmp_clk_mix *mix = to_clk_mix(hw); 208 208 struct mmp_clk_mix_clk_table *item; 209 - struct clk *parent, *parent_best, *mix_clk; 209 + struct clk_hw *parent, *parent_best; 210 210 unsigned long parent_rate, mix_rate, mix_rate_best, parent_rate_best; 211 211 unsigned long gap, gap_best; 212 212 u32 div_val_max; 213 213 unsigned int div; 214 214 int i, j; 215 215 216 - mix_clk = hw->clk; 217 216 218 - parent = NULL; 219 217 mix_rate_best = 0; 220 218 parent_rate_best = 0; 221 219 gap_best = ULONG_MAX; ··· 224 226 item = &mix->table[i]; 225 227 if (item->valid == 0) 226 228 continue; 227 - parent = clk_get_parent_by_index(mix_clk, 229 + parent = clk_hw_get_parent_by_index(hw, 228 230 item->parent_index); 229 - parent_rate = __clk_get_rate(parent); 231 + parent_rate = clk_hw_get_rate(parent); 230 232 mix_rate = parent_rate / item->divisor; 231 233 gap = abs(mix_rate - req->rate); 232 234 if (parent_best == NULL || gap < gap_best) { ··· 240 242 } 241 243 } else { 242 244 for (i = 0; i < clk_hw_get_num_parents(hw); i++) { 243 - parent = clk_get_parent_by_index(mix_clk, i); 244 - parent_rate = __clk_get_rate(parent); 245 + parent = clk_hw_get_parent_by_index(hw, i); 246 + parent_rate = clk_hw_get_rate(parent); 245 247 div_val_max = _get_maxdiv(mix); 246 248 for (j = 0; j < div_val_max; j++) { 247 249 div = _get_div(mix, j); ··· 264 266 return -EINVAL; 265 267 266 268 req->best_parent_rate = parent_rate_best; 267 - req->best_parent_hw = __clk_get_hw(parent_best); 269 + req->best_parent_hw = parent_best; 268 270 req->rate = mix_rate_best; 269 271 270 272 return 0; ··· 380 382 struct mmp_clk_mix_clk_table *item; 381 383 unsigned long parent_rate; 382 384 unsigned int best_divisor; 383 - struct clk *mix_clk, *parent; 385 + struct clk_hw *parent; 384 386 int i; 385 387 386 388 best_divisor = best_parent_rate / rate; 387 389 388 - mix_clk = hw->clk; 389 390 if (mix->table) { 390 391 for (i = 0; i < mix->table_size; i++) { 391 392 item = &mix->table[i]; 392 393 if (item->valid == 0) 393 394 continue; 394 - parent = clk_get_parent_by_index(mix_clk, 395 + parent = clk_hw_get_parent_by_index(hw, 395 396 item->parent_index); 396 - parent_rate = __clk_get_rate(parent); 397 + parent_rate = clk_hw_get_rate(parent); 397 398 if (parent_rate == best_parent_rate 398 399 && item->divisor == best_divisor) 399 400 break; ··· 406 409 return -EINVAL; 407 410 } else { 408 411 for (i = 0; i < clk_hw_get_num_parents(hw); i++) { 409 - parent = clk_get_parent_by_index(mix_clk, i); 410 - parent_rate = __clk_get_rate(parent); 412 + parent = clk_hw_get_parent_by_index(hw, i); 413 + parent_rate = clk_hw_get_rate(parent); 411 414 if (parent_rate == best_parent_rate) 412 415 break; 413 416 }