From 96412158397ca0e41db1eb7cec4f51a2280d1bf1 Mon Sep 17 00:00:00 2001 From: Mihai Serban Date: Thu, 27 Apr 2017 18:47:42 +0300 Subject: [PATCH] MLK-14935: ASoC: fsl_sai: Fix mixing initialization data with actual audio samples When starting a playback the initialization data used to reduce underruns was send to the transmit data register after the DMA requests were enabled. This patch moves the initialization phase before enabling the DMA so the data is transmitted in correct order. Signed-off-by: Mihai Serban --- sound/soc/fsl/fsl_sai.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -594,15 +594,14 @@ static int fsl_sai_trigger(struct snd_pc case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: - regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), - FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE); - for (i = 0; tx && i < channels; i++) regmap_write(sai->regmap, FSL_SAI_TDR0, 0x0); if (tx) udelay(10); regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), + FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE); + regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), FSL_SAI_CSR_TERE, FSL_SAI_CSR_TERE); regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), FSL_SAI_CSR_SE, FSL_SAI_CSR_SE);