mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 03:00:04 +07:00
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:
parent
36ae1a96c4
commit
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:
|
||||
|
Loading…
Reference in New Issue
Block a user