Commit 17b6c19b authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown

ASoC: pcm: Fix rate_max calculation

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: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarTakashi iwai <tiwai@suse.de>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 6ce4eac1
...@@ -153,7 +153,7 @@ static void soc_pcm_init_runtime_hw(struct snd_pcm_hardware *hw, ...@@ -153,7 +153,7 @@ static void soc_pcm_init_runtime_hw(struct snd_pcm_hardware *hw,
struct snd_soc_pcm_stream *cpu_stream) struct snd_soc_pcm_stream *cpu_stream)
{ {
hw->rate_min = max(codec_stream->rate_min, cpu_stream->rate_min); 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, hw->channels_min = max(codec_stream->channels_min,
cpu_stream->channels_min); cpu_stream->channels_min);
hw->channels_max = min(codec_stream->channels_max, hw->channels_max = min(codec_stream->channels_max,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment