diff options
author | Arun Raghavan <arun@asymptotic.io> | 2025-06-26 16:08:25 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2025-06-30 00:10:26 +0300 |
commit | dc78f7e59169d3f0e6c3c95d23dc8e55e95741e2 (patch) | |
tree | f1c6b2f335f1b8424307587c96028de367bd4139 /net/lapb/lapb_timer.c | |
parent | 960aed31eedbaeb2e47b1bc485b462fd38a53311 (diff) | |
download | linux-dc78f7e59169d3f0e6c3c95d23dc8e55e95741e2.tar.xz |
ASoC: fsl_sai: Force a software reset when starting in consumer mode
On an imx8mm platform with an external clock provider, when running the
receiver (arecord) and triggering an xrun with xrun_injection, we see a
channel swap/offset. This happens sometimes when running only the
receiver, but occurs reliably if a transmitter (aplay) is also
concurrently running.
It seems that the SAI loses track of frame sync during the trigger stop
-> trigger start cycle that occurs during an xrun. Doing just a FIFO
reset in this case does not suffice, and only a software reset seems to
get it back on track.
This looks like the same h/w bug that is already handled for the
producer case, so we now do the reset unconditionally on config disable.
Signed-off-by: Arun Raghavan <arun@asymptotic.io>
Reported-by: Pieterjan Camerlynck <p.camerlynck@televic.com>
Fixes: 3e3f8bd56955 ("ASoC: fsl_sai: fix no frame clk in master mode")
Cc: stable@vger.kernel.org
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Link: https://patch.msgid.link/20250626130858.163825-1-arun@arunraghavan.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions