Lines Matching refs:rate

210 			 unsigned long parent_rate, unsigned long rate,  in _div_round_up()  argument
213 int div = DIV_ROUND_UP_ULL((u64)parent_rate, rate); in _div_round_up()
224 unsigned long parent_rate, unsigned long rate, in _div_round_closest() argument
230 up = DIV_ROUND_UP_ULL((u64)parent_rate, rate); in _div_round_closest()
231 down = parent_rate / rate; in _div_round_closest()
244 return (rate - up_rate) <= (down_rate - rate) ? up : down; in _div_round_closest()
248 unsigned long parent_rate, unsigned long rate, in _div_round() argument
252 return _div_round_closest(table, parent_rate, rate, flags); in _div_round()
254 return _div_round_up(table, parent_rate, rate, flags); in _div_round()
257 static bool _is_best_div(unsigned long rate, unsigned long now, in _is_best_div() argument
261 return abs(rate - now) < abs(rate - best); in _is_best_div()
263 return now <= rate && now > best; in _is_best_div()
279 static int clk_divider_bestdiv(struct clk_hw *hw, unsigned long rate, in clk_divider_bestdiv() argument
288 if (!rate) in clk_divider_bestdiv()
289 rate = 1; in clk_divider_bestdiv()
295 bestdiv = _div_round(table, parent_rate, rate, flags); in clk_divider_bestdiv()
305 maxdiv = min(ULONG_MAX / rate, maxdiv); in clk_divider_bestdiv()
310 if (rate * i == parent_rate_saved) { in clk_divider_bestdiv()
320 rate * i); in clk_divider_bestdiv()
322 if (_is_best_div(rate, now, best, flags)) { in clk_divider_bestdiv()
337 long divider_round_rate(struct clk_hw *hw, unsigned long rate, in divider_round_rate() argument
343 div = clk_divider_bestdiv(hw, rate, prate, table, width, flags); in divider_round_rate()
349 static long clk_divider_round_rate(struct clk_hw *hw, unsigned long rate, in clk_divider_round_rate() argument
364 return divider_round_rate(hw, rate, prate, divider->table, in clk_divider_round_rate()
368 int divider_get_val(unsigned long rate, unsigned long parent_rate, in divider_get_val() argument
374 div = DIV_ROUND_UP_ULL((u64)parent_rate, rate); in divider_get_val()
385 static int clk_divider_set_rate(struct clk_hw *hw, unsigned long rate, in clk_divider_set_rate() argument
393 value = divider_get_val(rate, parent_rate, divider->table, in clk_divider_set_rate()