diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2010-11-01 15:30:31 -0400 | 
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2010-11-01 15:30:31 -0400 | 
| commit | 5aefa34fada9d17a00635516688de34702451708 (patch) | |
| tree | 1efb33a6f02df2c70f8cb8aa3c5cca52c04c9aa2 /drivers/sh/clk | |
| parent | 3985c7ce85039adacdf882904ca096f091d39346 (diff) | |
| download | linux-5aefa34fada9d17a00635516688de34702451708.tar.bz2 | |
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>
Diffstat (limited to 'drivers/sh/clk')
| -rw-r--r-- | drivers/sh/clk/core.c | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/drivers/sh/clk/core.c b/drivers/sh/clk/core.c index fd0d1b98901c..861144360d89 100644 --- a/drivers/sh/clk/core.c +++ b/drivers/sh/clk/core.c @@ -90,8 +90,8 @@ struct clk_rate_round_data {  static long clk_rate_round_helper(struct clk_rate_round_data *rounder)  {  	unsigned long rate_error, rate_error_prev = ~0UL; -	unsigned long rate_best_fit = rounder->rate;  	unsigned long highest, lowest, freq; +	long rate_best_fit = -ENOENT;  	int i;  	highest = 0; @@ -146,7 +146,7 @@ long clk_rate_table_round(struct clk *clk,  	};  	if (clk->nr_freqs < 1) -		return 0; +		return -ENOSYS;  	return clk_rate_round_helper(&table_round);  } |