linux-kernelorg-stable/sound/soc
Claudiu Beznea 22897e5686
ASoC: renesas: rz-ssi: Use proper dma_buffer_pos after resume
When the driver supports DMA, it enqueues four DMA descriptors per
substream before the substream is started. New descriptors are enqueued in
the DMA completion callback, and each time a new descriptor is queued, the
dma_buffer_pos is incremented.

During suspend, the DMA transactions are terminated. There might be cases
where the four extra enqueued DMA descriptors are not completed and are
instead canceled on suspend. However, the cancel operation does not take
into account that the dma_buffer_pos was already incremented.

Previously, the suspend code reinitialized dma_buffer_pos to zero, but this
is not always correct.

To avoid losing any audio periods during suspend/resume and to prevent
clip sound, save the completed DMA buffer position in the DMA callback and
reinitialize dma_buffer_pos on resume.

Cc: stable@vger.kernel.org
Fixes: 1fc778f7c8 ("ASoC: renesas: rz-ssi: Add suspend to RAM support")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://patch.msgid.link/20251029141134.2556926-3-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-10-29 14:54:46 +00:00
..
adi
amd
apple
atmel
au1x
bcm
cirrus
codecs ASoC: rt721: fix prepare clock stop failed 2025-10-27 12:17:05 +00:00
dwc
fsl ASoC: fsl_sai: Fix sync error in consumer mode 2025-10-28 10:22:12 +00:00
generic
google
hisilicon
img
intel
jz4740
kirkwood
loongson
mediatek
meson
mxs
pxa
qcom
renesas ASoC: renesas: rz-ssi: Use proper dma_buffer_pos after resume 2025-10-29 14:54:46 +00:00
rockchip
samsung
sdca
sdw_utils ASoC: soc_sdw_utils: remove cs42l43 component_name 2025-10-28 10:22:13 +00:00
sof
spear
sprd
starfive
sti
stm
sunxi
tegra
ti
uniphier
ux500
xilinx
xtensa
Kconfig
Makefile
soc-ac97.c
soc-acpi.c
soc-card-test.c
soc-card.c
soc-component.c
soc-compress.c
soc-core.c
soc-dai.c
soc-dapm.c
soc-devres.c
soc-generic-dmaengine-pcm.c
soc-jack.c
soc-link.c
soc-ops-test.c
soc-ops.c
soc-pcm.c
soc-topology-test.c
soc-topology.c
soc-usb.c
soc-utils-test.c
soc-utils.c