pipewire/spa/plugins/alsa/acp
Hector Martin 9c868740c2 alsa: ucm: Fix spurious mixer path removal on initial profile set
The code that removes the mixer path if probing fails can be called in
the path that sets a non-off device profile on hotplug *before*
card->active_profile is updated, which results in spuriously removing
the mixer path. By this point, context->ucm->active_verb would be set
to the same as the profile name, so we can use that instead to avoid
the issue.

On Apple Silicon machines with the UCM profiles in the Asahi Linux repo,
this manifests as the headphones jack having hardware volume controls
*only* if PA is started with headphones connected and until they are
disconnected. Hotplugs end up triggering the bad codepath, and it falls
back to software volume (which is particularly a problem when the
hardware volume happens to be very low or 0 at that point).

Signed-off-by: Hector Martin <marcan@marcan.st>
Link: 3e038c6d88
2023-12-04 15:34:48 +00:00
..
acp.c alsa-util: Perform format and rate detection before setting HW params 2023-12-04 15:34:48 +00:00
acp.h acp: add support for hiding profiles and ports 2023-11-30 17:40:48 +01:00
alsa-mixer.c alsa-util: Perform format and rate detection before setting HW params 2023-12-04 15:34:48 +00:00
alsa-mixer.h Revert "alsa: UCM conflicting devices changes" 2023-04-12 13:05:08 +02:00
alsa-ucm.c alsa: ucm: Fix spurious mixer path removal on initial profile set 2023-12-04 15:34:48 +00:00
alsa-ucm.h Revert "alsa: UCM conflicting devices changes" 2023-04-12 13:05:08 +02:00
alsa-util.c alsa-util: Fix pa_alsa_get_supported_formats fallback. 2023-12-04 15:34:48 +00:00
alsa-util.h alsa-util: Perform format and rate detection before setting HW params 2023-12-04 15:34:48 +00:00
array.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
card.h acp: add option to set Pro Audio channels 2023-01-31 15:59:39 +01:00
channelmap.h acp: don't mix non-AUX and AUX channels 2022-06-02 12:54:04 +02:00
compat.c spa: alsa: fix leaks in get_data_path() 2023-11-10 03:29:49 +01:00
compat.h alsa-util: Add more standard sample rates 2023-12-04 15:34:48 +00:00
conf-parser.c config.h is a local header, not a system one 2021-06-10 09:04:16 +10:00
conf-parser.h alsa-acp: Add libacp based card device 2020-07-06 12:20:09 +02:00
device-port.h Fix typos 2021-04-30 07:40:20 +00:00
dynarray.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
hashmap.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
idxset.h Revert "alsa: UCM conflicting devices changes" 2023-04-12 13:05:08 +02:00
llist.h alsa-acp: Add libacp based card device 2020-07-06 12:20:09 +02:00
meson.build treewide: meson.build: use dependency variable for SPA 2021-12-28 18:34:06 +01:00
proplist.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
volume.h alsa: get rid of non-portable isinf use 2023-08-31 10:37:22 +00:00