ASoC: fsl_asrc_dma: Reuse the dma channel if available in Back-End
authorShengjiu Wang <shengjiu.wang@nxp.com>
Fri, 12 Jun 2020 07:37:50 +0000 (15:37 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 12 Jun 2020 13:18:03 +0000 (14:18 +0100)
commit706e2c8811585f42612b6cff218ab3adbe63a4ee
tree71db696a01e41ef033aec394a91d673e53676b4b
parenta9a21e1eafc94b79502cab8272b392f7f63ef7bb
ASoC: fsl_asrc_dma: Reuse the dma channel if available in Back-End

The dma channel has been requested by Back-End cpu dai driver already.
If fsl_asrc_dma requests dma chan with same dma:tx symlink, then
there will be below warning with SDMA.

[   48.174236] fsl-esai-dai 2024000.esai: Cannot create DMA dma:tx symlink

So if we can reuse the dma channel of Back-End, then the issue can be
fixed.

In order to get the dma channel which is already requested in Back-End.
we use the exported two functions (snd_soc_lookup_component_nolocked
and soc_component_to_pcm). If we can get the dma channel, then reuse it,
if can't, then request a new one.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/3a79f0442cb4930c633cf72145cfe95a45b9c78e.1591947428.git.shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_asrc_dma.c