[alsa-devel] [PATCH] ASoC: fsl_sai: fix no frame clk in master mode

Zidan Wang zidan.wang at freescale.com
Wed Aug 12 04:25:45 CEST 2015


After several open/close sai test with ctrl+c, there will be I/O error.
The SAI can't work anymore, can't recover. There will be no frame clock.
With adding the software reset in trigger stop, the issue can be fixed.

Signed-off-by: Zidan Wang <zidan.wang at freescale.com>
---
 sound/soc/fsl/fsl_sai.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index 5c737f1..6a947dc 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -504,6 +504,13 @@ static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd,
 					   FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
 			regmap_update_bits(sai->regmap, FSL_SAI_RCSR,
 					   FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
+
+			/* Software Reset for both Tx and Rx */
+			regmap_write(sai->regmap, FSL_SAI_TCSR, FSL_SAI_CSR_SR);
+			regmap_write(sai->regmap, FSL_SAI_RCSR, FSL_SAI_CSR_SR);
+			/* Clear SR bit to finish the reset */
+			regmap_write(sai->regmap, FSL_SAI_TCSR, 0);
+			regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
 		}
 		break;
 	default:
-- 
1.9.1



More information about the Alsa-devel mailing list