linux-yocto/sound/soc
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
..
adi
amd ASoC: amd: yc: add quirk for Acer Nitro ANV15-41 internal mic 2025-07-17 18:35:20 +02:00
apple ASoC: apple: mca: Constrain channels according to TDM mask 2025-06-19 15:28:06 +02:00
atmel ASoC: atmel: mchp-pdmc: Skip ALSA restoration if substream runtime is uninitialized 2024-10-10 11:57:19 +02:00
au1x ASoC: allow module autoloading for table db1200_pids 2024-09-30 16:25:07 +02:00
bcm
cirrus
codecs ASoC: cs35l56: probe() should fail if the device ID is not recognized 2025-07-17 18:35:08 +02:00
dwc ASoC: dwc: always enable/disable i2s irqs 2025-04-25 10:45:39 +02:00
fsl ASoC: fsl_sai: Force a software reset when starting in consumer mode 2025-07-24 08:53:21 +02:00
generic ASoC: simple-card-utils.c: add missing dlc->of_node 2025-03-22 12:50:42 -07:00
google ASoC: google: fix module autoloading 2024-09-30 16:25:10 +02:00
hisilicon
img
intel ASoC: Intel: avs: Verify content returned by parse_int_array() 2025-06-19 15:28:35 +02:00
jz4740
kirkwood
loongson ASoC: loongson: Fix component check failed on FDT systems 2024-11-01 01:58:31 +01:00
mediatek ASoC: mediatek: mt8188: Add reference for dmic clocks 2025-06-04 14:42:05 +02:00
meson ASoC: meson: meson-card-utils: use of_property_present() for DT parsing 2025-06-27 11:08:43 +01:00
mxs
pxa
qcom ASoC: qcom: sdm845: Add error handling in sdm845_slim_snd_hw_params() 2025-06-27 11:08:43 +01:00
rockchip ASoC: rockchip: i2s-tdm: fix shift config for SND_SOC_DAIFMT_DSP_[AB] 2025-02-27 04:10:47 -08:00
samsung ASoC: samsung: Add missing depends on I2C 2025-02-01 18:37:52 +01:00
sh ASoC: rsnd: adjust convert rate limitation 2025-03-22 12:50:42 -07:00
sof ASoC: SOF: ipc4-pcm: Adjust pipeline_list->pipelines allocation type 2025-06-19 15:28:05 +02:00
spear
sprd
starfive
sti
stm ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() 2024-12-09 10:31:39 +01:00
sunxi ASoC: sun4i-codec: support hp-det-gpios property 2025-06-04 14:41:59 +02:00
tegra ASoC: tegra210_ahub: Add check to of_device_get_match_data() 2025-06-27 11:08:52 +01:00
ti ASoC: ti: omap-hdmi: Re-add dai_link->platform to fix card init 2025-06-19 15:28:35 +02:00
uniphier
ux500
xilinx
xtensa
Kconfig
Makefile
soc-ac97.c
soc-acpi.c
soc-card.c
soc-component.c
soc-compress.c
soc-core.c ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties 2025-05-09 09:44:03 +02:00
soc-dai.c ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() 2025-06-04 14:42:08 +02:00
soc-dapm.c
soc-devres.c
soc-generic-dmaengine-pcm.c
soc-jack.c
soc-link.c
soc-ops.c ASoC: ops: Enforce platform maximum on initial value 2025-06-04 14:42:08 +02:00
soc-pcm.c ASoC: soc-pcm: Fix hw_params() and DAPM widget sequence 2025-05-09 09:43:56 +02:00
soc-topology-test.c
soc-topology.c ASoC: topology: Properly initialize soc_enum values 2024-09-12 11:11:35 +02:00
soc-utils-test.c
soc-utils.c