linux-yocto/sound
Arun Raghavan b9e50a5169 ASoC: fsl_sai: Force a software reset when starting in consumer mode
commit dc78f7e591 upstream.

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: 3e3f8bd569 ("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-24 08:53:21 +02:00
..
ac97
aoa
arm
atmel
core ALSA: pcm: Fix race of buffer access at PCM OSS layer 2025-06-04 14:42:19 +02:00
drivers
firewire ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init() 2024-11-14 13:19:33 +01:00
hda ASoC: Intel: sst: Support LPE0F28 ACPI HID 2024-12-09 10:31:36 +01:00
i2c
isa ALSA: sb: Force to disable DMAs once when DMA mode is changed 2025-07-10 16:03:15 +02:00
mips
oss
parisc
pci ALSA: hda/realtek: Add quirk for ASUS ROG Strix G712LWS 2025-07-24 08:53:12 +02:00
pcmcia
ppc
sh ALSA: sh: SND_AICA should depend on SH_DMA_API 2025-05-22 14:12:17 +02:00
soc ASoC: fsl_sai: Force a software reset when starting in consumer mode 2025-07-24 08:53:21 +02:00
sparc
spi
synth
usb ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3() 2025-07-06 11:00:11 +02:00
virtio sound/virtio: Fix cancel_sync warnings on uninitialized work_structs 2025-05-02 07:50:54 +02:00
x86
xen
ac97_bus.c
Kconfig sound: Make CONFIG_SND depend on INDIRECT_IOMEM instead of UML 2024-11-17 15:08:56 +01:00
last.c
Makefile
sound_core.c