Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 337bb336 authored by Paul Walmsley's avatar Paul Walmsley Committed by Takashi Iwai
Browse files

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: default avatarPaul Walmsley <pwalmsley@nvidia.com>
Acked-by: default avatarHans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f62438ac
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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 */
	/* we start at 192 kHz and work our way down to 5112 Hz */
	while (new_rate >= RATE_MIN && index < (MAX_NUM_RATES + 1)) {
	while (new_rate >= RATE_MIN && index < (MAX_NUM_RATES + 1)) {
		new_rate = clk_round_rate(dac->sample_clk, 256 * new_rate);
		new_rate = clk_round_rate(dac->sample_clk, 256 * new_rate);
		if (new_rate < 0)
		if (new_rate <= 0)
			break;
			break;
		/* make sure we are below the ABDAC clock */
		/* make sure we are below the ABDAC clock */
		if (new_rate <= clk_get_rate(dac->pclk)) {
		if (new_rate <= clk_get_rate(dac->pclk)) {