ASoC: meson: axg-tdm-interface: manage formatters in trigger
authorJerome Brunet <jbrunet@baylibre.com>
Fri, 26 Apr 2024 15:29:40 +0000 (17:29 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 29 Apr 2024 14:48:49 +0000 (23:48 +0900)
commitf949ed458ad15a00d41b37c745ebadaef171aaae
tree31b4ebd51f8958d8a788bee249168fab917a78b3
parentdcba52ace7d4c12e2c8c273eff55ea03a84c8baf
ASoC: meson: axg-tdm-interface: manage formatters in trigger

So far, the formatters have been reset/enabled using the .prepare()
callback. This was done in this callback because walking the formatters use
a mutex. A mutex is used because formatter handling require dealing
possibly slow clock operation.

With the support of non-atomic, .trigger() callback may be used which also
allows to properly enable and disable formatters on start but also
pause/resume.

This solve a random shift on TDMIN as well repeated samples on for TDMOUT.

Fixes: d60e4f1e4be5 ("ASoC: meson: add tdm interface driver")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20240426152946.3078805-4-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/meson/axg-tdm-interface.c