Make ALSA profiles stick around and update their availability if the HDMI ELD changes. This alters the presence of card profiles quite dramatically. Specifically, the existing autogeneration of profiles generates a large set of input/output mapping combinations and all of these combinations are reported by the API, marked as unavailable. To give an idea of the consequences, here is what pavucontrol looks like with this patch: https://people.collabora.com/~rah/pavucontrol-unavailable-profiles.png Similarly, here is the output of "pactl list cards": https://people.collabora.com/~rah/pactl-list-cards-output.txt The patch could be reworked to add another layer so that only available profiles are exposed through the existing mechanisms but this would presumably require new API events for the addition and removal of profiles. Bob Ham (1): alsa: Make profiles' availability dynamic src/modules/alsa/alsa-mixer.c | 349 +++++++++++++++--------------------- src/modules/alsa/alsa-mixer.h | 19 +- src/modules/alsa/alsa-sink.c | 13 +- src/modules/alsa/alsa-source.c | 13 +- src/modules/alsa/alsa-ucm.c | 118 ++++-------- src/modules/alsa/alsa-ucm.h | 1 + src/modules/alsa/alsa-util.c | 112 ++++++++++-- src/modules/alsa/alsa-util.h | 17 ++ src/modules/alsa/module-alsa-card.c | 93 +++++++++- src/pulsecore/card.c | 54 ++++-- src/pulsecore/card.h | 2 + 11 files changed, 432 insertions(+), 359 deletions(-) -- 2.1.4