mirror of https://gitee.com/openkylin/linux.git
sh: clkfwk: modify for_each_frequency end condition
The end condition of for_each_frequency should care about both clk_rate_table_round and clk_rate_div_range_round, and using "correct max size" is a natural idea in later function. To avoid data over flow, this patch didn't modify clk_rate_div_range_round side as .max = div_max + 1. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
56ea510962
commit
c2590f4a8d
|
@ -82,7 +82,7 @@ struct clk_rate_round_data {
|
|||
|
||||
#define for_each_frequency(pos, r, freq) \
|
||||
for (pos = r->min, freq = r->func(pos, r); \
|
||||
pos < r->max; pos++, freq = r->func(pos, r)) \
|
||||
pos <= r->max; pos++, freq = r->func(pos, r)) \
|
||||
if (unlikely(freq == 0)) \
|
||||
; \
|
||||
else
|
||||
|
@ -139,12 +139,15 @@ long clk_rate_table_round(struct clk *clk,
|
|||
{
|
||||
struct clk_rate_round_data table_round = {
|
||||
.min = 0,
|
||||
.max = clk->nr_freqs,
|
||||
.max = clk->nr_freqs - 1,
|
||||
.func = clk_rate_table_iter,
|
||||
.arg = freq_table,
|
||||
.rate = rate,
|
||||
};
|
||||
|
||||
if (clk->nr_freqs < 1)
|
||||
return 0;
|
||||
|
||||
return clk_rate_round_helper(&table_round);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue