diff mbox series

[3/3] ASoC: fsl_micfil: Add support when using eDMA

Message ID 20221028082750.991822-4-chancel.liu@nxp.com
State Accepted
Commit 77a7a6e9a94df0ac7ba46677b5ce4a743a931fce
Headers show
Series [1/3] ASoC: dt-bindings: fsl, micfil: Add compatible string for i.MX93 platform | expand

Commit Message

Chancel Liu Oct. 28, 2022, 8:27 a.m. UTC
On i.MX93 platform MICFIL uses eDMA. The maxburst should be set to the
number of channels in eDMA multiple FIFO mode.

Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
 sound/soc/fsl/fsl_micfil.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Shengjiu Wang Nov. 1, 2022, 5:45 a.m. UTC | #1
On Fri, Oct 28, 2022 at 4:28 PM Chancel Liu <chancel.liu@nxp.com> wrote:

> On i.MX93 platform MICFIL uses eDMA. The maxburst should be set to the
> number of channels in eDMA multiple FIFO mode.
>
> Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
>

Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>

best regards
wang shengjiu

> ---
>  sound/soc/fsl/fsl_micfil.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/sound/soc/fsl/fsl_micfil.c b/sound/soc/fsl/fsl_micfil.c
> index b8a9504441df..22e75c14cac4 100644
> --- a/sound/soc/fsl/fsl_micfil.c
> +++ b/sound/soc/fsl/fsl_micfil.c
> @@ -63,6 +63,7 @@ struct fsl_micfil_soc_data {
>         unsigned int fifo_depth;
>         unsigned int dataline;
>         bool imx;
> +       bool use_edma;
>         u64  formats;
>  };
>
> @@ -88,6 +89,7 @@ static struct fsl_micfil_soc_data fsl_micfil_imx93 = {
>         .fifo_depth = 32,
>         .dataline =  0xf,
>         .formats = SNDRV_PCM_FMTBIT_S32_LE,
> +       .use_edma = true,
>  };
>
>  static const struct of_device_id fsl_micfil_dt_ids[] = {
> @@ -690,6 +692,8 @@ static int fsl_micfil_hw_params(struct
> snd_pcm_substream *substream,
>         micfil->sdmacfg.n_fifos_src = channels;
>         micfil->sdmacfg.sw_done = true;
>         micfil->dma_params_rx.maxburst = channels * MICFIL_DMA_MAXBURST_RX;
> +       if (micfil->soc->use_edma)
> +               micfil->dma_params_rx.maxburst = channels;
>
>         return 0;
>  }
> --
> 2.25.1
>
>
diff mbox series

Patch

diff --git a/sound/soc/fsl/fsl_micfil.c b/sound/soc/fsl/fsl_micfil.c
index b8a9504441df..22e75c14cac4 100644
--- a/sound/soc/fsl/fsl_micfil.c
+++ b/sound/soc/fsl/fsl_micfil.c
@@ -63,6 +63,7 @@  struct fsl_micfil_soc_data {
 	unsigned int fifo_depth;
 	unsigned int dataline;
 	bool imx;
+	bool use_edma;
 	u64  formats;
 };
 
@@ -88,6 +89,7 @@  static struct fsl_micfil_soc_data fsl_micfil_imx93 = {
 	.fifo_depth = 32,
 	.dataline =  0xf,
 	.formats = SNDRV_PCM_FMTBIT_S32_LE,
+	.use_edma = true,
 };
 
 static const struct of_device_id fsl_micfil_dt_ids[] = {
@@ -690,6 +692,8 @@  static int fsl_micfil_hw_params(struct snd_pcm_substream *substream,
 	micfil->sdmacfg.n_fifos_src = channels;
 	micfil->sdmacfg.sw_done = true;
 	micfil->dma_params_rx.maxburst = channels * MICFIL_DMA_MAXBURST_RX;
+	if (micfil->soc->use_edma)
+		micfil->dma_params_rx.maxburst = channels;
 
 	return 0;
 }