[alsa-devel] [PATCH 2/3] ASoC: fsl_sai: derive TX FIFO watermark from FIFO depth

Angus Ainslie angus at akkea.ca
Wed Jul 17 15:43:18 CEST 2019


On 2019-07-17 04:56, Lucas Stach wrote:
> The DMA request schould be triggered as soon as the FIFO has space
> for another burst. As different versions of the SAI block have
> different FIFO sizes, the watrmark level needs to be derived from
> version specific data.
> 
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>

Tested-by: Angus Ainslie <angus at akkea.ca>
Reviewed-by: Angus Ainslie <angus at akkea.ca>

> ---
>  sound/soc/fsl/fsl_sai.c | 4 +++-
>  sound/soc/fsl/fsl_sai.h | 1 +
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
> index 3a1ed8b857d6..b3cd055a61c7 100644
> --- a/sound/soc/fsl/fsl_sai.c
> +++ b/sound/soc/fsl/fsl_sai.c
> @@ -649,7 +649,7 @@ static int fsl_sai_dai_probe(struct snd_soc_dai 
> *cpu_dai)
>  	regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
> 
>  	regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK,
> -			   FSL_SAI_MAXBURST_TX * 2);
> +			   sai->soc_data->fifo_depth - FSL_SAI_MAXBURST_TX);
>  	regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
>  			   FSL_SAI_MAXBURST_RX - 1);
> 
> @@ -923,10 +923,12 @@ static int fsl_sai_remove(struct platform_device 
> *pdev)
> 
>  static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
>  	.use_imx_pcm = false,
> +	.fifo_depth = 32,
>  };
> 
>  static const struct fsl_sai_soc_data fsl_sai_imx6sx_data = {
>  	.use_imx_pcm = true,
> +	.fifo_depth = 32,
>  };
> 
>  static const struct of_device_id fsl_sai_ids[] = {
> diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h
> index 83e2bfe05b1b..7c1ef671da28 100644
> --- a/sound/soc/fsl/fsl_sai.h
> +++ b/sound/soc/fsl/fsl_sai.h
> @@ -128,6 +128,7 @@
> 
>  struct fsl_sai_soc_data {
>  	bool use_imx_pcm;
> +	unsigned int fifo_depth;
>  };
> 
>  struct fsl_sai {


More information about the Alsa-devel mailing list