Skip to content

Commit

Permalink
ALSA: atmel_abdac: clk_round_rate() can return a zero upon error
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: Hans-Christian Egtvedt <[email protected]>
Cc: Nicolas Ferre <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
nvpw authored and tiwai committed Dec 10, 2013
1 parent f62438a commit 337bb33
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion sound/atmel/abdac.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand Down

0 comments on commit 337bb33

Please sign in to comment.