| From 373673b347e0d778e4377b5e09acfda26b44e355 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 31 Jul 2020 14:28:15 +0800 |
| Subject: ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK |
| |
| From: Shengjiu Wang <shengjiu.wang@nxp.com> |
| |
| [ Upstream commit 5aef1ff2397d021f93d874b57dff032fdfac73de ] |
| |
| The fifo_depth is 64 on i.MX8QM/i.MX8QXP, 128 on i.MX8MQ, 16 on |
| i.MX7ULP. |
| |
| Original FSL_SAI_CR1_RFW_MASK value 0x1F is not suitable for |
| these platform, the FIFO watermark mask should be updated |
| according to the fifo_depth. |
| |
| Fixes: a860fac42097 ("ASoC: fsl_sai: Add support for imx7ulp/imx8mq") |
| Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> |
| Reviewed-by: Fabio Estevam <festevam@gmail.com> |
| Link: https://lore.kernel.org/r/1596176895-28724-1-git-send-email-shengjiu.wang@nxp.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/soc/fsl/fsl_sai.c | 5 +++-- |
| sound/soc/fsl/fsl_sai.h | 2 +- |
| 2 files changed, 4 insertions(+), 3 deletions(-) |
| |
| diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c |
| index 9d436b0c5718a..7031869a023a1 100644 |
| --- a/sound/soc/fsl/fsl_sai.c |
| +++ b/sound/soc/fsl/fsl_sai.c |
| @@ -680,10 +680,11 @@ static int fsl_sai_dai_probe(struct snd_soc_dai *cpu_dai) |
| regmap_write(sai->regmap, FSL_SAI_RCSR(ofs), 0); |
| |
| regmap_update_bits(sai->regmap, FSL_SAI_TCR1(ofs), |
| - FSL_SAI_CR1_RFW_MASK, |
| + FSL_SAI_CR1_RFW_MASK(sai->soc_data->fifo_depth), |
| sai->soc_data->fifo_depth - FSL_SAI_MAXBURST_TX); |
| regmap_update_bits(sai->regmap, FSL_SAI_RCR1(ofs), |
| - FSL_SAI_CR1_RFW_MASK, FSL_SAI_MAXBURST_RX - 1); |
| + FSL_SAI_CR1_RFW_MASK(sai->soc_data->fifo_depth), |
| + FSL_SAI_MAXBURST_RX - 1); |
| |
| snd_soc_dai_init_dma_data(cpu_dai, &sai->dma_params_tx, |
| &sai->dma_params_rx); |
| diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h |
| index 76b15deea80c7..6aba7d28f5f34 100644 |
| --- a/sound/soc/fsl/fsl_sai.h |
| +++ b/sound/soc/fsl/fsl_sai.h |
| @@ -94,7 +94,7 @@ |
| #define FSL_SAI_CSR_FRDE BIT(0) |
| |
| /* SAI Transmit and Receive Configuration 1 Register */ |
| -#define FSL_SAI_CR1_RFW_MASK 0x1f |
| +#define FSL_SAI_CR1_RFW_MASK(x) ((x) - 1) |
| |
| /* SAI Transmit and Receive Configuration 2 Register */ |
| #define FSL_SAI_CR2_SYNC BIT(30) |
| -- |
| 2.25.1 |
| |