From: Paul Walmsley Date: Tue, 10 Dec 2013 02:49:13 +0000 (-0800) Subject: ALSA: atmel_abdac: clk_round_rate() can return a zero upon error X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=337bb336b95bd7884fa3a194eafbdf52a0216b2e;p=deliverable%2Flinux.git ALSA: atmel_abdac: 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 Acked-by: Hans-Christian Egtvedt Cc: Nicolas Ferre Signed-off-by: Takashi Iwai --- diff --git a/sound/atmel/abdac.c b/sound/atmel/abdac.c index 872d59e35ee2..b78a3bc6f35e 100644 --- a/sound/atmel/abdac.c +++ b/sound/atmel/abdac.c @@ -354,7 +354,7 @@ static int set_sample_rates(struct atmel_abdac *dac) /* we start at 192 kHz and work our way down to 5112 Hz */ while (new_rate >= RATE_MIN && index < (MAX_NUM_RATES + 1)) { new_rate = clk_round_rate(dac->sample_clk, 256 * new_rate); - if (new_rate < 0) + if (new_rate <= 0) break; /* make sure we are below the ABDAC clock */ if (new_rate <= clk_get_rate(dac->pclk)) {