[alsa-devel] [PATCH] ASoC: fsl_sai: fix no frame clk in master mode
Zidan Wang
zidan.wang at freescale.com
Wed Aug 12 09:59:15 CEST 2015
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 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