Commit 5aefa34fada9d17a00635516688de34702451708

Authored by Paul Mundt
1 parent 3985c7ce85

sh: clkfwk: Fix up rate rounding error handling.

According to the linux/clk.h definition we should be handing back an
errno value or a valid rate. This fixes up the case where 0 can be
returned for invalid frequencies or cases where rounding has no
selectable candidate.

Reported-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff

drivers/sh/clk/core.c
... ... @@ -90,8 +90,8 @@
90 90 static long clk_rate_round_helper(struct clk_rate_round_data *rounder)
91 91 {
92 92 unsigned long rate_error, rate_error_prev = ~0UL;
93   - unsigned long rate_best_fit = rounder->rate;
94 93 unsigned long highest, lowest, freq;
  94 + long rate_best_fit = -ENOENT;
95 95 int i;
96 96  
97 97 highest = 0;
... ... @@ -146,7 +146,7 @@
146 146 };
147 147  
148 148 if (clk->nr_freqs < 1)
149   - return 0;
  149 + return -ENOSYS;
150 150  
151 151 return clk_rate_round_helper(&table_round);
152 152 }