On Tue, Aug 11, 2015 at 08:53:25PM -0700, Nicolin Chen wrote:
On Wed, Aug 12, 2015 at 10:25:45AM +0800, Zidan Wang wrote:
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.
It doesn't look like a decent fix to me. Is it the only fix that IC team suggests? And why put this reset in the trigger function. Your MEGA fast patch has already included a software reset in the PM runtime functions. When dealing with CTRL+C test cases, that software reset should have worked as well.
The MEGA fast patch add the suspend/resume function, but CTRL+C will not trigger suspend/resume function. When CTRL+C, it will trigger stop and software reset SAI. IC team suggest us to rest it, but I don't know if it's the only fix.
Best Regards, Zidan Wang
Nicolin
Signed-off-by: Zidan Wang zidan.wang@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);
} break; default:regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
-- 1.9.1