ASoC: pcm: Use snd_pcm_rate_mask_intersect() helper
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 11 Jan 2014 09:24:44 +0000 (10:24 +0100)
committerMark Brown <broonie@linaro.org>
Tue, 14 Jan 2014 20:42:34 +0000 (20:42 +0000)
Instead of open-coding the intersecting of two rate masks (and getting slightly
wrong for some of the corner cases) use the new snd_pcm_rate_mask_intersect()
helper function.

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

index 2b8949647e32a1f2d7dde9ac382c37f58535382b..4bbda0a4ee03f9aefdf09ba7ea37967cc892d00e 100644 (file)
@@ -162,13 +162,8 @@ static void soc_pcm_init_runtime_hw(struct snd_pcm_runtime *runtime,
                hw->formats &= codec_stream->formats & cpu_stream->formats;
        else
                hw->formats = codec_stream->formats & cpu_stream->formats;
-       hw->rates = codec_stream->rates & cpu_stream->rates;
-       if (codec_stream->rates
-               & (SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_CONTINUOUS))
-               hw->rates |= cpu_stream->rates;
-       if (cpu_stream->rates
-               & (SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_CONTINUOUS))
-               hw->rates |= codec_stream->rates;
+       hw->rates = snd_pcm_rate_mask_intersect(codec_stream->rates,
+               cpu_stream->rates);
 
        hw->rate_min = 0;
        hw->rate_max = UINT_MAX;