[RESEND v2 3/3] ASoC: fsl_xcvr: Add constraints of period size while using eDMA

Shengjiu Wang shengjiu.wang at gmail.com
Thu Jan 5 10:55:24 CET 2023


On Wed, Jan 4, 2023 at 10:40 AM Chancel Liu <chancel.liu at nxp.com> wrote:

> eDMA on i.MX93 platform requires the period size to be multiple of
> maxburst.
>
> Signed-off-by: Chancel Liu <chancel.liu at nxp.com>
>

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

Best regards
Wang shengjiu

> ---
>  sound/soc/fsl/fsl_xcvr.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/sound/soc/fsl/fsl_xcvr.c b/sound/soc/fsl/fsl_xcvr.c
> index b794158a7876..2a78243df752 100644
> --- a/sound/soc/fsl/fsl_xcvr.c
> +++ b/sound/soc/fsl/fsl_xcvr.c
> @@ -22,6 +22,7 @@
>  struct fsl_xcvr_soc_data {
>         const char *fw_name;
>         bool spdif_only;
> +       bool use_edma;
>  };
>
>  struct fsl_xcvr {
> @@ -538,6 +539,16 @@ static int fsl_xcvr_startup(struct snd_pcm_substream
> *substream,
>                 return -EBUSY;
>         }
>
> +       /*
> +        * EDMA controller needs period size to be a multiple of
> +        * tx/rx maxburst
> +        */
> +       if (xcvr->soc_data->use_edma)
> +               snd_pcm_hw_constraint_step(substream->runtime, 0,
> +                                          SNDRV_PCM_HW_PARAM_PERIOD_SIZE,
> +                                          tx ? xcvr->dma_prms_tx.maxburst
> :
> +                                          xcvr->dma_prms_rx.maxburst);
> +
>         switch (xcvr->mode) {
>         case FSL_XCVR_MODE_SPDIF:
>         case FSL_XCVR_MODE_ARC:
> @@ -1207,6 +1218,7 @@ static const struct fsl_xcvr_soc_data
> fsl_xcvr_imx8mp_data = {
>
>  static const struct fsl_xcvr_soc_data fsl_xcvr_imx93_data = {
>         .spdif_only = true,
> +       .use_edma = true,
>  };
>
>  static const struct of_device_id fsl_xcvr_dt_ids[] = {
> --
> 2.25.1
>
>


More information about the Alsa-devel mailing list