[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