[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