Re: [PATCH] ALSA: atmel_abdac: clk_round_rate() can return a zeroupon error

From: Hans-Christian Egtvedt
Date: Tue Dec 10 2013 - 02:39:25 EST


Around Mon 09 Dec 2013 18:49:13 -0800 or thereabout, Paul Walmsley wrote:
>
> 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 <pwalmsley@xxxxxxxxxx>
> Cc: Hans-Christian Egtvedt <egtvedt@xxxxxxxxxxxx>
> Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
> Cc: Takashi Iwai <tiwai@xxxxxxx>
> Cc: Jaroslav Kysela <perex@xxxxxxxx>

Thanks for fixing.

Acked-by: Hans-Christian Egtvedt <egtvedt@xxxxxxxxxxxx>

> ---
> Applies on v3.13-rc3. See also:
>
> http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2
>
> sound/atmel/abdac.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/atmel/abdac.c b/sound/atmel/abdac.c
> index 721d8fd..3519518 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 (index < MAX_NUM_RATES &&
>

--
mvh
Hans-Christian Egtvedt
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/