diff --git a/packages/audio/alsa-lib/meta b/packages/audio/alsa-lib/meta index 4b71f3839a..a38b2fa16b 100644 --- a/packages/audio/alsa-lib/meta +++ b/packages/audio/alsa-lib/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="alsa-lib" -PKG_VERSION="1.0.26" +PKG_VERSION="1.0.27" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/audio/alsa-lib/patches/alsa-lib-990.01-control_Simplify_usingsnd_config_get_bool.patch b/packages/audio/alsa-lib/patches/alsa-lib-990.01-control_Simplify_usingsnd_config_get_bool.patch deleted file mode 100644 index 3d679bf07e..0000000000 --- a/packages/audio/alsa-lib/patches/alsa-lib-990.01-control_Simplify_usingsnd_config_get_bool.patch +++ /dev/null @@ -1,87 +0,0 @@ -From: Takashi Iwai suse.de> -Subject: [PATCH RFC 1/2] control: Simplify using snd_config_get_bool() -Newsgroups: gmane.linux.alsa.devel -Date: 2012-10-12 15:25:23 GMT (17 weeks, 8 hours and 26 minutes ago) -snd_config_get_bool() was improved to parse also ASCII strings now, -so we don't have to open-code the boolean parser in -src/control/setup.c any longer. - -Signed-off-by: Takashi Iwai suse.de> ---- - src/control/setup.c | 37 ++++++------------------------------- - 1 file changed, 6 insertions(+), 31 deletions(-) - -diff --git a/src/control/setup.c b/src/control/setup.c -index eecda45..bd3599d 100644 ---- a/src/control/setup.c -+++ b/src/control/setup.c -@@ -400,7 +400,6 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - { - snd_config_t *conf; - snd_config_iterator_t i, next; -- char *tmp; - int iface = SND_CTL_ELEM_IFACE_MIXER; - const char *name = NULL; - long index = 0; -@@ -464,33 +463,17 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - continue; - } - if (strcmp(id, "lock") == 0) { -- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { -- SNDERR("field %s has an invalid type", id); -- goto _err; -- } -- err = snd_config_get_bool_ascii(tmp); -- if (err < 0) { -- SNDERR("field %s is not a boolean", id); -- free(tmp); -+ err = snd_config_get_bool(n); -+ if (err < 0) - goto _err; -- } - lock = err; -- free(tmp); - continue; - } - if (strcmp(id, "preserve") == 0) { -- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { -- SNDERR("field %s has an invalid type", id); -- goto _err; -- } -- err = snd_config_get_bool_ascii(tmp); -- if (err < 0) { -- SNDERR("field %s is not a boolean", id); -- free(tmp); -+ err = snd_config_get_bool(n); -+ if (err < 0) - goto _err; -- } - preserve = err; -- free(tmp); - continue; - } - if (strcmp(id, "value") == 0) { -@@ -502,18 +485,10 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - continue; - } - if (strcmp(id, "optional") == 0) { -- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { -- SNDERR("field %s has an invalid type", id); -- goto _err; -- } -- err = snd_config_get_bool_ascii(tmp); -- if (err < 0) { -- SNDERR("field %s is not a boolean", id); -- free(tmp); -+ err = snd_config_get_bool(n); -+ if (err < 0) - goto _err; -- } - optional = err; -- free(tmp); - continue; - } - SNDERR("Unknown field %s", id); --- -1.7.12.2 - diff --git a/packages/audio/alsa-lib/patches/alsa-lib-990.02-Add-workaround-for-conflicting-IEC958-controls-for-H.patch b/packages/audio/alsa-lib/patches/alsa-lib-990.02-Add-workaround-for-conflicting-IEC958-controls-for-H.patch deleted file mode 100644 index 3868b0b7da..0000000000 --- a/packages/audio/alsa-lib/patches/alsa-lib-990.02-Add-workaround-for-conflicting-IEC958-controls-for-H.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 91e42790dd0a9489a94e3784d220d76ad2d98b36 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Sat, 16 Feb 2013 18:29:59 +0200 -Subject: [PATCH] Add workaround for conflicting IEC958 controls for HD-audio - -When both an SPDIF and an HDMI output are present on HD-audio, both -try to access IEC958 controls with index=0 although one of them must -be wrong. For avoiding this conflict, the recent kernel code (3.9 and -3.8 stable) moves the IEC958 controls of an SPDIF with index=16 once -when the conflict happens. - -In this patch, the corresponding support is added in alsa-lib side. -The new "skip_rest" boolean flag is added to the hooked element -definition which indicates that the rest of element array will be -ignored once when this element is present and evaluated. With this -new flag, the HD-audio config takes device=1 primarily, then take -device=0 as fallback. - -Signed-off-by: Takashi Iwai ---- - src/conf/cards/HDA-Intel.conf | 16 ++++++++++++++++ - src/control/setup.c | 19 ++++++++++++++++--- - 2 files changed, 32 insertions(+), 3 deletions(-) - -diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf -index d4f2667..3957c12 100644 ---- a/src/conf/cards/HDA-Intel.conf -+++ b/src/conf/cards/HDA-Intel.conf -@@ -113,6 +113,22 @@ HDA-Intel.pcm.iec958.0 { - hook_args [ - { - name "IEC958 Playback Default" -+ index 16 -+ optional true -+ lock true -+ preserve true -+ value [ $AES0 $AES1 $AES2 $AES3 ] -+ } -+ { -+ name "IEC958 Playback Switch" -+ index 16 -+ optional true -+ value true -+ # if this element is present, skip the rest -+ skip_rest true -+ } -+ { -+ name "IEC958 Playback Default" - lock true - preserve true - value [ $AES0 $AES1 $AES2 $AES3 ] -diff --git a/src/control/setup.c b/src/control/setup.c -index eecda45..72facb0 100644 ---- a/src/control/setup.c -+++ b/src/control/setup.c -@@ -396,7 +396,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf, - return 0; - } - --static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data) -+static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data, int *quit) - { - snd_config_t *conf; - snd_config_iterator_t i, next; -@@ -409,6 +409,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - int lock = 0; - int preserve = 0; - int optional = 0; -+ int skip_rest = 0; - snd_config_t *value = NULL, *mask = NULL; - snd_sctl_elem_t *elem = NULL; - int err; -@@ -516,6 +517,13 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - free(tmp); - continue; - } -+ if (strcmp(id, "skip_rest") == 0) { -+ err = snd_config_get_bool(n); -+ if (err < 0) -+ goto _err; -+ skip_rest = err; -+ continue; -+ } - SNDERR("Unknown field %s", id); - return -EINVAL; - } -@@ -564,6 +572,9 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - if (! optional) - SNDERR("Cannot obtain info for CTL elem (%s,'%s',%li,%li,%li): %s", snd_ctl_elem_iface_name(iface), name, index, device, subdevice, snd_strerror(err)); - goto _err; -+ } else { -+ if (skip_rest) -+ *quit = 1; - } - snd_ctl_elem_value_set_id(elem->val, elem->id); - snd_ctl_elem_value_set_id(elem->old, elem->id); -@@ -619,7 +630,7 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd - { - snd_sctl_t *h; - snd_config_iterator_t i, next; -- int err; -+ int err, quit = 0; - - assert(sctl); - assert(handle); -@@ -639,11 +650,13 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd - INIT_LIST_HEAD(&h->elems); - snd_config_for_each(i, next, conf) { - snd_config_t *n = snd_config_iterator_entry(i); -- err = add_elem(h, n, private_data); -+ err = add_elem(h, n, private_data, &quit); - if (err < 0) { - free_elems(h); - return err; - } -+ if (quit) -+ break; - } - *sctl = h; - return 0; --- -1.7.10 - diff --git a/packages/audio/alsa-lib/patches/alsa-lib-1.0.26-001-asound.conf_configdir.patch b/packages/audio/alsa-lib/patches/alsa-lib-asound.conf_configdir.patch similarity index 100% rename from packages/audio/alsa-lib/patches/alsa-lib-1.0.26-001-asound.conf_configdir.patch rename to packages/audio/alsa-lib/patches/alsa-lib-asound.conf_configdir.patch diff --git a/packages/audio/alsa-lib/patches/alsa-lib-1.0.26-automake_1.13.patch b/packages/audio/alsa-lib/patches/alsa-lib-automake_1.13.patch similarity index 100% rename from packages/audio/alsa-lib/patches/alsa-lib-1.0.26-automake_1.13.patch rename to packages/audio/alsa-lib/patches/alsa-lib-automake_1.13.patch