ASoC: Fix check for symmetric rate enforcement
The ASoC core tries to not enforce symmetric rates when two streams open simultaneously. It does so by checking rtd->rate being zero. This works exactly once after booting because it is not set to zero again when the streams close. Fix this by setting rtd->rate when no active stream is left. [This leads to lots of warnings about not enforcing the symmetry in some situations as there's a race in the userspace API where we know we've got two applications but don't know what rates they want to set. -- broonie ] Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
0cc62e9263
Коммит
25b7679136
|
@ -290,6 +290,9 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
|
|||
codec_dai->active--;
|
||||
codec->active--;
|
||||
|
||||
if (!cpu_dai->active && !codec_dai->active)
|
||||
rtd->rate = 0;
|
||||
|
||||
/* Muting the DAC suppresses artifacts caused during digital
|
||||
* shutdown, for example from stopping clocks.
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче