ASoC: pcm: Fix rate_max calculation
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 27 Nov 2013 08:58:17 +0000 (09:58 +0100)
committerMark Brown <broonie@linaro.org>
Wed, 27 Nov 2013 16:42:37 +0000 (16:42 +0000)
In order to make sure that the sample rate is in the supported range of both
components the maximum rate of the card should be the minimum of the maximum
rate of each components. There is one special case to consider though, if
max_rate is set to 0 this means there is no maximum specified, so use
min_not_zero() macro which will give use the desired result.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Takashi iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/soc-pcm.c

index 42782c01e41320e924efb4b93c839802f0df5722..9441e17d1147345483b75aaefeec8a588e2a2a94 100644 (file)
@@ -153,7 +153,7 @@ static void soc_pcm_init_runtime_hw(struct snd_pcm_hardware *hw,
        struct snd_soc_pcm_stream *cpu_stream)
 {
        hw->rate_min = max(codec_stream->rate_min, cpu_stream->rate_min);
-       hw->rate_max = max(codec_stream->rate_max, cpu_stream->rate_max);
+       hw->rate_max = min_not_zero(codec_stream->rate_max, cpu_stream->rate_max);
        hw->channels_min = max(codec_stream->channels_min,
                cpu_stream->channels_min);
        hw->channels_max = min(codec_stream->channels_max,