aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/imx/imx-pcm-dma-mx2.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sound/soc/imx/imx-pcm-dma-mx2.c b/sound/soc/imx/imx-pcm-dma-mx2.c
index 1cf2fe889f6..7d7fbb5d2a9 100644
--- a/sound/soc/imx/imx-pcm-dma-mx2.c
+++ b/sound/soc/imx/imx-pcm-dma-mx2.c
@@ -88,11 +88,13 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream,
88 iprtd->dma_data.dma_request = dma_params->dma; 88 iprtd->dma_data.dma_request = dma_params->dma;
89 89
90 /* Try to grab a DMA channel */ 90 /* Try to grab a DMA channel */
91 dma_cap_zero(mask); 91 if (!iprtd->dma_chan) {
92 dma_cap_set(DMA_SLAVE, mask); 92 dma_cap_zero(mask);
93 iprtd->dma_chan = dma_request_channel(mask, filter, iprtd); 93 dma_cap_set(DMA_SLAVE, mask);
94 if (!iprtd->dma_chan) 94 iprtd->dma_chan = dma_request_channel(mask, filter, iprtd);
95 return -EINVAL; 95 if (!iprtd->dma_chan)
96 return -EINVAL;
97 }
96 98
97 switch (params_format(params)) { 99 switch (params_format(params)) {
98 case SNDRV_PCM_FORMAT_S16_LE: 100 case SNDRV_PCM_FORMAT_S16_LE: