linux/sound
Shengjiu Wang 6a7db25aad ALSA: dmaengine_pcm: terminate dmaengine before synchronize
When dmaengine supports pause function, in suspend state,
dmaengine_pause() is called instead of dmaengine_terminate_async(),

In end of playback stream, the runtime->state will go to
SNDRV_PCM_STATE_DRAINING, if system suspend & resume happen
at this time, application will not resume playback stream, the
stream will be closed directly, the dmaengine_terminate_async()
will not be called before the dmaengine_synchronize(), which
violates the call sequence for dmaengine_synchronize().

This behavior also happens for capture streams, but there is no
SNDRV_PCM_STATE_DRAINING state for capture. So use
dmaengine_tx_status() to check the DMA status if the status is
DMA_PAUSED, then call dmaengine_terminate_async() to terminate
dmaengine before dmaengine_synchronize().

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/1718851218-27803-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-06-25 11:55:45 +02:00
..
ac97 ALSA: ac97: bus: Add missing module description 2024-05-09 10:13:07 +02:00
aoa ALSA: aoa: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:08 +02:00
arm ASoC: Updates for v6.10 2024-05-13 11:39:49 +02:00
atmel ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
core ALSA: dmaengine_pcm: terminate dmaengine before synchronize 2024-06-25 11:55:45 +02:00
drivers ALSA: pcmtest: Add missing module descriptions 2024-05-09 10:13:07 +02:00
firewire ALSA: firewire: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:03 +02:00
hda ALSA/hda: intel-dsp-config: Document AVS as dsp_driver option 2024-06-13 14:11:43 +02:00
i2c ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
isa ALSA: isa: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:48 +02:00
mips ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
oss sound/oss/dmasound: add missing MODULE_DESCRIPTION() macro 2024-06-18 11:55:53 +02:00
parisc ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
pci ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx 2024-06-25 11:53:56 +02:00
pcmcia ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
ppc ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
sh ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
soc ASoC: SOF: ipc4-topology: Fix nhlt configuration blob 2024-05-30 14:33:14 +01:00
sparc ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
spi ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
synth ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
usb ALSA: usb-audio: Fix for sampling rates support for Mbox3 2024-05-16 16:01:55 +02:00
virtio virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
x86 ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
xen ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
ac97_bus.c ALSA: ac97: legacy: Add missing module description 2024-05-09 10:13:07 +02:00
Kconfig This pull request contains the following changes for UML: 2023-09-04 11:32:21 -07:00
last.c
Makefile ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
sound_core.c sound: make all 'class' structures const 2023-06-21 07:29:10 +02:00