linux/sound/core
Jai Luthra e8343410dd
ALSA: dmaengine: Synchronize dma channel after drop()
Sometimes the stream may be stopped due to XRUN events, in which case
the userspace can call snd_pcm_drop() and snd_pcm_prepare() to stop and
start the stream again.

In these cases, we must wait for the DMA channel to synchronize before
marking the stream as prepared for playback, as the DMA channel gets
stopped by drop() without any synchronization. Make sure the ALSA core
synchronizes the DMA channel by adding a sync_stop() hook.

Reviewed-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Signed-off-by: Jai Luthra <j-luthra@ti.com>
Link: https://lore.kernel.org/r/20240611-asoc_next-v3-1-fcfd84b12164@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-06-11 17:13:31 +01:00
..
oss ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
seq ALSA: seq: ump: Fix swapped song position pointer data 2024-05-31 09:51:44 +02:00
.kunitconfig ALSA: core: add kunitconfig 2024-03-17 09:36:45 +01:00
compress_offload.c ALSA: compress_offload: Use guard() for locking 2024-02-28 15:01:20 +01:00
control_compat.c ALSA: control: Use guard() for locking 2024-02-28 15:01:21 +01:00
control_led.c - Core Frameworks 2024-05-22 10:49:54 -07:00
control.c ALSA: control: Fix unannotated kfree() cleanup 2024-03-20 07:30:48 +01:00
ctljack.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
device.c ALSA: core: Fix missing return value comments for kernel docs 2022-07-13 13:42:38 +02:00
hrtimer.c ALSA: hrtimer: Use guard() for locking 2024-02-28 15:01:20 +01:00
hwdep_compat.c ALSA: compat_ioctl: avoid compat_alloc_user_space 2020-09-21 10:37:07 +02:00
hwdep.c ALSA: hwdep: Move put_user() call out of scoped_guard() in snd_hwdep_control_ioctl() 2024-03-01 18:10:57 +01:00
info_oss.c ALSA: info: Use guard() for locking 2024-02-28 15:01:21 +01:00
info.c ALSA: info: Use guard() for locking 2024-02-28 15:01:21 +01:00
init.c ALSA: core: Remove debugfs at disconnection 2024-05-27 09:28:21 +02:00
isadma.c sound updates for 6.0-rc1 2022-08-06 10:19:51 -07:00
jack.c ALSA: core: Remove debugfs at disconnection 2024-05-27 09:28:21 +02:00
Kconfig ALSA: control-led: Integrate mute led trigger 2024-03-28 10:39:50 +00:00
Makefile ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
memalloc_local.h ALSA: memalloc: remove snd_dma_sg_ops declaration 2022-09-09 09:09:40 +02:00
memalloc.c ALSA: memalloc: Workaround for Xen PV 2023-01-27 09:16:24 +01:00
memory.c ALSA: core: Add memory copy helpers between iov_iter and iomem 2023-08-18 12:18:16 +02:00
misc.c ALSA: core: Add async signal helpers 2022-07-29 12:57:10 +02:00
pcm_compat.c ALSA: pcm: Use guard() for PCM stream locks 2024-02-28 15:01:22 +01:00
pcm_dmaengine.c ALSA: dmaengine: Synchronize dma channel after drop() 2024-06-11 17:13:31 +01:00
pcm_drm_eld.c drm/edid: include drm_eld.h only where required 2023-11-09 16:47:31 +02:00
pcm_iec958.c ALSA: iec958: Split status creation and fill 2021-06-08 17:05:41 +02:00
pcm_lib.c ALSA: pcm: Use guard() for PCM stream locks 2024-02-28 15:01:22 +01:00
pcm_local.h ALSA: pcm: Revert "ALSA: pcm: rewrite snd_pcm_playback_silence()" 2023-05-05 18:23:48 +02:00
pcm_memory.c ALSA: pcm: Use guard() for locking 2024-02-28 15:01:22 +01:00
pcm_misc.c ALSA: pcm: Test for "silence" field in struct "pcm_format_data" 2022-04-11 09:27:56 +02:00
pcm_native.c ALSA: pcm: add support for 705.6kHz and 768kHz sample rates 2024-04-18 09:30:34 +02:00
pcm_param_trace.h
pcm_timer.c
pcm_trace.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
pcm.c ALSA: pcm: Use guard() for locking 2024-02-28 15:01:22 +01:00
rawmidi_compat.c ALSA: rawmidi: Replace with __packed attribute 2023-10-26 09:42:55 +02:00
rawmidi.c ALSA: rawmidi: Use guard() for locking 2024-02-28 15:01:21 +01:00
seq_device.c ALSA: seq: make snd_seq_bus_type const 2024-02-15 13:48:03 +01:00
sound_kunit.c ALSA: kunit: Add missing module descriptions 2024-05-09 10:13:07 +02:00
sound_oss.c ALSA: core: Use guard() for locking 2024-02-28 15:01:21 +01:00
sound.c ALSA: core: Use guard() for locking 2024-02-28 15:01:21 +01:00
timer_compat.c ALSA: timer: Use guard() for locking 2024-02-28 15:01:20 +01:00
timer.c ALSA: timer: Set lower bound of start tick time 2024-05-16 16:00:08 +02:00
ump_convert.c ALSA: ump: Don't clear bank selection after sending a program change 2024-05-29 10:39:50 +02:00
ump.c ALSA: ump: Set default protocol when not given explicitly 2024-05-29 18:49:00 +02:00
vmaster.c ALSA: vmaster: Use automatic cleanup of kfree() 2024-02-23 10:57:30 +01:00