pipewire/spa/plugins/alsa/acp
Wim Taymans c7ca024607 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).

Fixes: a9cc1373e2a7 ("alsa: ucm - update the mixer path also after volume probe")
Signed-off-by: Hector Martin <marcan@marcan.st>
2023-03-20 18:35:15 +01:00
..
acp.c alsa-util: Perform format and rate detection before setting HW params 2023-03-20 18:22:09 +01:00
acp.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
alsa-mixer.c alsa-util: Perform format and rate detection before setting HW params 2023-03-20 18:22:09 +01:00
alsa-mixer.h alsa-ucm: Let profiles know their associated UCM verb 2023-03-20 15:18:12 +01:00
alsa-ucm.c alsa: ucm: Fix spurious mixer path removal on initial profile set 2023-03-20 18:35:15 +01:00
alsa-ucm.h alsa-ucm: Fix more instances of profile-verb conflation 2023-03-20 18:33:36 +01:00
alsa-util.c alsa-util: Fix pa_alsa_get_supported_formats fallback. 2023-03-20 18:24:20 +01:00
alsa-util.h alsa-util: Perform format and rate detection before setting HW params 2023-03-20 18:22:09 +01: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 build warning 2021-10-25 07:26:15 +00:00
compat.h alsa-util: Perform format and rate detection before setting HW params 2023-03-20 18:22:09 +01: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 alsa-ucm: Rewrite conformant device group generation with idxsets 2023-03-20 16:28:32 +01: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 acp: add support for soft volume 2020-07-06 17:22:42 +02:00