You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
ASoC: fsl_sai: Enable 'FIFO continue on error' FCONT bit
[ Upstream commit 72455e33173c1a00c0ce93d2b0198eb45d5f4195 ] FCONT=1 means On FIFO error, the SAI will continue from the same word that caused the FIFO error to set after the FIFO warning flag has been cleared. Set FCONT bit in control register to avoid the channel swap issue after SAI xrun. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://patch.msgid.link/1727676508-22830-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a548f8773e
commit
95124c5429
@@ -604,6 +604,9 @@ static int fsl_sai_hw_params(struct snd_pcm_substream *substream,
|
||||
|
||||
val_cr4 |= FSL_SAI_CR4_FRSZ(slots);
|
||||
|
||||
/* Set to avoid channel swap */
|
||||
val_cr4 |= FSL_SAI_CR4_FCONT;
|
||||
|
||||
/* Set to output mode to avoid tri-stated data pins */
|
||||
if (tx)
|
||||
val_cr4 |= FSL_SAI_CR4_CHMOD;
|
||||
@@ -690,7 +693,7 @@ static int fsl_sai_hw_params(struct snd_pcm_substream *substream,
|
||||
|
||||
regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, ofs),
|
||||
FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK |
|
||||
FSL_SAI_CR4_CHMOD_MASK,
|
||||
FSL_SAI_CR4_CHMOD_MASK | FSL_SAI_CR4_FCONT_MASK,
|
||||
val_cr4);
|
||||
regmap_update_bits(sai->regmap, FSL_SAI_xCR5(tx, ofs),
|
||||
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
|
||||
/* SAI Transmit and Receive Configuration 4 Register */
|
||||
|
||||
#define FSL_SAI_CR4_FCONT_MASK BIT(28)
|
||||
#define FSL_SAI_CR4_FCONT BIT(28)
|
||||
#define FSL_SAI_CR4_FCOMB_SHIFT BIT(26)
|
||||
#define FSL_SAI_CR4_FCOMB_SOFT BIT(27)
|
||||
|
||||
Reference in New Issue
Block a user