On Sat, 2017-04-01 at 11:48 -0300, Fabio Estevam wrote: > From: Fabio Estevam <fabio.estevam@xxxxxxx> > > Commit f8fdf5375e2005f2 ("ASoC: fsl-ssi: add SSIEN errata work around") > implemented the workaround for the following erratum found on i.MX35 > errata document: > > ENGcm06222: SSI:Transmission does not take place in bit length early > frame sync configuration > > and also for ENGcm06222 from the same document. > > However it has been only applied for AC97 mode. Apply it to I2S mode > as well so that it can fix audio channel swap during playback start. > > The channel swap can be noticed in about 10% of the times an audio track > starts. > > With the recommended workaround in place no more channel swap > happened after running audio start/stop sequence in more than > 2000 times. > > Tested on a mx6dl-wandboard. > > Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxx> Hi I could reproduce the issue on a Colibri iMX6 Dual with a i.MX 6DualLite. Without the patch I see channel swap in about 3% of playback starts. The patch fixes the issue. Tested-by: Max Krummenacher <max.krummenacher@xxxxxxxxxxx> Max > --- > Changes since v1: > - Do not impact 61fcf10a0ee44763e0 ("ASoC: fsl_ssi: Fix channel slipping in > Playback at startup") > > sound/soc/fsl/fsl_ssi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c > index 17f92b8..549b2a5 100644 > --- a/sound/soc/fsl/fsl_ssi.c > +++ b/sound/soc/fsl/fsl_ssi.c > @@ -575,7 +575,9 @@ static void fsl_ssi_config(struct fsl_ssi_private *ssi_private, bool enable, > "Timeout waiting TX FIFO filling\n"); > } > } > - regmap_update_bits(regs, CCSR_SSI_SCR, vals->scr, vals->scr); > + regmap_update_bits(regs, CCSR_SSI_SCR, > + CCSR_SSI_SCR_SSIEN | CCSR_SSI_SCR_TE | CCSR_SSI_SCR_RE, > + CCSR_SSI_SCR_SSIEN | CCSR_SSI_SCR_TE | CCSR_SSI_SCR_RE); > } > } > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel