ASoC: Fix DMA channel leak in imx-pcm-dma-mx2 driver.
"snd_imx_pcm_hw_params" callback can be called several times by the user (i.e. OSS emulation) leading to a DMA channel leak. Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
36ae1a96c4
Коммит
220d9f2595
|
@ -88,11 +88,13 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream,
|
|||
iprtd->dma_data.dma_request = dma_params->dma;
|
||||
|
||||
/* Try to grab a DMA channel */
|
||||
dma_cap_zero(mask);
|
||||
dma_cap_set(DMA_SLAVE, mask);
|
||||
iprtd->dma_chan = dma_request_channel(mask, filter, iprtd);
|
||||
if (!iprtd->dma_chan)
|
||||
return -EINVAL;
|
||||
if (!iprtd->dma_chan) {
|
||||
dma_cap_zero(mask);
|
||||
dma_cap_set(DMA_SLAVE, mask);
|
||||
iprtd->dma_chan = dma_request_channel(mask, filter, iprtd);
|
||||
if (!iprtd->dma_chan)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (params_format(params)) {
|
||||
case SNDRV_PCM_FORMAT_S16_LE:
|
||||
|
|
Загрузка…
Ссылка в новой задаче