diff options
author | Paul Walmsley <pwalmsley@nvidia.com> | 2013-12-10 06:35:24 +0400 |
---|---|---|
committer | Hans-Christian Egtvedt <hegtvedt@cisco.com> | 2013-12-10 11:46:38 +0400 |
commit | 464b500e37a588be69ed9c9c21bca62a578ca66c (patch) | |
tree | 539049f9f53f1c9b0608069a6722f81d70dcf44a /arch | |
parent | 7155530d9eb692994d208836e4965da06b17c99d (diff) | |
download | linux-464b500e37a588be69ed9c9c21bca62a578ca66c.tar.xz |
avr32: favr-32: clk_round_rate() can return a zero upon error
Treat both negative and zero return values from clk_round_rate() as
errors. This is needed since subsequent patches will convert
clk_round_rate()'s return value to be an unsigned type, rather than a
signed type, since some clock sources can generate rates higher than
(2^31)-1 Hz.
Eventually, when calling clk_round_rate(), only a return value of zero
will be considered a error. All other values will be considered valid
rates. The comparison against values less than 0 is kept to preserve
the correct behavior in the meantime.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: HÃ¥vard Skinnemoen <hskinnemoen@gmail.com>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/boards/favr-32/setup.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c index 7b1f2cd85400..1f121497b517 100644 --- a/arch/avr32/boards/favr-32/setup.c +++ b/arch/avr32/boards/favr-32/setup.c @@ -298,8 +298,10 @@ static int __init set_abdac_rate(struct platform_device *pdev) */ retval = clk_round_rate(pll1, CONFIG_BOARD_FAVR32_ABDAC_RATE * 256 * 16); - if (retval < 0) + if (retval <= 0) { + retval = -EINVAL; goto out_abdac; + } retval = clk_set_rate(pll1, retval); if (retval != 0) |