]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: fsl_ssi: Fix channel slipping on capture (or playback) restart in full duplex.
authorArnaud Mouiche <arnaud.mouiche@invoxia.com>
Tue, 3 May 2016 12:14:00 +0000 (14:14 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 13 May 2016 11:15:31 +0000 (12:15 +0100)
commit64fd2247d36a70653c713a3c4fe96a4e8233a589
tree924ec6c33029c17eebbc19a562613a6975846dbe
parent824d716fcf0d231b27ca9dbed6a12210f3db5604
ASoC: fsl_ssi: Fix channel slipping on capture (or playback) restart in full duplex.

Happened when the Playback (or Capture) is running continuously
and Capture (or Playback) is restarted (xrun, manual stop/start...)

Since the RX (or TX) FIFO are only reset when the whole SSI is disabled,
pending samples from previous capture (or playback) session may still
be present. They must be erased to not introduce channel slipping.

FIFO Clear register fields are documented in IMX51, IMX35 reference manual.
They are not documented in IMX50 or IMX6 RM, despite they are
working as expected on IMX6SL and IMX6solo.

Signed-off-by: Arnaud Mouiche <arnaud.mouiche@invoxia.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Caleb Crome <caleb@crome.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_ssi.c