[alsa-devel] [PATCH] ASoC: fsl_sai: fix no frame clk in master mode
Nicolin Chen
nicoleotsuka at gmail.com
Wed Aug 12 05:53:25 CEST 2015
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.
Nicolin
> 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