Pārlūkot izejas kodu

ASoC: pxa-ssp: Correct check for stream presence

Don't rely on the codec's channels_min information to decide wheter or
not allocate a substream's DMA buffer. Rather check if the substream
itself was allocated previously.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
Daniel Mack 14 gadi atpakaļ
vecāks
revīzija
53dea36c70
1 mainītis faili ar 2 papildinājumiem un 2 dzēšanām
  1. 2 2
      sound/soc/pxa/pxa2xx-pcm.c

+ 2 - 2
sound/soc/pxa/pxa2xx-pcm.c

@@ -95,14 +95,14 @@ static int pxa2xx_soc_pcm_new(struct snd_card *card, struct snd_soc_dai *dai,
 	if (!card->dev->coherent_dma_mask)
 	if (!card->dev->coherent_dma_mask)
 		card->dev->coherent_dma_mask = DMA_BIT_MASK(32);
 		card->dev->coherent_dma_mask = DMA_BIT_MASK(32);
 
 
-	if (dai->driver->playback.channels_min) {
+	if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) {
 		ret = pxa2xx_pcm_preallocate_dma_buffer(pcm,
 		ret = pxa2xx_pcm_preallocate_dma_buffer(pcm,
 			SNDRV_PCM_STREAM_PLAYBACK);
 			SNDRV_PCM_STREAM_PLAYBACK);
 		if (ret)
 		if (ret)
 			goto out;
 			goto out;
 	}
 	}
 
 
-	if (dai->driver->capture.channels_min) {
+	if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) {
 		ret = pxa2xx_pcm_preallocate_dma_buffer(pcm,
 		ret = pxa2xx_pcm_preallocate_dma_buffer(pcm,
 			SNDRV_PCM_STREAM_CAPTURE);
 			SNDRV_PCM_STREAM_CAPTURE);
 		if (ret)
 		if (ret)