pipewire/spa/plugins/alsa
Peter Ujfalusi ba7790123c alsa: Use the minimum period size as headroom for SOF cards
Configure the headroom to be equal of the minimum allowed period size for
the configuration.

This is desirable when the ALSA driver's hw_ptr is 'jumpy' due to
underplaying hardware architecture, like SOF.
In case of SOF the DSP firmware will burst read at stream start to fill
it's host facing buffer and later settles to a constant pace. The minimal
period size is constrained by the driver to cover the initial burst and
settling time of the hw_ptr.

Guard this mode of working with a new boolean flag, which is only enabled
for SOF cards, kept it disabled for other cards to avoid any unforeseen
side effects.

Even if the use-period-size-min-as-headroom is set to true, the manual
headroom configuration will take precedence to allow experimentation.

Link: https://github.com/thesofproject/linux/issues/5284
Link: https://github.com/thesofproject/sof/issues/9695#issuecomment-2569033847
Link: https://github.com/thesofproject/sof/issues/10172
Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4489
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2025-09-29 17:32:33 +02:00
..
acp alsa: force IRQ scheduling for firewire in pro-audio profile 2025-09-10 10:28:34 +02:00
mixer alsa-card-profiles: move HDMI/AC3 profiles to separate profile set 2024-11-23 14:58:17 +02:00
90-pipewire-alsa.rules Map Razer BlackShark v3 ACP 2025-09-10 10:12:37 +02:00
acp-tool.c spa: acp: make spa-acp-tool debug output easier to read 2025-03-10 09:24:29 +01:00
alsa-acp-device.c alsa: report extra latency for FireWire drivers 2025-09-10 10:28:42 +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 Fix typos 2024-05-22 09:19:34 +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: Use the minimum period size as headroom for SOF cards 2025-09-29 17:32:33 +02:00
alsa-pcm.h alsa: Use the minimum period size as headroom for SOF cards 2025-09-29 17:32:33 +02:00
alsa-seq-bridge.c alsa: remove UMP flag from control format 2025-05-23 17:00:16 +02:00
alsa-seq.c alsa: don't log unknown events with info 2025-06-25 10:43:18 +02:00
alsa-seq.h alsa: remove UMP flag from control format 2025-05-23 17:00:16 +02:00
alsa-udev.c alsa-udev: support alsa.use-ucm 2025-06-25 10:41:51 +02: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