Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package alsa for openSUSE:Factory checked in at 2025-12-10 15:50:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/alsa (Old) and /work/SRC/openSUSE:Factory/.alsa.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa" Wed Dec 10 15:50:32 2025 rev:232 rq:1321945 version:1.2.15 Changes: -------- --- /work/SRC/openSUSE:Factory/alsa/alsa.changes 2025-12-09 12:47:47.217434061 +0100 +++ /work/SRC/openSUSE:Factory/.alsa.new.1939/alsa.changes 2025-12-10 15:50:34.713113316 +0100 @@ -1,0 +2,12 @@ +Wed Dec 10 11:20:56 UTC 2025 - Takashi Iwai <[email protected]> + +- Backport upstream fixes, mainly for regressions (bsc#1254652): + 0001-ucm-use-closefrom-instead-of-close_range.patch + 0002-ucm-exec-fix-maxfd-used-warning.patch + 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch + 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch + 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch + 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch + 0007-conf-HDA-Intel-define-pcm-configuration-block-only-o.patch + +------------------------------------------------------------------- New: ---- 0001-ucm-use-closefrom-instead-of-close_range.patch 0002-ucm-exec-fix-maxfd-used-warning.patch 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch 0007-conf-HDA-Intel-define-pcm-configuration-block-only-o.patch ----------(New B)---------- New:- Backport upstream fixes, mainly for regressions (bsc#1254652): 0001-ucm-use-closefrom-instead-of-close_range.patch 0002-ucm-exec-fix-maxfd-used-warning.patch New: 0001-ucm-use-closefrom-instead-of-close_range.patch 0002-ucm-exec-fix-maxfd-used-warning.patch 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch New: 0002-ucm-exec-fix-maxfd-used-warning.patch 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch New: 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch New: 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch New: 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch 0007-conf-HDA-Intel-define-pcm-configuration-block-only-o.patch New: 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch 0007-conf-HDA-Intel-define-pcm-configuration-block-only-o.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa.spec ++++++ --- /var/tmp/diff_new_pack.DyfXDF/_old 2025-12-10 15:50:39.397311469 +0100 +++ /var/tmp/diff_new_pack.DyfXDF/_new 2025-12-10 15:50:39.413312146 +0100 @@ -63,6 +63,13 @@ # from https://www.alsa-project.org/files/pub/gpg-release-key-v1.txt Source35: alsa.keyring # upstream fixes +Patch1: 0001-ucm-use-closefrom-instead-of-close_range.patch +Patch2: 0002-ucm-exec-fix-maxfd-used-warning.patch +Patch3: 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch +Patch4: 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch +Patch5: 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch +Patch6: 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch +Patch7: 0007-conf-HDA-Intel-define-pcm-configuration-block-only-o.patch # rest suse fixes Patch101: alsa-lib-ignore-non-accessible-ALSA_CONFIG_PATH.patch BuildRequires: doxygen ++++++ 0001-ucm-use-closefrom-instead-of-close_range.patch ++++++ >From a068cf08ad67447893b707cddfce31c9cafee643 Mon Sep 17 00:00:00 2001 From: Mike Gilbert <[email protected]> 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 <[email protected]> Signed-off-by: Jaroslav Kysela <[email protected]> --- 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 8f4bd0de1400..f4862f64cd4c 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 b5a22023b680..713039b4920f 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.52.0 ++++++ 0002-ucm-exec-fix-maxfd-used-warning.patch ++++++ >From 813ffe34ff6c720dcc56e4549338bf9e9184af1f Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <[email protected]> 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 <[email protected]> --- 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 713039b4920f..c16a4cfdaec0 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.52.0 ++++++ 0003-conf-merge-card-specific-contents-per-file-whole-aft.patch ++++++ >From a6238053c4fa518b214f99d91a01b96c5ef6e3ca Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <[email protected]> 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 <[email protected]> --- src/conf.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/conf.c b/src/conf.c index 49499ecdfc3c..b1ec9b382d66 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.52.0 ++++++ 0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch ++++++ >From 2f59398c83b8065fb9ff58939df3a9187746068e Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <[email protected]> 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 <[email protected]> --- src/conf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/conf.c b/src/conf.c index b1ec9b382d66..d90f6dc35d3b 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.52.0 ++++++ 0005-Revert-conf-fix-load_for_all_cards-do-not-merge-the-.patch ++++++ >From 2ef8952b46a46b97a6df2f29bcd182f895ebf9e4 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <[email protected]> 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 <[email protected]> --- src/conf.c | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/src/conf.c b/src/conf.c index d90f6dc35d3b..fb9f0658a816 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.52.0 ++++++ 0006-conf-USB-Audio-define-pcm-configuration-block-only-o.patch ++++++ >From 16ab43db6ed6f71424d5ad78e62f85baaeae5051 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <[email protected]> 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 <[email protected]> --- 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 2f6d2ee0af3d..1fc540e2eb4d 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.52.0 ++++++ 0007-conf-HDA-Intel-define-pcm-configuration-block-only-o.patch ++++++ >From 010b699c92a9a6ffdca1874cd2e3c6c054d212e0 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <[email protected]> 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 <[email protected]> --- 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 5451606f4d31..76775b9753df 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.52.0
