mirror of
https://git.yoctoproject.org/poky
synced 2026-02-15 21:23:04 +01:00
alsa-lib: 1.1.9 -> 1.2.1.2
Changelogs: https://alsa-project.org/wiki/Changes_v1.1.9_v1.2.1 https://alsa-project.org/wiki/Changes_v1.2.1_v1.2.1.1 https://alsa-project.org/wiki/Changes_v1.2.1.1_v1.2.1.2 This upgrade brings support for the new "UCM2" configuration format. Another big change is that the UCM and topology configuration files were moved to separate repositories, so those are removed from alsa-lib and will need to be packaged separately. The topology API was moved from libasound to a separate libatopology library. This seems like a recipe for regressions for applications that used to use libasound for the topology stuff, but I don't think there are many applications in existence that use the topology API. I hope the upstream knows what they are doing. Patches added: 0001-configure.ac-remove-an-unnecessary-libtool-fix.patch This fixes a failure during configure. 0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch 0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch Backports. I don't know if these are regression fixes, but since the UCM code was heavily worked on in this upgrade, it seems likely that these patches fix regressions. 0003-namehint-correct-the-args-check.patch 0004-namehint-improve-the-previous-patch-check-the-return.patch Backports. A change in alsa-plugins caused a regression in the pulse plugin, but that was actually due to a bug in alsa-lib, which is fixed by these patches. 0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch Backport. Fixes a regression with some Intel hardware. 0001-Fix-alsa-sound-.h-for-external-programs.patch 0001-uapi-Move-typedefs-from-uapi-to-sound.patch Backports. These fix build failures in alsa-tools. I removed alsa-doc from PACKAGES, because no files were assigned to it. (From OE-Core rev: 966890009b4dd81abb72534192c688dbd1195d00) Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
fd61f30c2a
commit
6593b950bb
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,50 @@
|
||||
From 01cd8cb6d594d7a12c67d21d689ebe0e347469c0 Mon Sep 17 00:00:00 2001
|
||||
From: Tanu Kaskinen <tanuk@iki.fi>
|
||||
Date: Fri, 20 Dec 2019 09:26:12 +0200
|
||||
Subject: [PATCH] configure.ac: remove an unnecessary libtool fix
|
||||
|
||||
This code was added in commit 75d393a563efb578c79364a277087c6326267f52
|
||||
without explaining why. I assume it was a mistake, since it looks like
|
||||
the libtool problem should have gone away a long time ago. The referenced
|
||||
wiki page https://wiki.debian.org/RpathIssue says:
|
||||
|
||||
Since libtool 1.5.2 (released 2004-01-25), on Linux libtool no
|
||||
longer sets RPATH for any directories in the dynamic linker search
|
||||
path, so this should no longer be an issue unless upstream used a
|
||||
really old version of libtool when creating their distribution
|
||||
tarball.
|
||||
|
||||
This code caused problems in OpenEmbedded, where the libtool script is
|
||||
named "x86_64-oe-linux-libtool" or similar rather than just "libtool",
|
||||
so the sed command failed with a file not found error. Rather than
|
||||
adapting the code to OpenEmbedded's peculiarities, it seems best to just
|
||||
remove the unnecessary code altogether.
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/alsa-project/alsa-lib/pull/19]
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
configure.ac | 11 -----------
|
||||
1 file changed, 11 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 119ef600..22a4a885 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -764,14 +764,3 @@ test "$build_seq" = "yes" && echo "#include <alsa/seq.h>" >> include/asoundlib.h
|
||||
test "$build_seq" = "yes" && echo "#include <alsa/seqmid.h>" >> include/asoundlib.h
|
||||
test "$build_seq" = "yes" && echo "#include <alsa/seq_midi_event.h>" >> include/asoundlib.h
|
||||
cat "$srcdir"/include/asoundlib-tail.h >> include/asoundlib.h
|
||||
-
|
||||
-dnl Taken from https://wiki.debian.org/RpathIssue
|
||||
-case $host in
|
||||
- *-*-linux-gnu)
|
||||
- AC_MSG_RESULT([Fixing libtool for -rpath problems.])
|
||||
- sed < libtool > libtool-2 \
|
||||
- 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
|
||||
- mv libtool-2 libtool
|
||||
- chmod 755 libtool
|
||||
- ;;
|
||||
-esac
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
From 59792f467b38d6a4c4dffdb30528f7fb03d23d96 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 20 Dec 2019 17:12:37 +0100
|
||||
Subject: [PATCH] uapi: Move typedefs from uapi to sound/*
|
||||
|
||||
For keeping uapi/*.h cleaner.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
include/sound/emu10k1.h | 9 +++++++++
|
||||
include/sound/hdsp.h | 10 ++++++++++
|
||||
include/sound/hdspm.h | 8 ++++++++
|
||||
include/sound/sb16_csp.h | 4 ++++
|
||||
include/sound/uapi/emu10k1.h | 10 ----------
|
||||
include/sound/uapi/hdsp.h | 9 ---------
|
||||
include/sound/uapi/hdspm.h | 8 --------
|
||||
7 files changed, 31 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
|
||||
index f06ecee5..0832f95b 100644
|
||||
--- a/include/sound/emu10k1.h
|
||||
+++ b/include/sound/emu10k1.h
|
||||
@@ -1,2 +1,11 @@
|
||||
#include <alsa/sound/type_compat.h>
|
||||
#include <alsa/sound/uapi/emu10k1.h>
|
||||
+#ifndef __emu10k1_type_defined
|
||||
+#define __emu10k1_type_defined
|
||||
+typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
|
||||
+typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
|
||||
+typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
|
||||
+typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
|
||||
+typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
|
||||
+typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
|
||||
+#endif
|
||||
diff --git a/include/sound/hdsp.h b/include/sound/hdsp.h
|
||||
index 78fb745b..e8f93156 100644
|
||||
--- a/include/sound/hdsp.h
|
||||
+++ b/include/sound/hdsp.h
|
||||
@@ -1,2 +1,12 @@
|
||||
#include <alsa/sound/type_compat.h>
|
||||
#include <alsa/sound/uapi/hdsp.h>
|
||||
+#ifndef __hdsp_type_defined
|
||||
+#define __hdsp_type_defined
|
||||
+typedef enum HDSP_IO_Type HDSP_IO_Type;
|
||||
+typedef struct hdsp_peak_rms hdsp_peak_rms_t;
|
||||
+typedef struct hdsp_config_info hdsp_config_info_t;
|
||||
+typedef struct hdsp_firmware hdsp_firmware_t;
|
||||
+typedef struct hdsp_version hdsp_version_t;
|
||||
+typedef struct hdsp_mixer hdsp_mixer_t;
|
||||
+typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
|
||||
+#endif
|
||||
diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h
|
||||
index af6d19ed..d9095d9f 100644
|
||||
--- a/include/sound/hdspm.h
|
||||
+++ b/include/sound/hdspm.h
|
||||
@@ -1,2 +1,10 @@
|
||||
#include <alsa/sound/type_compat.h>
|
||||
#include <alsa/sound/uapi/hdspm.h>
|
||||
+#ifndef __hdspm_type_defined
|
||||
+#define __hdspm_type_defined
|
||||
+typedef struct hdspm_peak_rms hdspm_peak_rms_t;
|
||||
+typedef struct hdspm_config_info hdspm_config_info_t;
|
||||
+typedef struct hdspm_version hdspm_version_t;
|
||||
+typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
|
||||
+typedef struct hdspm_mixer hdspm_mixer_t;
|
||||
+#endif
|
||||
diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h
|
||||
index 24121fcb..fd02bc56 100644
|
||||
--- a/include/sound/sb16_csp.h
|
||||
+++ b/include/sound/sb16_csp.h
|
||||
@@ -1 +1,5 @@
|
||||
#include <alsa/sound/uapi/sb16_csp.h>
|
||||
+#ifndef __sb16_csp_type_defined
|
||||
+#define __sb16_csp_type_defined
|
||||
+typedef struct snd_sb_csp_microcode snd_sb_csp_microcode_t;
|
||||
+#endif
|
||||
diff --git a/include/sound/uapi/emu10k1.h b/include/sound/uapi/emu10k1.h
|
||||
index c1150e4d..6bcd76f6 100644
|
||||
--- a/include/sound/uapi/emu10k1.h
|
||||
+++ b/include/sound/uapi/emu10k1.h
|
||||
@@ -382,14 +382,4 @@ struct snd_emu10k1_fx8010_pcm_rec {
|
||||
#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
|
||||
#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
|
||||
|
||||
-#ifndef __KERNEL__
|
||||
-/* typedefs for compatibility to user-space */
|
||||
-typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
|
||||
-typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
|
||||
-typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
|
||||
-typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
|
||||
-typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
|
||||
-typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
|
||||
-#endif
|
||||
-
|
||||
#endif /* _UAPI__SOUND_EMU10K1_H */
|
||||
diff --git a/include/sound/uapi/hdsp.h b/include/sound/uapi/hdsp.h
|
||||
index 88c92a3f..7ac2d3f2 100644
|
||||
--- a/include/sound/uapi/hdsp.h
|
||||
+++ b/include/sound/uapi/hdsp.h
|
||||
@@ -97,13 +97,4 @@ struct hdsp_9632_aeb {
|
||||
|
||||
#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
|
||||
|
||||
-/* typedefs for compatibility to user-space */
|
||||
-typedef enum HDSP_IO_Type HDSP_IO_Type;
|
||||
-typedef struct hdsp_peak_rms hdsp_peak_rms_t;
|
||||
-typedef struct hdsp_config_info hdsp_config_info_t;
|
||||
-typedef struct hdsp_firmware hdsp_firmware_t;
|
||||
-typedef struct hdsp_version hdsp_version_t;
|
||||
-typedef struct hdsp_mixer hdsp_mixer_t;
|
||||
-typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
|
||||
-
|
||||
#endif /* __SOUND_HDSP_H */
|
||||
diff --git a/include/sound/uapi/hdspm.h b/include/sound/uapi/hdspm.h
|
||||
index 2d91f90e..3fbfd9dc 100644
|
||||
--- a/include/sound/uapi/hdspm.h
|
||||
+++ b/include/sound/uapi/hdspm.h
|
||||
@@ -219,12 +219,4 @@ struct hdspm_mixer_ioctl {
|
||||
/* use indirect access due to the limit of ioctl bit size */
|
||||
#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
|
||||
|
||||
-/* typedefs for compatibility to user-space */
|
||||
-typedef struct hdspm_peak_rms hdspm_peak_rms_t;
|
||||
-typedef struct hdspm_config_info hdspm_config_info_t;
|
||||
-typedef struct hdspm_version hdspm_version_t;
|
||||
-typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
|
||||
-typedef struct hdspm_mixer hdspm_mixer_t;
|
||||
-
|
||||
-
|
||||
#endif
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From 4b6fe372c68d1ff50e7c161cffadeb298734f49c Mon Sep 17 00:00:00 2001
|
||||
From: paulhsia <paulhsia@chromium.org>
|
||||
Date: Sat, 30 Nov 2019 03:35:30 +0800
|
||||
Subject: [PATCH 1/5] ucm: Use strncmp to avoid access-out-of-boundary
|
||||
|
||||
If the length of the identifier is less than the length of the prefix,
|
||||
access-out-of-boundary will occur in memcmp().
|
||||
|
||||
Signed-off-by: paulhsia <paulhsia@chromium.org>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
src/ucm/main.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/ucm/main.c b/src/ucm/main.c
|
||||
index b0b6ffb3..252e50d9 100644
|
||||
--- a/src/ucm/main.c
|
||||
+++ b/src/ucm/main.c
|
||||
@@ -61,11 +61,13 @@ static int check_identifier(const char *identifier, const char *prefix)
|
||||
{
|
||||
int len;
|
||||
|
||||
- if (strcmp(identifier, prefix) == 0)
|
||||
- return 1;
|
||||
len = strlen(prefix);
|
||||
- if (memcmp(identifier, prefix, len) == 0 && identifier[len] == '/')
|
||||
+ if (strncmp(identifier, prefix, len) != 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (identifier[len] == 0 || identifier[len] == '/')
|
||||
return 1;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From 58f9dc9bd12a51efa12dbc67e200f4d85cd3da07 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 29 Nov 2019 22:28:26 +0100
|
||||
Subject: [PATCH 2/5] ucm: return always at least NULL if no list is available
|
||||
in snd_use_case_get_list()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
src/ucm/main.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/ucm/main.c b/src/ucm/main.c
|
||||
index 252e50d9..b80db65f 100644
|
||||
--- a/src/ucm/main.c
|
||||
+++ b/src/ucm/main.c
|
||||
@@ -1160,8 +1160,10 @@ static int get_supcon_device_list(snd_use_case_mgr_t *uc_mgr,
|
||||
|
||||
modifier = find_modifier(uc_mgr, verb, name, 0);
|
||||
if (modifier) {
|
||||
- if (modifier->dev_list.type != type)
|
||||
+ if (modifier->dev_list.type != type) {
|
||||
+ *list = NULL;
|
||||
return 0;
|
||||
+ }
|
||||
return get_list(&modifier->dev_list.list, list,
|
||||
struct dev_list_node, list,
|
||||
name);
|
||||
@@ -1169,8 +1171,10 @@ static int get_supcon_device_list(snd_use_case_mgr_t *uc_mgr,
|
||||
|
||||
device = find_device(uc_mgr, verb, name, 0);
|
||||
if (device) {
|
||||
- if (device->dev_list.type != type)
|
||||
+ if (device->dev_list.type != type) {
|
||||
+ *list = NULL;
|
||||
return 0;
|
||||
+ }
|
||||
return get_list(&device->dev_list.list, list,
|
||||
struct dev_list_node, list,
|
||||
name);
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 10f3401ce356a675e2440993457ee7c8c7e9fcf8 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sun, 1 Dec 2019 14:26:40 +0100
|
||||
Subject: [PATCH 3/5] namehint: correct the @args check
|
||||
|
||||
BugLink: https://github.com/alsa-project/alsa-plugins/issues/3
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
src/control/namehint.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/control/namehint.c b/src/control/namehint.c
|
||||
index 808df6b5..4927ef97 100644
|
||||
--- a/src/control/namehint.c
|
||||
+++ b/src/control/namehint.c
|
||||
@@ -348,6 +348,12 @@ static int try_config(snd_config_t *config,
|
||||
goto __cleanup;
|
||||
if (snd_config_search(res, "@args", &cfg) >= 0) {
|
||||
snd_config_for_each(i, next, cfg) {
|
||||
+ /* skip the argument list */
|
||||
+ snd_config_get_id(snd_config_iterator_entry(i), &str);
|
||||
+ while (*str && *str >= '0' && *str <= '9') str++;
|
||||
+ if (*str == '\0')
|
||||
+ continue;
|
||||
+ /* the argument definition must have the default */
|
||||
if (snd_config_search(snd_config_iterator_entry(i),
|
||||
"default", NULL) < 0) {
|
||||
err = -EINVAL;
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 1fa6664d5f0cc7d21edceba6695a4c28543c2cab Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sun, 1 Dec 2019 14:30:54 +0100
|
||||
Subject: [PATCH 4/5] namehint: improve the previous patch (check the returned
|
||||
value)
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
src/control/namehint.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/control/namehint.c b/src/control/namehint.c
|
||||
index 4927ef97..60c48ae3 100644
|
||||
--- a/src/control/namehint.c
|
||||
+++ b/src/control/namehint.c
|
||||
@@ -349,7 +349,8 @@ static int try_config(snd_config_t *config,
|
||||
if (snd_config_search(res, "@args", &cfg) >= 0) {
|
||||
snd_config_for_each(i, next, cfg) {
|
||||
/* skip the argument list */
|
||||
- snd_config_get_id(snd_config_iterator_entry(i), &str);
|
||||
+ if (snd_config_get_id(snd_config_iterator_entry(i), &str) < 0)
|
||||
+ continue;
|
||||
while (*str && *str >= '0' && *str <= '9') str++;
|
||||
if (*str == '\0')
|
||||
continue;
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
From 976f8f62238f0d837584adc7c31035bdb29b6d6f Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 3 Dec 2019 18:27:39 +0100
|
||||
Subject: [PATCH 5/5] ucm: Do not fail to parse configs on cards with an empty
|
||||
CardComponents lists
|
||||
|
||||
Since the UCM profiles for all Bay- and Cherry-Trail SST cards have been
|
||||
moved over to UCM2, parsing them fails with:
|
||||
|
||||
ALSA lib ucm_subs.c:220:(uc_mgr_get_substituted_value) variable '${CardComponents}' is not defined in this context!
|
||||
|
||||
This completely breaks audio support on all Bay- and Cherry-Trail devices.
|
||||
|
||||
This is caused by these non-SOF ASoC using cards having an empty
|
||||
CardComponents list. Which in itself is fine, but is rejected by
|
||||
the ucm_subs.c code. This commit changes the ucm_subs code to accept
|
||||
an empty string as a valid value for CardComponents restoring audio
|
||||
functionality on these boards.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
---
|
||||
src/ucm/ucm_subs.c | 20 ++++++++++++--------
|
||||
1 file changed, 12 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/ucm/ucm_subs.c b/src/ucm/ucm_subs.c
|
||||
index 00afa9e3..90e395f0 100644
|
||||
--- a/src/ucm/ucm_subs.c
|
||||
+++ b/src/ucm/ucm_subs.c
|
||||
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "ucm_local.h"
|
||||
+#include <stdbool.h>
|
||||
#include <sys/stat.h>
|
||||
#include <limits.h>
|
||||
|
||||
@@ -145,10 +146,11 @@ static char *rval_sysfs(snd_use_case_mgr_t *uc_mgr ATTRIBUTE_UNUSED, const char
|
||||
return strdup(path);
|
||||
}
|
||||
|
||||
-#define MATCH_VARIABLE(name, id, fcn) \
|
||||
+#define MATCH_VARIABLE(name, id, fcn, empty_ok) \
|
||||
if (strncmp((name), (id), sizeof(id) - 1) == 0) { \
|
||||
rval = fcn(uc_mgr); \
|
||||
idsize = sizeof(id) - 1; \
|
||||
+ allow_empty = (empty_ok); \
|
||||
goto __rval; \
|
||||
}
|
||||
|
||||
@@ -189,12 +191,14 @@ int uc_mgr_get_substituted_value(snd_use_case_mgr_t *uc_mgr,
|
||||
|
||||
while (*value) {
|
||||
if (*value == '$' && *(value+1) == '{') {
|
||||
- MATCH_VARIABLE(value, "${ConfName}", rval_conf_name);
|
||||
- MATCH_VARIABLE(value, "${CardId}", rval_card_id);
|
||||
- MATCH_VARIABLE(value, "${CardDriver}", rval_card_driver);
|
||||
- MATCH_VARIABLE(value, "${CardName}", rval_card_name);
|
||||
- MATCH_VARIABLE(value, "${CardLongName}", rval_card_longname);
|
||||
- MATCH_VARIABLE(value, "${CardComponents}", rval_card_components);
|
||||
+ bool allow_empty = false;
|
||||
+
|
||||
+ MATCH_VARIABLE(value, "${ConfName}", rval_conf_name, false);
|
||||
+ MATCH_VARIABLE(value, "${CardId}", rval_card_id, false);
|
||||
+ MATCH_VARIABLE(value, "${CardDriver}", rval_card_driver, false);
|
||||
+ MATCH_VARIABLE(value, "${CardName}", rval_card_name, false);
|
||||
+ MATCH_VARIABLE(value, "${CardLongName}", rval_card_longname, false);
|
||||
+ MATCH_VARIABLE(value, "${CardComponents}", rval_card_components, true);
|
||||
MATCH_VARIABLE2(value, "${env:", rval_env);
|
||||
MATCH_VARIABLE2(value, "${sys:", rval_sysfs);
|
||||
err = -EINVAL;
|
||||
@@ -208,7 +212,7 @@ int uc_mgr_get_substituted_value(snd_use_case_mgr_t *uc_mgr,
|
||||
}
|
||||
goto __error;
|
||||
__rval:
|
||||
- if (rval == NULL || rval[0] == '\0') {
|
||||
+ if (rval == NULL || (!allow_empty && rval[0] == '\0')) {
|
||||
free(rval);
|
||||
strncpy(r, value, idsize);
|
||||
r[idsize] = '\0';
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -7,9 +7,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
|
||||
file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
|
||||
"
|
||||
|
||||
SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
|
||||
SRC_URI[md5sum] = "e6d429dbdcfaa0f034d907fa6dc3735e"
|
||||
SRC_URI[sha256sum] = "488373aef5396682f3a411a6d064ae0ad196b9c96269d0bb912fbdeec94b994b"
|
||||
SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \
|
||||
file://0001-configure.ac-remove-an-unnecessary-libtool-fix.patch \
|
||||
file://0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch \
|
||||
file://0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch \
|
||||
file://0003-namehint-correct-the-args-check.patch \
|
||||
file://0004-namehint-improve-the-previous-patch-check-the-return.patch \
|
||||
file://0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch \
|
||||
file://0001-Fix-alsa-sound-.h-for-external-programs.patch \
|
||||
file://0001-uapi-Move-typedefs-from-uapi-to-sound.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "82ddd3698469beec147e4f4a67134ea0"
|
||||
SRC_URI[sha256sum] = "958e260e3673f1f6ff6b2d2c0df3fc2e469bea5b2957163ce96ce17f23e87943"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
@@ -18,10 +27,11 @@ EXTRA_OECONF += " \
|
||||
--disable-python \
|
||||
"
|
||||
|
||||
PACKAGES =+ "alsa-server alsa-conf alsa-doc"
|
||||
PACKAGES =+ "alsa-server alsa-conf libatopology"
|
||||
|
||||
FILES_alsa-server = "${bindir}/*"
|
||||
FILES_alsa-conf = "${datadir}/alsa/"
|
||||
FILES_libatopology = "${libdir}/libatopology.so.*"
|
||||
|
||||
RDEPENDS_${PN}_class-target = "alsa-conf"
|
||||
|
||||
Reference in New Issue
Block a user