diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2016-08-17 14:31:25 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2016-08-22 16:43:26 +0000 |
commit | 60f9d69e016b11c468c98ea75ba0a60c44afbbc4 (patch) | |
tree | ecb49581a9e41a37943c22cd9ef3f63451b20ee7 /import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch | |
parent | e18c61205e0234b03697129c20cc69c9b3940efc (diff) | |
download | talos-openbmc-60f9d69e016b11c468c98ea75ba0a60c44afbbc4.tar.gz talos-openbmc-60f9d69e016b11c468c98ea75ba0a60c44afbbc4.zip |
yocto-poky: Move to import-layers subdir
We are going to import additional layers, so create a subdir to
hold all of the layers that we import with git-subtree.
Change-Id: I6f732153a22be8ca663035c518837e3cc5ec0799
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch')
-rw-r--r-- | import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch new file mode 100644 index 000000000..e0efa70f3 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch @@ -0,0 +1,83 @@ +From 690d567e298f6687b61c82660b051df5b25482ee Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen <tanuk@iki.fi> +Date: Fri, 23 Oct 2015 13:37:11 +0300 +Subject: [PATCH 4/4] alsa: set availability for (some) unavailable profiles + +The alsa card hasn't so far set any availability for profiles. That +caused an issue with some HDMI hardware: the sound card has two HDMI +outputs, but only the second of them is actually usable. The +unavailable port is marked as unavailable and the available port is +marked as available, but this information isn't propagated to the +profile availability. Without profile availability information, the +initial profile policy picks the unavailable one, since it has a +higher priority value. + +This patch adds simple logic for marking some profiles unavailable: +if the profile only contains unavailable ports, the profile is +unavailable too. This can be improved in the future so that if a +profile contains sinks or sources that only contain unavailable ports, +the profile should be marked as unavailable. Implementing that +requires adding more information about the sinks and sources to +pa_card_profile, however. + +BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 + +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +Rebased on 8.0. + +Upstream-Status: Denied [The patch set needs some work to be accepted. +The review thread: +http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> +--- + src/modules/alsa/module-alsa-card.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c +index fe240f0..bdbdc12 100644 +--- a/src/modules/alsa/module-alsa-card.c ++++ b/src/modules/alsa/module-alsa-card.c +@@ -366,6 +366,8 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + void *state; + pa_alsa_jack *jack; + struct temp_port_avail *tp, *tports; ++ pa_device_port *port; ++ pa_card_profile *profile; + + pa_assert(u); + +@@ -412,6 +414,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + pa_device_port_set_available(tp->port, tp->avail); + + pa_xfree(tports); ++ ++ /* Update profile availabilities. The logic could be improved; for now we ++ * only set obviously unavailable profiles (those that contain only ++ * unavailable ports) to PA_AVAILABLE_NO and all others to ++ * PA_AVAILABLE_UNKNOWN. */ ++ PA_HASHMAP_FOREACH(profile, u->card->profiles, state) { ++ void *state2; ++ pa_available_t available = PA_AVAILABLE_NO; ++ ++ /* Don't touch the "off" profile. */ ++ if (pa_hashmap_size(profile->ports) == 0) ++ continue; ++ ++ PA_HASHMAP_FOREACH(port, profile->ports, state2) { ++ if (port->available != PA_AVAILABLE_NO) { ++ available = PA_AVAILABLE_UNKNOWN; ++ break; ++ } ++ } ++ ++ pa_card_profile_set_available(profile, available); ++ } ++ + return 0; + } + +-- +2.7.0 + |