pipewire/spa/plugins/alsa
Martin Geier 9afa0cd270 alsa-pcm: enable interrupts after alsa recovery
Interrupts are disabled in alsa_irq_wakeup_event -> playback_ready method
to not produce another wakeups when waiting for a new data. Interrupts are
enabled again when a new data arrives in a method spa_alsa_write.
In rare cases, when there is multiple streams providing data and one of
them is disconnected, a new data fails to be delivered and the spa_alsa_write
is not called. Not providing data produces underrun and alsa-pcm invokes
recovery process. Recovery process starts a new playback, but without interrupts
enabled is graph not triggered and new data are not delivered (to enable
interrupts). Recovery process keeps running in loop.
Now the interrupts are enabled again after the recovery and the starvation
should not occur.

Signed-off-by: Martin Geier <martin.geier@streamunlimited.com>
2025-06-10 16:28:46 +02:00
..
acp *: unify config.h handling 2025-05-30 10:24:13 +00:00
mixer acp: Sennheiser GSX stereo profile 2025-03-20 12:24:56 +00:00
90-pipewire-alsa.rules 90-pipewire-alsa.rules: Check firewire before pci 2025-02-07 16:43:52 +01:00
acp-tool.c spa: acp: make spa-acp-tool debug output easier to read 2025-03-09 16:15:56 +02:00
alsa-acp-device.c acp: remove channel limit from API 2025-04-04 15:46:03 +02:00
alsa-compress-offload-device.c spa: alsa: avoid potential uninitialized variable use 2024-09-18 19:54:13 +00:00
alsa-compress-offload-sink.c loop: add method to run a function with the lock 2025-05-29 10:17:16 +02:00
alsa-pcm-device.c spa: alsa: avoid potential uninitialized variable use 2024-09-18 19:54:13 +00:00
alsa-pcm-sink.c spa: acp: get and emit UCM information for SplitPCM devices 2024-12-21 16:03:19 +02:00
alsa-pcm-source.c spa: acp: get and emit UCM information for SplitPCM devices 2024-12-21 16:03:19 +02:00
alsa-pcm.c alsa-pcm: enable interrupts after alsa recovery 2025-06-10 16:28:46 +02:00
alsa-pcm.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
alsa-seq-bridge.c Use "8 bit raw midi" for control ports again 2025-05-23 16:46:13 +02:00
alsa-seq.c loop: add method to run a function with the lock 2025-05-29 10:17:16 +02:00
alsa-seq.h *: unify config.h handling 2025-05-30 10:24:13 +00:00
alsa-udev.c alsa: add option to skip the busy check 2024-03-22 12:42:48 +01:00
alsa.c meson: fix build with missing libudev-devel 2024-02-06 11:49:40 +01:00
alsa.h spa: remove unnecessary indirection for some spa_log_topics 2023-10-06 13:08:24 +00:00
compress-offload-api-util.c alsa-compress-offload: Add device object and udev based autodetection 2023-09-02 08:28:22 +00:00
compress-offload-api-util.h alsa-compress-offload: Add device object and udev based autodetection 2023-09-02 08:28:22 +00:00
compress-offload-api.c alsa-compress-offload-sink: major sink rework 2023-02-24 14:15:13 +01:00
compress-offload-api.h alsa-compress-offload: Add device object and udev based autodetection 2023-09-02 08:28:22 +00:00
meson.build meson: fix build with missing libudev-devel 2024-02-06 11:49:40 +01:00
test-hw-params.c treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
test-timer.c fix compilation some more 2024-06-18 15:41:12 +02:00