662 lines
18 KiB
Diff
662 lines
18 KiB
Diff
From a068cf08ad67447893b707cddfce31c9cafee643 Mon Sep 17 00:00:00 2001
|
|
From: Mike Gilbert <floppym@gentoo.org>
|
|
Date: Mon, 8 Dec 2025 23:46:17 -0500
|
|
Subject: [PATCH 1/7] ucm: use closefrom instead of close_range
|
|
|
|
closefrom is a library function with a fallback mechanism for when the
|
|
kernel does not support the close_range syscall.
|
|
|
|
Also check for the function properly instead of assuming it is available
|
|
with _GNU_SOURCE defined.
|
|
|
|
Closes: https://github.com/alsa-project/alsa-lib/pull/486
|
|
Fixes: https://github.com/alsa-project/alsa-lib/issues/485
|
|
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
configure.ac | 1 +
|
|
src/ucm/ucm_exec.c | 4 ++--
|
|
2 files changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 8f4bd0de..f4862f64 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -52,6 +52,7 @@ dnl Checks for library functions.
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_CHECK_FUNCS([uselocale])
|
|
AC_CHECK_FUNCS([eaccess])
|
|
+AC_CHECK_DECLS([closefrom])
|
|
|
|
dnl Enable largefile support
|
|
AC_SYS_LARGEFILE
|
|
diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c
|
|
index b5a22023..713039b4 100644
|
|
--- a/src/ucm/ucm_exec.c
|
|
+++ b/src/ucm/ucm_exec.c
|
|
@@ -259,8 +259,8 @@ int uc_mgr_exec(const char *prog)
|
|
|
|
close(f);
|
|
|
|
-#if defined(_GNU_SOURCE)
|
|
- close_range(3, maxfd, 0);
|
|
+#if HAVE_DECL_CLOSEFROM
|
|
+ closefrom(3);
|
|
#else
|
|
for (f = 3; f < maxfd; f++)
|
|
close(f);
|
|
--
|
|
2.51.1
|
|
|
|
|
|
From 813ffe34ff6c720dcc56e4549338bf9e9184af1f Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Tue, 9 Dec 2025 17:48:34 +0100
|
|
Subject: [PATCH 2/7] ucm: exec - fix maxfd used warning
|
|
|
|
Fixes: a068cf08 ("ucm: use closefrom instead of close_range")
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/ucm/ucm_exec.c | 11 ++++++-----
|
|
1 file changed, 6 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c
|
|
index 713039b4..c16a4cfd 100644
|
|
--- a/src/ucm/ucm_exec.c
|
|
+++ b/src/ucm/ucm_exec.c
|
|
@@ -183,7 +183,7 @@ static int parse_args(char ***argv, int argc, const char *cmd)
|
|
*/
|
|
int uc_mgr_exec(const char *prog)
|
|
{
|
|
- pid_t p, f, maxfd;
|
|
+ pid_t p, f;
|
|
int err = 0, status;
|
|
char bin[PATH_MAX];
|
|
struct sigaction sa;
|
|
@@ -212,8 +212,6 @@ int uc_mgr_exec(const char *prog)
|
|
prog = bin;
|
|
}
|
|
|
|
- maxfd = sysconf(_SC_OPEN_MAX);
|
|
-
|
|
/*
|
|
* block SIGCHLD signal
|
|
* ignore SIGINT and SIGQUIT in parent
|
|
@@ -262,8 +260,11 @@ int uc_mgr_exec(const char *prog)
|
|
#if HAVE_DECL_CLOSEFROM
|
|
closefrom(3);
|
|
#else
|
|
- for (f = 3; f < maxfd; f++)
|
|
- close(f);
|
|
+ {
|
|
+ pid_t maxfd = sysconf(_SC_OPEN_MAX);
|
|
+ for (f = 3; f < maxfd; f++)
|
|
+ close(f);
|
|
+ }
|
|
#endif
|
|
|
|
/* install default handlers for the forked process */
|
|
--
|
|
2.51.1
|
|
|
|
|
|
From a6238053c4fa518b214f99d91a01b96c5ef6e3ca Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Tue, 9 Dec 2025 18:04:07 +0100
|
|
Subject: [PATCH 3/7] conf: merge card specific contents per file (whole) after
|
|
parsing
|
|
|
|
Unfortunately, mentioned fix caused a regression for items stored in one file.
|
|
Merge the file contents after parsing not inside parsing process.
|
|
|
|
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2420645
|
|
Fixes: eda76146 ("conf: fix load_for_all_cards() - do not merge the card specific contents")
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/conf.c | 13 ++++++++++---
|
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/conf.c b/src/conf.c
|
|
index 49499ecd..b1ec9b38 100644
|
|
--- a/src/conf.c
|
|
+++ b/src/conf.c
|
|
@@ -4119,14 +4119,21 @@ static int config_filename_filter(const struct dirent64 *dirent)
|
|
static int config_file_open(snd_config_t *root, const char *filename, int merge)
|
|
{
|
|
snd_input_t *in;
|
|
+ snd_config_t *top;
|
|
int err;
|
|
|
|
err = snd_input_stdio_open(&in, filename, "r");
|
|
if (err >= 0) {
|
|
- if (merge)
|
|
+ if (merge) {
|
|
err = snd_config_load(root, in);
|
|
- else
|
|
- err = snd_config_load_override(root, in);
|
|
+ } else {
|
|
+ err = snd_config_top(&top);
|
|
+ if (err >= 0) {
|
|
+ err = snd_config_load(top, in);
|
|
+ if (err >= 0)
|
|
+ err = snd_config_merge(root, top, 1);
|
|
+ }
|
|
+ }
|
|
snd_input_close(in);
|
|
if (err < 0)
|
|
snd_error(CORE, "%s may be old or corrupted: consider to remove or fix it", filename);
|
|
--
|
|
2.51.1
|
|
|
|
|
|
From 2f59398c83b8065fb9ff58939df3a9187746068e Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Tue, 9 Dec 2025 18:39:52 +0100
|
|
Subject: [PATCH 4/7] conf: fix possible memory leak in config_file_open() -
|
|
error path
|
|
|
|
Fixes: a6238053 ("conf: merge card specific contents per file (whole) after parsing")
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/conf.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/conf.c b/src/conf.c
|
|
index b1ec9b38..d90f6dc3 100644
|
|
--- a/src/conf.c
|
|
+++ b/src/conf.c
|
|
@@ -4130,8 +4130,11 @@ static int config_file_open(snd_config_t *root, const char *filename, int merge)
|
|
err = snd_config_top(&top);
|
|
if (err >= 0) {
|
|
err = snd_config_load(top, in);
|
|
- if (err >= 0)
|
|
+ if (err >= 0) {
|
|
err = snd_config_merge(root, top, 1);
|
|
+ if (err < 0)
|
|
+ snd_config_delete(top);
|
|
+ }
|
|
}
|
|
}
|
|
snd_input_close(in);
|
|
--
|
|
2.51.1
|
|
|
|
|
|
From 2ef8952b46a46b97a6df2f29bcd182f895ebf9e4 Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Wed, 10 Dec 2025 12:03:29 +0100
|
|
Subject: [PATCH 5/7] Revert "conf: fix load_for_all_cards() - do not merge the
|
|
card specific contents"
|
|
|
|
This reverts commit eda76146c5653ff1d5bc4b4c53f7a2d5ccc17da2.
|
|
|
|
Also, revert additional related commits:
|
|
|
|
Revert "conf: fix possible memory leak in config_file_open() - error path"
|
|
This reverts commit 2f59398c83b8065fb9ff58939df3a9187746068e.
|
|
|
|
Revert "conf: merge card specific contents per file (whole) after parsing"
|
|
This reverts commit a6238053c4fa518b214f99d91a01b96c5ef6e3ca.
|
|
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/conf.c | 42 ++++++++++++------------------------------
|
|
1 file changed, 12 insertions(+), 30 deletions(-)
|
|
|
|
diff --git a/src/conf.c b/src/conf.c
|
|
index d90f6dc3..fb9f0658 100644
|
|
--- a/src/conf.c
|
|
+++ b/src/conf.c
|
|
@@ -4116,27 +4116,14 @@ static int config_filename_filter(const struct dirent64 *dirent)
|
|
return 0;
|
|
}
|
|
|
|
-static int config_file_open(snd_config_t *root, const char *filename, int merge)
|
|
+static int config_file_open(snd_config_t *root, const char *filename)
|
|
{
|
|
snd_input_t *in;
|
|
- snd_config_t *top;
|
|
int err;
|
|
|
|
err = snd_input_stdio_open(&in, filename, "r");
|
|
if (err >= 0) {
|
|
- if (merge) {
|
|
- err = snd_config_load(root, in);
|
|
- } else {
|
|
- err = snd_config_top(&top);
|
|
- if (err >= 0) {
|
|
- err = snd_config_load(top, in);
|
|
- if (err >= 0) {
|
|
- err = snd_config_merge(root, top, 1);
|
|
- if (err < 0)
|
|
- snd_config_delete(top);
|
|
- }
|
|
- }
|
|
- }
|
|
+ err = snd_config_load(root, in);
|
|
snd_input_close(in);
|
|
if (err < 0)
|
|
snd_error(CORE, "%s may be old or corrupted: consider to remove or fix it", filename);
|
|
@@ -4146,7 +4133,7 @@ static int config_file_open(snd_config_t *root, const char *filename, int merge)
|
|
return err;
|
|
}
|
|
|
|
-static int config_file_load(snd_config_t *root, const char *fn, int errors, int merge)
|
|
+static int config_file_load(snd_config_t *root, const char *fn, int errors)
|
|
{
|
|
struct stat64 st;
|
|
struct dirent64 **namelist;
|
|
@@ -4159,7 +4146,7 @@ static int config_file_load(snd_config_t *root, const char *fn, int errors, int
|
|
return 1;
|
|
}
|
|
if (!S_ISDIR(st.st_mode))
|
|
- return config_file_open(root, fn, merge);
|
|
+ return config_file_open(root, fn);
|
|
#ifndef DOC_HIDDEN
|
|
#if defined(_GNU_SOURCE) && \
|
|
!defined(__NetBSD__) && \
|
|
@@ -4185,7 +4172,7 @@ static int config_file_load(snd_config_t *root, const char *fn, int errors, int
|
|
snprintf(filename, sl, "%s/%s", fn, namelist[j]->d_name);
|
|
filename[sl-1] = '\0';
|
|
|
|
- err = config_file_open(root, filename, merge);
|
|
+ err = config_file_open(root, filename);
|
|
free(filename);
|
|
}
|
|
free(namelist[j]);
|
|
@@ -4197,20 +4184,20 @@ static int config_file_load(snd_config_t *root, const char *fn, int errors, int
|
|
return 0;
|
|
}
|
|
|
|
-static int config_file_load_user(snd_config_t *root, const char *fn, int errors, int merge)
|
|
+static int config_file_load_user(snd_config_t *root, const char *fn, int errors)
|
|
{
|
|
char *fn2;
|
|
int err;
|
|
|
|
err = snd_user_file(fn, &fn2);
|
|
if (err < 0)
|
|
- return config_file_load(root, fn, errors, merge);
|
|
- err = config_file_load(root, fn2, errors, merge);
|
|
+ return config_file_load(root, fn, errors);
|
|
+ err = config_file_load(root, fn2, errors);
|
|
free(fn2);
|
|
return err;
|
|
}
|
|
|
|
-static int config_file_load_user_all(snd_config_t *_root, snd_config_t *_file, int errors, int merge)
|
|
+static int config_file_load_user_all(snd_config_t *_root, snd_config_t *_file, int errors)
|
|
{
|
|
snd_config_t *file = _file, *root = _root, *n;
|
|
char *name, *name2, *remain, *rname = NULL;
|
|
@@ -4241,7 +4228,7 @@ static int config_file_load_user_all(snd_config_t *_root, snd_config_t *_file, i
|
|
*remain = '\0';
|
|
remain += 3;
|
|
}
|
|
- err = config_file_load_user(root, name2, errors, merge);
|
|
+ err = config_file_load_user(root, name2, errors);
|
|
if (err < 0)
|
|
goto _err;
|
|
if (err == 0) /* first hit wins */
|
|
@@ -4290,7 +4277,7 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
|
|
{
|
|
snd_config_t *n;
|
|
snd_config_iterator_t i, next;
|
|
- int err, idx = 0, errors = 1, merge = 1, hit;
|
|
+ int err, idx = 0, errors = 1, hit;
|
|
|
|
assert(root && dst);
|
|
if ((err = snd_config_search(config, "errors", &n)) >= 0) {
|
|
@@ -4300,10 +4287,6 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
|
|
return errors;
|
|
}
|
|
}
|
|
- /* special case, we know the card number (may be multiple times) */
|
|
- if (private_data && snd_config_search(private_data, "integer", &n) >= 0) {
|
|
- merge = 0;
|
|
- }
|
|
if ((err = snd_config_search(config, "files", &n)) < 0) {
|
|
snd_error(CORE, "Unable to find field files in the pre-load section");
|
|
return -EINVAL;
|
|
@@ -4316,7 +4299,6 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
|
|
snd_error(CORE, "Invalid type for field filenames");
|
|
goto _err;
|
|
}
|
|
-
|
|
do {
|
|
hit = 0;
|
|
snd_config_for_each(i, next, n) {
|
|
@@ -4330,7 +4312,7 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
|
|
goto _err;
|
|
}
|
|
if (i == idx) {
|
|
- err = config_file_load_user_all(root, n, errors, merge);
|
|
+ err = config_file_load_user_all(root, n, errors);
|
|
if (err < 0)
|
|
goto _err;
|
|
idx++;
|
|
--
|
|
2.51.1
|
|
|
|
|
|
From 16ab43db6ed6f71424d5ad78e62f85baaeae5051 Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Wed, 10 Dec 2025 12:12:47 +0100
|
|
Subject: [PATCH 6/7] conf: USB-Audio: define pcm configuration block only one
|
|
time
|
|
|
|
There may be multiple USB soundcards in the system. Overwrite
|
|
the PCM configurations when loaded multiple times.
|
|
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/conf/cards/USB-Audio.conf | 30 +++++++++++++++---------------
|
|
1 file changed, 15 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf
|
|
index 2f6d2ee0..1fc540e2 100644
|
|
--- a/src/conf/cards/USB-Audio.conf
|
|
+++ b/src/conf/cards/USB-Audio.conf
|
|
@@ -99,7 +99,7 @@ USB-Audio.pcm.iec958_2_device {
|
|
# device 0: analog output, digital input
|
|
# device 1: digital output, analog input
|
|
USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default"
|
|
-USB-Audio."Audiophile USB (tm)".pcm.default {
|
|
+USB-Audio."Audiophile USB (tm)".pcm.!default {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
type asym
|
|
@@ -120,7 +120,7 @@ USB-Audio."Audiophile USB (tm)".pcm.default {
|
|
}
|
|
}
|
|
USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958"
|
|
-USB-Audio."Audiophile USB (tm)".pcm.iec958 {
|
|
+USB-Audio."Audiophile USB (tm)".pcm.!iec958 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -142,7 +142,7 @@ USB-Audio."Audiophile USB (tm)".pcm.iec958 {
|
|
|
|
# For this card we can (and must to get IEC61937) set AES bits
|
|
USB-Audio."MicroII".pcm.iec958 "cards.USB-Audio.Audio Advantage MicroII.pcm.iec958"
|
|
-USB-Audio."Audio Advantage MicroII".pcm.iec958 {
|
|
+USB-Audio."Audio Advantage MicroII".pcm.!iec958 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -180,7 +180,7 @@ USB-Audio."Audio Advantage MicroII".pcm.iec958 {
|
|
|
|
<confdir:pcm/front.conf>
|
|
|
|
-USB-Audio.pcm.front.0 {
|
|
+USB-Audio.pcm.front.!0 {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
@func refer
|
|
@@ -201,7 +201,7 @@ USB-Audio.pcm.front.0 {
|
|
}
|
|
}
|
|
|
|
-USB-Audio.pcm.default {
|
|
+USB-Audio.pcm.!default {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
@func refer
|
|
@@ -249,14 +249,14 @@ USB-Audio.pcm.default {
|
|
}
|
|
}
|
|
|
|
-USB-Audio.pcm.default_playback_dmix_yes {
|
|
+USB-Audio.pcm.!default_playback_dmix_yes {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
@func concat
|
|
strings [ "dmix:" $CARD ]
|
|
}
|
|
|
|
-USB-Audio.pcm.default_playback_dmix_no {
|
|
+USB-Audio.pcm.!default_playback_dmix_no {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
type hw
|
|
@@ -266,7 +266,7 @@ USB-Audio.pcm.default_playback_dmix_no {
|
|
|
|
<confdir:pcm/surround40.conf>
|
|
|
|
-USB-Audio.pcm.surround40.0 {
|
|
+USB-Audio.pcm.surround40.!0 {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
@func refer
|
|
@@ -301,7 +301,7 @@ USB-Audio.pcm.surround40.0 {
|
|
}
|
|
}
|
|
|
|
-USB-Audio.pcm.surround40_default {
|
|
+USB-Audio.pcm.!surround40_default {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
type hw
|
|
@@ -309,7 +309,7 @@ USB-Audio.pcm.surround40_default {
|
|
device 0
|
|
}
|
|
|
|
-USB-Audio.pcm.surround40_six_channels {
|
|
+USB-Audio.pcm.!surround40_six_channels {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
type route
|
|
@@ -327,7 +327,7 @@ USB-Audio.pcm.surround40_six_channels {
|
|
}
|
|
}
|
|
|
|
-USB-Audio.pcm.surround40_two_stereo_devices {
|
|
+USB-Audio.pcm.!surround40_two_stereo_devices {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
type route
|
|
@@ -369,7 +369,7 @@ USB-Audio.pcm.surround40_two_stereo_devices {
|
|
<confdir:pcm/surround50.conf>
|
|
<confdir:pcm/surround51.conf>
|
|
|
|
-USB-Audio.pcm.surround51.0 {
|
|
+USB-Audio.pcm.surround51.!0 {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
@func refer
|
|
@@ -402,7 +402,7 @@ USB-Audio.pcm.surround51.0 {
|
|
|
|
<confdir:pcm/surround71.conf>
|
|
|
|
-USB-Audio.pcm.surround71.0 {
|
|
+USB-Audio.pcm.surround71.!0 {
|
|
@args [ CARD ]
|
|
@args.CARD { type string }
|
|
@func refer
|
|
@@ -437,7 +437,7 @@ USB-Audio.pcm.surround71.0 {
|
|
|
|
<confdir:pcm/iec958.conf>
|
|
|
|
-USB-Audio.pcm.iec958.0 {
|
|
+USB-Audio.pcm.iec958.!0 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -472,7 +472,7 @@ USB-Audio.pcm.iec958.0 {
|
|
}
|
|
}
|
|
|
|
-USB-Audio.pcm.iec958.1 {
|
|
+USB-Audio.pcm.iec958.!1 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
--
|
|
2.51.1
|
|
|
|
|
|
From 010b699c92a9a6ffdca1874cd2e3c6c054d212e0 Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Wed, 10 Dec 2025 12:12:47 +0100
|
|
Subject: [PATCH 7/7] conf: HDA-Intel: define pcm configuration block only one
|
|
time
|
|
|
|
There may be multiple HDA-Intel soundcards in the system. Overwrite
|
|
the PCM configurations when loaded multiple times.
|
|
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/conf/cards/HDA-Intel.conf | 32 ++++++++++++++++----------------
|
|
1 file changed, 16 insertions(+), 16 deletions(-)
|
|
|
|
diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf
|
|
index 5451606f..76775b97 100644
|
|
--- a/src/conf/cards/HDA-Intel.conf
|
|
+++ b/src/conf/cards/HDA-Intel.conf
|
|
@@ -4,7 +4,7 @@
|
|
|
|
<confdir:pcm/front.conf>
|
|
|
|
-HDA-Intel.pcm.front.0 {
|
|
+HDA-Intel.pcm.front.!0 {
|
|
@args [ CARD ]
|
|
@args.CARD {
|
|
type string
|
|
@@ -29,7 +29,7 @@ HDA-Intel.pcm.front.0 {
|
|
}
|
|
|
|
# default with dmix+softvol & dsnoop
|
|
-HDA-Intel.pcm.default {
|
|
+HDA-Intel.pcm.!default {
|
|
@args [ CARD ]
|
|
@args.CARD {
|
|
type string
|
|
@@ -84,7 +84,7 @@ HDA-Intel.pcm.surround71.0 cards.HDA-Intel.pcm.front.0
|
|
|
|
<confdir:pcm/iec958.conf>
|
|
|
|
-HDA-Intel.pcm.iec958.0 {
|
|
+HDA-Intel.pcm.iec958.!0 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD {
|
|
type string
|
|
@@ -163,7 +163,7 @@ HDA-Intel.pcm.iec958.0 {
|
|
hint.device 1
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.common {
|
|
+HDA-Intel.pcm.hdmi.!common {
|
|
@args [ CARD DEVICE CTLINDEX AES0 AES1 AES2 AES3 ]
|
|
@args.CARD {
|
|
type string
|
|
@@ -212,7 +212,7 @@ HDA-Intel.pcm.hdmi.common {
|
|
hint.device $DEVICE
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.0 {
|
|
+HDA-Intel.pcm.hdmi.!0 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -235,7 +235,7 @@ HDA-Intel.pcm.hdmi.0 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.1 {
|
|
+HDA-Intel.pcm.hdmi.!1 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -258,7 +258,7 @@ HDA-Intel.pcm.hdmi.1 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.2 {
|
|
+HDA-Intel.pcm.hdmi.!2 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -281,7 +281,7 @@ HDA-Intel.pcm.hdmi.2 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.3 {
|
|
+HDA-Intel.pcm.hdmi.!3 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -304,7 +304,7 @@ HDA-Intel.pcm.hdmi.3 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.4 {
|
|
+HDA-Intel.pcm.hdmi.!4 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -327,7 +327,7 @@ HDA-Intel.pcm.hdmi.4 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.5 {
|
|
+HDA-Intel.pcm.hdmi.!5 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -350,7 +350,7 @@ HDA-Intel.pcm.hdmi.5 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.6 {
|
|
+HDA-Intel.pcm.hdmi.!6 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -373,7 +373,7 @@ HDA-Intel.pcm.hdmi.6 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.7 {
|
|
+HDA-Intel.pcm.hdmi.!7 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -396,7 +396,7 @@ HDA-Intel.pcm.hdmi.7 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.8 {
|
|
+HDA-Intel.pcm.hdmi.!8 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -419,7 +419,7 @@ HDA-Intel.pcm.hdmi.8 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.9 {
|
|
+HDA-Intel.pcm.hdmi.!9 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -442,7 +442,7 @@ HDA-Intel.pcm.hdmi.9 {
|
|
}
|
|
}
|
|
|
|
-HDA-Intel.pcm.hdmi.10 {
|
|
+HDA-Intel.pcm.hdmi.!10 {
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
@args.CARD { type string }
|
|
@args.AES0 { type integer }
|
|
@@ -467,7 +467,7 @@ HDA-Intel.pcm.hdmi.10 {
|
|
|
|
<confdir:pcm/modem.conf>
|
|
|
|
-HDA-Intel.pcm.modem.0 {
|
|
+HDA-Intel.pcm.modem.!0 {
|
|
@args [ CARD ]
|
|
@args.CARD {
|
|
type string
|
|
--
|
|
2.51.1
|
|
|