From 2bb67d5c1f5ba6cffeb75b1d503c031dc6245e00 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 26 Jun 2025 10:52:09 +0200 Subject: [PATCH] Update to v1.2.14 Resolves: RHEL-80638 Signed-off-by: Jaroslav Kysela --- alsa-git.patch | 271 +---- alsa-lib.spec | 9 +- alsa-ucm-conf.patch | 2693 ++++++++++++++++++++++++++++++++++--------- sources | 4 +- 4 files changed, 2206 insertions(+), 771 deletions(-) diff --git a/alsa-git.patch b/alsa-git.patch index 4bb0f1d..ded7dfb 100644 --- a/alsa-git.patch +++ b/alsa-git.patch @@ -1,256 +1,31 @@ -From 76edab4e595bd5f3f4c636cccc8d7976d3c519d6 Mon Sep 17 00:00:00 2001 -From: Nicholas Vinson -Date: Thu, 14 Nov 2024 07:49:53 -0500 -Subject: [PATCH 1/5] src/Versions.in.in: Update *_tempo_base name +From 07ec2ad34c42dba8656d3f543164f360f481c52e Mon Sep 17 00:00:00 2001 +From: Daniel Dadap +Date: Thu, 15 May 2025 08:32:35 -0500 +Subject: [PATCH] conf: aliases: add hda-acpi -> HDA-Intel alias -Change @SYMBOL_PREFIX@snd_has_tempo_base to -@SYMBOL_PREFIX@snd_has_queue_tempo_base. - -Starting with version 1.2.13, alsa-lib fails to link with ld.lld-19 due -to "version script assignment of 'ALSA_1.2.13' to symbol -'snd_seq_has_tempo_base' failed: symbol not defined". - -Per commit 769d1db1b0a213a39c7e59c0d1d724e7f45b1ac3 the correct name for -the symbol is @SYMBOL_PREFIX@snd_has_queue_tempo_base; therefore, update -src/Vesions.in.in to match. - -Fixes bug #420 -Fixes Gentoo bug 943399 (https://bugs.gentoo.org/943399) - -Closes: https://github.com/alsa-project/alsa-lib/pull/421 -Signed-off-by: Nicholas Vinson -Signed-off-by: Jaroslav Kysela ---- - src/Versions.in.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Versions.in.in b/src/Versions.in.in -index 350ec3d8..7ad6a633 100644 ---- a/src/Versions.in.in -+++ b/src/Versions.in.in -@@ -212,7 +212,7 @@ ALSA_1.2.13 { - @SYMBOL_PREFIX@snd_seq_create_ump_block; - @SYMBOL_PREFIX@snd_seq_queue_tempo_get_tempo_base; - @SYMBOL_PREFIX@snd_seq_queue_tempo_set_tempo_base; -- @SYMBOL_PREFIX@snd_seq_has_tempo_base; -+ @SYMBOL_PREFIX@snd_seq_has_queue_tempo_base; - @SYMBOL_PREFIX@snd_seq_port_info_get_ump_is_midi1; - @SYMBOL_PREFIX@snd_seq_port_info_set_ump_is_midi1; - #endif --- -2.47.0 - - -From 6880219ad4ba55ae8a94a34b7a987b3369f7c96f Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Sun, 24 Nov 2024 09:32:29 +0100 -Subject: [PATCH 2/5] configure: Make sequencer dependent on rawmidi - -The sequencer feature requires rawmidi implicitly, and it became more -obvious with UMP support. Add the dependency check to configure -script. +The new snd_hda_acpi driver in Linux exposes the existing Azalia +interface to non-PCI devices advertised over ACPI. Add an alias +to the existing HDA-Intel configuration file so that devices using +this driver can be discovered properly. +Signed-off-by: Daniel Dadap Signed-off-by: Takashi Iwai --- - configure.ac | 6 ++++++ - 1 file changed, 6 insertions(+) + src/conf/cards/aliases.conf | 1 + + 1 file changed, 1 insertion(+) -diff --git a/configure.ac b/configure.ac -index 1cd22a59..69aeb978 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -483,6 +483,12 @@ fi - AC_SUBST(PYTHON_LIBS) - AC_SUBST(PYTHON_INCLUDES) +diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf +index a54824ae..e2d59aa7 100644 +--- a/src/conf/cards/aliases.conf ++++ b/src/conf/cards/aliases.conf +@@ -57,6 +57,7 @@ CMI8786 cards.CMI8788 + CMI8787 cards.CMI8788 + pistachio cards.pistachio-card + VC4-HDMI cards.vc4-hdmi ++hda-acpi cards.HDA-Intel -+if test "$build_rawmidi" != "yes"; then -+ if test "$build_seq" = "yes"; then -+ AC_ERROR([Cannot enable sequencer without rawmidi]) -+ fi -+fi -+ - AM_CONDITIONAL([BUILD_MIXER], [test x$build_mixer = xyes]) - AM_CONDITIONAL([BUILD_PCM], [test x$build_pcm = xyes]) - AM_CONDITIONAL([BUILD_RAWMIDI], [test x$build_rawmidi = xyes]) + + -- -2.47.0 - - -From 07cee0ba05179a56764c35975d5822420d4f31f9 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Sun, 24 Nov 2024 09:33:16 +0100 -Subject: [PATCH 3/5] seq: include UMP headers - -Some applications seem including alsa/seqmid.h individually, and this -got broken with the update of alsa-lib because now we have -dependencies to UMP stuff. Include the necessary UMP headers -internally. Also, add the inclusion of rawmidi.h in ump.h for similar -reasons. - -Link: https://bugzilla.suse.com/show_bug.cgi?id=1233682 -Signed-off-by: Takashi Iwai ---- - include/seq.h | 2 ++ - include/seq_event.h | 2 ++ - include/ump.h | 2 ++ - 3 files changed, 6 insertions(+) - -diff --git a/include/seq.h b/include/seq.h -index 2eee95a6..5082ad0a 100644 ---- a/include/seq.h -+++ b/include/seq.h -@@ -29,6 +29,8 @@ - #ifndef __ALSA_SEQ_H - #define __ALSA_SEQ_H - -+#include "ump.h" -+ - #ifdef __cplusplus - extern "C" { - #endif -diff --git a/include/seq_event.h b/include/seq_event.h -index 9ca384ee..0b59202f 100644 ---- a/include/seq_event.h -+++ b/include/seq_event.h -@@ -28,6 +28,8 @@ - #ifndef __ALSA_SEQ_EVENT_H - #define __ALSA_SEQ_EVENT_H - -+#include "ump_msg.h" -+ - /** - * \defgroup SeqEvents Sequencer Event Definitions - * Sequencer Event Definitions -diff --git a/include/ump.h b/include/ump.h -index 1043d237..06c86a5e 100644 ---- a/include/ump.h -+++ b/include/ump.h -@@ -9,6 +9,8 @@ - #ifndef __ALSA_UMP_H - #define __ALSA_UMP_H - -+#include "rawmidi.h" -+ - #ifdef __cplusplus - extern "C" { - #endif --- -2.47.0 - - -From 76d2d285c10b1e368b4bf9494cf9270ae46197cb Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Mon, 25 Nov 2024 15:11:27 +0100 -Subject: [PATCH 4/5] rawmidi: ump - fix snd_ump_block_info_get_block_id double - version - -The changes for 1.2.13 in Versions.in.in file matches also old -1.2.10 function snd_ump_block_info_get_block_id: - -1 Removed function: - - [D] 'function void snd_ump_block_info_set_block_id(snd_ump_block_info_t*, unsigned int)' {snd_ump_block_info_set_block_id@@ALSA_1.2.10} - -Add 1.2.10 symbol back, but keep 1.2.13 symbol as default. - -Closes: https://github.com/alsa-project/alsa-lib/issues/422 -Signed-off-by: Jaroslav Kysela ---- - src/rawmidi/ump.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/src/rawmidi/ump.c b/src/rawmidi/ump.c -index d3676afb..b1246c33 100644 ---- a/src/rawmidi/ump.c -+++ b/src/rawmidi/ump.c -@@ -750,11 +750,20 @@ int snd_ump_block_info_get_device(const snd_ump_block_info_t *info) - * \param info pointer to a snd_ump_block_info_t structure - * \return ID number of the given UMP block - */ -+#ifndef DOXYGEN -+EXPORT_SYMBOL unsigned int INTERNAL(snd_ump_block_info_get_block_id)(const snd_ump_block_info_t *info) -+#else - unsigned int snd_ump_block_info_get_block_id(const snd_ump_block_info_t *info) -+#endif - { - return info->block_id; - } - -+#ifndef DOC_HIDDEN -+use_symbol_version(__snd_ump_block_info_get_block_id, snd_ump_block_info_get_block_id, ALSA_1.2.10); -+use_default_symbol_version(__snd_ump_block_info_get_block_id, snd_ump_block_info_get_block_id, ALSA_1.2.13); -+#endif /* DOC_HIDDEN */ -+ - /** - * \brief get UMP block activeness - * \param info pointer to a snd_ump_block_info_t structure --- -2.47.0 - - -From 352cbc5eb94a271a9c3c0ff5bf1742232a69e0d0 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Mon, 25 Nov 2024 16:17:30 +0100 -Subject: [PATCH 5/5] rawmidi: ump - fix snd_ump_block_info_set_block_id double - version - -Fix mistake snd_ump_block_info_get_block_id / snd_ump_block_info_set_block_id . - -Fixes: 76d2d285 ("rawmidi: ump - fix snd_ump_block_info_get_block_id double version") -Link: https://github.com/alsa-project/alsa-lib/issues/422 -Signed-off-by: Jaroslav Kysela ---- - src/rawmidi/ump.c | 19 ++++++++++--------- - 1 file changed, 10 insertions(+), 9 deletions(-) - -diff --git a/src/rawmidi/ump.c b/src/rawmidi/ump.c -index b1246c33..6807e877 100644 ---- a/src/rawmidi/ump.c -+++ b/src/rawmidi/ump.c -@@ -750,20 +750,11 @@ int snd_ump_block_info_get_device(const snd_ump_block_info_t *info) - * \param info pointer to a snd_ump_block_info_t structure - * \return ID number of the given UMP block - */ --#ifndef DOXYGEN --EXPORT_SYMBOL unsigned int INTERNAL(snd_ump_block_info_get_block_id)(const snd_ump_block_info_t *info) --#else - unsigned int snd_ump_block_info_get_block_id(const snd_ump_block_info_t *info) --#endif - { - return info->block_id; - } - --#ifndef DOC_HIDDEN --use_symbol_version(__snd_ump_block_info_get_block_id, snd_ump_block_info_get_block_id, ALSA_1.2.10); --use_default_symbol_version(__snd_ump_block_info_get_block_id, snd_ump_block_info_get_block_id, ALSA_1.2.13); --#endif /* DOC_HIDDEN */ -- - /** - * \brief get UMP block activeness - * \param info pointer to a snd_ump_block_info_t structure -@@ -881,12 +872,22 @@ void snd_ump_block_info_set_device(snd_ump_block_info_t *info, unsigned int devi - * - * This function is mostly used for setting the block ID to query. - */ -+#ifndef DOXYGEN -+EXPORT_SYMBOL void INTERNAL(snd_ump_block_info_set_block_id)(snd_ump_block_info_t *info, -+ unsigned int id) -+#else - void snd_ump_block_info_set_block_id(snd_ump_block_info_t *info, - unsigned int id) -+#endif - { - info->block_id = id; - } - -+#ifndef DOC_HIDDEN -+use_symbol_version(__snd_ump_block_info_set_block_id, snd_ump_block_info_set_block_id, ALSA_1.2.10); -+use_default_symbol_version(__snd_ump_block_info_set_block_id, snd_ump_block_info_set_block_id, ALSA_1.2.13); -+#endif /* DOC_HIDDEN */ -+ - /** - * \brief set activeness to snd_ump_block_info_t structure - * \param info pointer to a snd_ump_block_info_t structure --- -2.47.0 +2.49.0 diff --git a/alsa-lib.spec b/alsa-lib.spec index 9cb1c65..f6b858a 100644 --- a/alsa-lib.spec +++ b/alsa-lib.spec @@ -2,14 +2,14 @@ #define prever_dot .rc3 #define postver a -%define version_alsa_lib 1.2.13 -%define version_alsa_ucm 1.2.13 +%define version_alsa_lib 1.2.14 +%define version_alsa_ucm 1.2.14 %define version_alsa_tplg 1.2.5 Summary: The Advanced Linux Sound Architecture (ALSA) library Name: alsa-lib Version: %{version_alsa_lib} -Release: 2%{?prever_dot}%{?dist} +Release: 1%{?prever_dot}%{?dist} License: LGPL-2.1-or-later URL: http://www.alsa-project.org/ @@ -167,6 +167,9 @@ rm %{buildroot}/%{_includedir}/asoundlib.h %{_datadir}/alsa/topology %changelog +* Thu Jun 26 2025 Jaroslav Kysela - 1.2.14-1 +- update to alsa-lib 1.2.14 and alsa-ucm-conf 1.2.14 + * Mon Dec 16 2024 Jaroslav Kysela - 1.2.13-2 - update to alsa-lib 1.2.13 and alsa-ucm-conf 1.2.13 diff --git a/alsa-ucm-conf.patch b/alsa-ucm-conf.patch index c459a79..917177c 100644 --- a/alsa-ucm-conf.patch +++ b/alsa-ucm-conf.patch @@ -1,490 +1,852 @@ -From 11b028a9a01e47fc9b48e4a566803752011902e2 Mon Sep 17 00:00:00 2001 -From: Seppo Ingalsuo -Date: Wed, 13 Nov 2024 14:48:38 +0200 -Subject: [PATCH 01/12] UCM2: Intel: sof-hda-dsp: Fix handling of empty - sys_vendor +From 25f519f66c3e496b21ca1ad83ebc6114dfaa9fc3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Maja=20K=C4=85dzio=C5=82ka?= +Date: Tue, 22 Apr 2025 07:46:21 +0200 +Subject: [PATCH 01/24] acp3x-alc5682-max98357: Fix path of HiFi.conf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit -The mistake in UCM syntax caused in alsaucm start error: - -ALSA lib ucm_cond.c:367:(if_eval) unknown If.Condition.Type - -Fixes: 13022a97711d ("sof-hda-dsp: Fix the case where sysfs dmi - sys_vendor attribute is not set") - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/463 -Signed-off-by: Seppo Ingalsuo +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/551 +Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/550 +Fixes: 1048796e7fa9 ("Rename ucm2/AMD/acp3xalc5682m98 to ucm2/AMD/acp3x-alc5682-max98357") +Signed-off-by: Maja Kądziołka Signed-off-by: Jaroslav Kysela --- - ucm2/Intel/sof-hda-dsp/HiFi-sof.conf | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + ucm2/AMD/acp3x-alc5682-max98357/acp3x-alc5682-max98357.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -index fea8159..c755ba2 100644 ---- a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -+++ b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -@@ -6,8 +6,8 @@ Define.SOFVendor "$${sys:devices/virtual/dmi/id/sys_vendor}" - - If.SOFVendor { - Condition { -- Type Empty -- String "${var:SOFVendor}" -+ Type String -+ Empty "${var:SOFVendor}" +diff --git a/ucm2/AMD/acp3x-alc5682-max98357/acp3x-alc5682-max98357.conf b/ucm2/AMD/acp3x-alc5682-max98357/acp3x-alc5682-max98357.conf +index e1f1c9e..5b3f24a 100644 +--- a/ucm2/AMD/acp3x-alc5682-max98357/acp3x-alc5682-max98357.conf ++++ b/ucm2/AMD/acp3x-alc5682-max98357/acp3x-alc5682-max98357.conf +@@ -66,7 +66,7 @@ If.found { + Empty "${var:Found}" + } + False.SectionUseCase."HiFi" { +- File "/AMD/acp3xalc5682m98/HiFi.conf" ++ File "HiFi.conf" + Comment "Default" } - True.Define.SOFVendor "${sys:devices/virtual/dmi/id/board_vendor}" } -- -2.47.0 +2.49.0 -From 6397c663d7086b87ca5cbba323ea3dcd0ecd3200 Mon Sep 17 00:00:00 2001 +From ac64586ab4ad3a0f162af3ec8a196bfd3799c5c0 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela -Date: Wed, 13 Nov 2024 16:19:15 +0100 -Subject: [PATCH 02/12] sof-hda-dsp: Fix the case where sysfs dmi product_name - attribute is not set +Date: Fri, 25 Apr 2025 11:47:20 +0200 +Subject: [PATCH 02/24] USB-Audio: Remove useless sections for Solid State Labs + SSL 2+ - !!DMI Information - !!--------------- - - Manufacturer: - Product Name: - Product Version: - Firmware Version: R6G07 - System SKU: Default string - Board Vendor: Default string - Board Name: Default string - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2292583 Signed-off-by: Jaroslav Kysela --- - ucm2/Intel/sof-hda-dsp/HiFi-sof.conf | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) + ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf | 8 -------- + 1 file changed, 8 deletions(-) -diff --git a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -index c755ba2..5fd1843 100644 ---- a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -+++ b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -@@ -3,6 +3,7 @@ - # File paths for controlling SOF processing +diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf +index d07e499..94e040f 100644 +--- a/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf ++++ b/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf +@@ -28,14 +28,6 @@ Macro [ + SectionDevice."Line1" { + Comment "Line Outputs 1/L + 2/R" - Define.SOFVendor "$${sys:devices/virtual/dmi/id/sys_vendor}" -+Define.SOFProduct "$${sys:devices/virtual/dmi/id/product_name}" - - If.SOFVendor { - Condition { -@@ -12,6 +13,14 @@ If.SOFVendor { - True.Define.SOFVendor "${sys:devices/virtual/dmi/id/board_vendor}" +- EnableSequence [ +- cdev "hw:${CardId}" +- ] +- +- DisableSequence [ +- cdev "hw:${CardId}" +- ] +- + Value { + PlaybackPriority 200 + } +-- +2.49.0 + + +From fc17ed4f991836bb92f288b8714ad7efe6c05926 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Fri, 25 Apr 2025 11:53:11 +0200 +Subject: [PATCH 03/24] USB-Audio: Solid State Labs SSL 2+ - fix capture + channels + +It seems that there are 4 capture channels per report in issue #552: + + Capture: + Status: Stop + Interface 2 + Altset 1 + Format: S32_LE + Channels: 4 + Endpoint: 0x81 (1 IN) (ASYNC) + Rates: 44100, 48000, 88200, 96000, 176400, 192000 + Data packet interval: 125 us + Bits: 24 + Channel map: FL FR FC LFE + +Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/552 +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf | 6 +++--- + ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf +index 94e040f..30160d3 100644 +--- a/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf ++++ b/ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf +@@ -18,7 +18,7 @@ Macro [ + Name "ssl2plus_mono_in" + Direction Capture + Channels 1 +- HWChannels 2 ++ HWChannels 4 + HWChannelPos0 MONO + HWChannelPos1 MONO + } +@@ -70,7 +70,7 @@ SectionDevice."Mic1" { + Macro.pcm_split.SplitPCMDevice { + Name "ssl2plus_mono_in" + Direction Capture +- HWChannels 2 ++ HWChannels 4 + Channels 1 + Channel0 0 + ChannelPos0 MONO +@@ -86,7 +86,7 @@ SectionDevice."Mic2" { + Macro.pcm_split.SplitPCMDevice { + Name "ssl2plus_mono_in" + Direction Capture +- HWChannels 2 ++ HWChannels 4 + Channels 1 + Channel0 1 + ChannelPos0 MONO +diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf +index 2ffe4c4..c886593 100644 +--- a/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf ++++ b/ucm2/USB-Audio/SolidStateLabs/SSL2Plus.conf +@@ -6,6 +6,6 @@ SectionUseCase."HiFi" { } -+If.SOFProduct { -+ Condition { -+ Type String -+ Empty "${var:SOFProduct}" -+ } -+ True.Define.SOFProduct "${sys:devices/virtual/dmi/id/board_name}" -+} -+ - If.SOFIPCVer { - Condition { - Type ControlExists -@@ -43,7 +52,7 @@ If.SOFPath { - HeadphoneIirBlob "${var:BlobPath}/eq_iir/pass.blob" - HeadphoneFirBlob "${var:BlobPath}/eq_fir/pass.blob" - HeadphoneDrcBlob "${var:BlobPath}/drc/passthrough.blob" -- ConfPathFromDMI "${var:SOFVendor}/${sys:devices/virtual/dmi/id/product_name}.conf" -+ ConfPathFromDMI "${var:SOFVendor}/${var:SOFProduct}" - SOFProductConfig "/blobs/sof/product_configs/${var:ConfPathFromDMI}" - SOFConfFullPath "${ConfTopDir}${var:SOFProductConfig}" - SOFUserConfig "/blobs/sof/user_configs/${var:ConfPathFromDMI}" + Define.DirectPlaybackChannels 4 +-Define.DirectCaptureChannels 2 ++Define.DirectCaptureChannels 4 + + Include.dhw.File "/common/direct.conf" -- -2.47.0 +2.49.0 -From 70f5bff86035d454312c9d01e304a95791668ea5 Mon Sep 17 00:00:00 2001 -From: Peter Ujfalusi -Date: Tue, 19 Nov 2024 11:51:15 +0200 -Subject: [PATCH 03/12] sof-soundwire: cs42l43-spk: Correct PlaybackPCM and - routing +From 6c2177e856ffa884929ba84de2ba379b80e054a3 Mon Sep 17 00:00:00 2001 +From: Konrad Dybcio +Date: Mon, 14 Apr 2025 20:47:38 +0200 +Subject: [PATCH 04/24] ucm2: Qualcomm: x1e80100: Also match DMI board name -For speaker the correct PCM device to use is "hw:${CardId},2", the -"hw:${CardId},0" is for headset playback. +The Surface Laptop 7 only says "Microsoft Corporation" and "Surface" +in the board_vendor and product_family fields respectively. Add another +field to match on. -Adjust the routing as well since with :0,2 the DP6RX1/2 needs to be -selected for the speaker. - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/465 -Signed-off-by: Peter Ujfalusi +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/546 +Signed-off-by: Konrad Dybcio Signed-off-by: Jaroslav Kysela --- - ucm2/sof-soundwire/cs42l43-spk.conf | 6 +++--- + ucm2/Qualcomm/x1e80100/x1e80100.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ucm2/Qualcomm/x1e80100/x1e80100.conf b/ucm2/Qualcomm/x1e80100/x1e80100.conf +index 3f89986..3eef4d4 100644 +--- a/ucm2/Qualcomm/x1e80100/x1e80100.conf ++++ b/ucm2/Qualcomm/x1e80100/x1e80100.conf +@@ -1,6 +1,6 @@ + Syntax 4 + +-Define.DMI_info "${sys:devices/virtual/dmi/id/board_vendor}-${sys:devices/virtual/dmi/id/product_family}" ++Define.DMI_info "${sys:devices/virtual/dmi/id/board_vendor}-${sys:devices/virtual/dmi/id/product_family}-${sys:devices/virtual/dmi/id/board_name}" + + If.LENOVOT14s { + Condition { +-- +2.49.0 + + +From c93b7c8cc3137180cf1e91af2dd212bbf604b66f Mon Sep 17 00:00:00 2001 +From: Konrad Dybcio +Date: Mon, 14 Apr 2025 20:47:38 +0200 +Subject: [PATCH 05/24] ucm2: Qualcomm: Add Surface Laptop 7 + +2 speakers, 2 dmics, combo jack, just like the T14s - reuse its +configuration + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/546 +Signed-off-by: Konrad Dybcio +Signed-off-by: Jaroslav Kysela +--- + ucm2/Qualcomm/x1e80100/x1e80100.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ucm2/Qualcomm/x1e80100/x1e80100.conf b/ucm2/Qualcomm/x1e80100/x1e80100.conf +index 3eef4d4..10faf5f 100644 +--- a/ucm2/Qualcomm/x1e80100/x1e80100.conf ++++ b/ucm2/Qualcomm/x1e80100/x1e80100.conf +@@ -6,7 +6,7 @@ If.LENOVOT14s { + Condition { + Type RegexMatch + String "${var:DMI_info}" +- Regex "LENOVO.*Think((Pad T14s Gen 6.*)|(Book 16 G7 QOY))|(HP.*Omnibook X.*)|(ASUSTeK COMPUTER.*ASUS Zenbook A14)" ++ Regex "LENOVO.*Think((Pad T14s Gen 6.*)|(Book 16 G7 QOY))|(HP.*Omnibook X.*)|(ASUSTeK COMPUTER.*ASUS Zenbook A14)|(Microsoft Corporation.*Surface.*Microsoft Surface Laptop, 7th Edition)" + } + True.Include.t14s.File "/Qualcomm/x1e80100/LENOVO-T14s.conf" + } +-- +2.49.0 + + +From 9105573b6cb71c4821d88e6eef0c4b2cfbb4ea61 Mon Sep 17 00:00:00 2001 +From: Svyatoslav Ryhel +Date: Sun, 27 Apr 2025 13:02:19 +0300 +Subject: [PATCH 06/24] tegra: max98089: fix cset names + +Adjust configs to match Linux kernel MAX98089 codec driver change. + +Fixes: 725570f9 ("ASoC: max98088: Remove duplicate DACs") + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/556 +Signed-off-by: Svyatoslav Ryhel +Signed-off-by: Jaroslav Kysela +--- + ucm2/Tegra/max98089/lge-x3-HiFi.conf | 24 +++++---------- + ucm2/Tegra/max98089/lge-x3-VoiceCall.conf | 36 ++++++++--------------- + ucm2/Tegra/max98089/lge-x3.conf | 6 ++-- + 3 files changed, 22 insertions(+), 44 deletions(-) + +diff --git a/ucm2/Tegra/max98089/lge-x3-HiFi.conf b/ucm2/Tegra/max98089/lge-x3-HiFi.conf +index 3738d72..d074b9f 100644 +--- a/ucm2/Tegra/max98089/lge-x3-HiFi.conf ++++ b/ucm2/Tegra/max98089/lge-x3-HiFi.conf +@@ -11,20 +11,16 @@ SectionDevice."Speaker" { + cset "name='Speaker Switch' on" + cset "name='Int Spk Switch' on" + +- cset "name='Left SPK Mixer Left DAC1 Switch' on" +- cset "name='Left SPK Mixer Left DAC2 Switch' on" +- cset "name='Left SPK Mixer Right DAC1 Switch' on" +- cset "name='Left SPK Mixer Right DAC2 Switch' on" ++ cset "name='Left SPK Mixer Left DAC Switch' on" ++ cset "name='Left SPK Mixer Right DAC Switch' on" + ] + + DisableSequence [ + cset "name='Speaker Switch' off" + cset "name='Int Spk Switch' off" + +- cset "name='Left SPK Mixer Left DAC1 Switch' off" +- cset "name='Left SPK Mixer Left DAC2 Switch' off" +- cset "name='Left SPK Mixer Right DAC1 Switch' off" +- cset "name='Left SPK Mixer Right DAC2 Switch' off" ++ cset "name='Left SPK Mixer Left DAC Switch' off" ++ cset "name='Left SPK Mixer Right DAC Switch' off" + ] + + Value { +@@ -46,19 +42,15 @@ SectionDevice."Headphones" { + EnableSequence [ + cset "name='Headphone Switch' on" + +- cset "name='Left HP Mixer Left DAC1 Switch' on" +- cset "name='Left HP Mixer Left DAC2 Switch' on" +- cset "name='Right HP Mixer Right DAC1 Switch' on" +- cset "name='Right HP Mixer Right DAC2 Switch' on" ++ cset "name='Left HP Mixer Left DAC Switch' on" ++ cset "name='Right HP Mixer Right DAC Switch' on" + ] + + DisableSequence [ + cset "name='Headphone Switch' off" + +- cset "name='Left HP Mixer Left DAC1 Switch' off" +- cset "name='Left HP Mixer Left DAC2 Switch' off" +- cset "name='Right HP Mixer Right DAC1 Switch' off" +- cset "name='Right HP Mixer Right DAC2 Switch' off" ++ cset "name='Left HP Mixer Left DAC Switch' off" ++ cset "name='Right HP Mixer Right DAC Switch' off" + ] + + Value { +diff --git a/ucm2/Tegra/max98089/lge-x3-VoiceCall.conf b/ucm2/Tegra/max98089/lge-x3-VoiceCall.conf +index 1634c7b..8e3a389 100644 +--- a/ucm2/Tegra/max98089/lge-x3-VoiceCall.conf ++++ b/ucm2/Tegra/max98089/lge-x3-VoiceCall.conf +@@ -11,20 +11,16 @@ SectionDevice."Speaker" { + cset "name='Speaker Switch' on" + cset "name='Int Spk Switch' on" + +- cset "name='Left SPK Mixer Left DAC1 Switch' on" +- cset "name='Left SPK Mixer Left DAC2 Switch' on" +- cset "name='Left SPK Mixer Right DAC1 Switch' on" +- cset "name='Left SPK Mixer Right DAC2 Switch' on" ++ cset "name='Left SPK Mixer Left DAC Switch' on" ++ cset "name='Left SPK Mixer Right DAC Switch' on" + ] + + DisableSequence [ + cset "name='Speaker Switch' off" + cset "name='Int Spk Switch' off" + +- cset "name='Left SPK Mixer Left DAC1 Switch' off" +- cset "name='Left SPK Mixer Left DAC2 Switch' off" +- cset "name='Left SPK Mixer Right DAC1 Switch' off" +- cset "name='Left SPK Mixer Right DAC2 Switch' off" ++ cset "name='Left SPK Mixer Left DAC Switch' off" ++ cset "name='Left SPK Mixer Right DAC Switch' off" + ] + + Value { +@@ -47,30 +43,22 @@ SectionDevice."Earpiece" { + cset "name='Receiver Switch' on" + cset "name='Earpiece Switch' on" + +- cset "name='Left REC Mixer Left DAC1 Switch' on" +- cset "name='Left REC Mixer Left DAC2 Switch' on" +- cset "name='Left REC Mixer Right DAC1 Switch' on" +- cset "name='Left REC Mixer Right DAC2 Switch' on" ++ cset "name='Left REC Mixer Left DAC Switch' on" ++ cset "name='Left REC Mixer Right DAC Switch' on" + +- cset "name='Right REC Mixer Left DAC1 Switch' on" +- cset "name='Right REC Mixer Left DAC2 Switch' on" +- cset "name='Right REC Mixer Right DAC1 Switch' on" +- cset "name='Right REC Mixer Right DAC2 Switch' on" ++ cset "name='Right REC Mixer Left DAC Switch' on" ++ cset "name='Right REC Mixer Right DAC Switch' on" + ] + + DisableSequence [ + cset "name='Receiver Switch' off" + cset "name='Earpiece Switch' off" + +- cset "name='Left REC Mixer Left DAC1 Switch' off" +- cset "name='Left REC Mixer Left DAC2 Switch' off" +- cset "name='Left REC Mixer Right DAC1 Switch' off" +- cset "name='Left REC Mixer Right DAC2 Switch' off" ++ cset "name='Left REC Mixer Left DAC Switch' off" ++ cset "name='Left REC Mixer Right DAC Switch' off" + +- cset "name='Right REC Mixer Left DAC1 Switch' off" +- cset "name='Right REC Mixer Left DAC2 Switch' off" +- cset "name='Right REC Mixer Right DAC1 Switch' off" +- cset "name='Right REC Mixer Right DAC2 Switch' off" ++ cset "name='Right REC Mixer Left DAC Switch' off" ++ cset "name='Right REC Mixer Right DAC Switch' off" + ] + + Value { +diff --git a/ucm2/Tegra/max98089/lge-x3.conf b/ucm2/Tegra/max98089/lge-x3.conf +index 9bea0cc..c90c4a1 100644 +--- a/ucm2/Tegra/max98089/lge-x3.conf ++++ b/ucm2/Tegra/max98089/lge-x3.conf +@@ -30,10 +30,8 @@ BootSequence [ + cset "name='Internal Mic 2 Switch' off" + cset "name='Mic Jack Switch' off" + +- cset "name='Right SPK Mixer Left DAC1 Switch' on" +- cset "name='Right SPK Mixer Left DAC2 Switch' on" +- cset "name='Right SPK Mixer Right DAC1 Switch' on" +- cset "name='Right SPK Mixer Right DAC2 Switch' on" ++ cset "name='Right SPK Mixer Left DAC Switch' on" ++ cset "name='Right SPK Mixer Right DAC Switch' on" + ] + + SectionUseCase."HiFi" { +-- +2.49.0 + + +From a1edaee761d301f7d010124599fd9f82c34fc7db Mon Sep 17 00:00:00 2001 +From: Markus Parviainen +Date: Sun, 27 Apr 2025 20:20:42 +0300 +Subject: [PATCH 07/24] Fix Presonus Revelator IO44 HWChannels count + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/557 +Signed-off-by: Markus Parviainen +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/Presonus/Revelator-IO-44-HiFi.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/ucm2/sof-soundwire/cs42l43-spk.conf b/ucm2/sof-soundwire/cs42l43-spk.conf -index 73f1299..693c450 100644 ---- a/ucm2/sof-soundwire/cs42l43-spk.conf -+++ b/ucm2/sof-soundwire/cs42l43-spk.conf -@@ -8,8 +8,8 @@ SectionDevice."Speaker" { - ] - - EnableSequence [ -- cset "name='cs42l43 Speaker L Input 1' 'DP5RX1'" -- cset "name='cs42l43 Speaker R Input 1' 'DP5RX2'" -+ cset "name='cs42l43 Speaker L Input 1' 'DP6RX1'" -+ cset "name='cs42l43 Speaker R Input 1' 'DP6RX2'" - ] - - DisableSequence [ -@@ -19,7 +19,7 @@ SectionDevice."Speaker" { - - Value { - PlaybackPriority 100 -- PlaybackPCM "hw:${CardId},0" -+ PlaybackPCM "hw:${CardId},2" - PlaybackMixerElem "cs42l43 Speaker Digital" +diff --git a/ucm2/USB-Audio/Presonus/Revelator-IO-44-HiFi.conf b/ucm2/USB-Audio/Presonus/Revelator-IO-44-HiFi.conf +index f223e08..6439613 100644 +--- a/ucm2/USB-Audio/Presonus/Revelator-IO-44-HiFi.conf ++++ b/ucm2/USB-Audio/Presonus/Revelator-IO-44-HiFi.conf +@@ -59,7 +59,7 @@ SectionDevice."Line1" { + Macro.pcm_split.SplitPCMDevice { + Name "revelator_stereo_out" + Direction Playback +- HWChannels 2 ++ HWChannels 6 + Channels 2 + Channel0 0 + Channel1 1 +@@ -78,7 +78,7 @@ SectionDevice."Line2" { + Macro.pcm_split.SplitPCMDevice { + Name "revelator_stereo_out" + Direction Playback +- HWChannels 2 ++ HWChannels 6 + Channels 2 + Channel0 2 + Channel1 3 +@@ -97,7 +97,7 @@ SectionDevice."Line3" { + Macro.pcm_split.SplitPCMDevice { + Name "revelator_stereo_out" + Direction Playback +- HWChannels 2 ++ HWChannels 6 + Channels 2 + Channel0 4 + Channel1 5 +-- +2.49.0 + + +From aa25928dd03299afc9bff994f06c37fc700bb8c0 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Thu, 15 May 2025 15:06:56 +0200 +Subject: [PATCH 08/24] ucm2: Qualcomm: sc8280xp: fix internal microphones + device + +A recent change renamed the internal microphones device from "DMic01" to +"Mic", but the latter name is already used by the headset microphone so +this breaks the internal microphones on the Lenovo ThinkPad X13s. + +Rename the headset microphone device so that the names are unique and +fix up the jack hw mute property which is still using the old name. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/563 +Fixes: ea7a065a7b50 ("ucm: fix SectionDevice identifiers") +Signed-off-by: Johan Hovold +Signed-off-by: Jaroslav Kysela +--- + ucm2/Qualcomm/sc8280xp/HiFi.conf | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ucm2/Qualcomm/sc8280xp/HiFi.conf b/ucm2/Qualcomm/sc8280xp/HiFi.conf +index e20aa9c..916f1ee 100644 +--- a/ucm2/Qualcomm/sc8280xp/HiFi.conf ++++ b/ucm2/Qualcomm/sc8280xp/HiFi.conf +@@ -50,8 +50,8 @@ SectionDevice."Headphones" { } } --- -2.47.0 - - -From 02f4fb77d10ab08a2253d77b90942b5ce9a7ed87 Mon Sep 17 00:00:00 2001 -From: lbilli -Date: Thu, 14 Nov 2024 20:06:48 -0500 -Subject: [PATCH 04/12] avs_nau8825: Fix JackControl name - -This is the name reported by amixer events. - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/464 -Signed-off-by: lbilli -Signed-off-by: Jaroslav Kysela ---- - ucm2/Intel/avs/avs_nau8825/avs_nau8825-HiFi.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ucm2/Intel/avs/avs_nau8825/avs_nau8825-HiFi.conf b/ucm2/Intel/avs/avs_nau8825/avs_nau8825-HiFi.conf -index 3f3e6c9..71f7ed0 100644 ---- a/ucm2/Intel/avs/avs_nau8825/avs_nau8825-HiFi.conf -+++ b/ucm2/Intel/avs/avs_nau8825/avs_nau8825-HiFi.conf -@@ -21,7 +21,7 @@ SectionDevice."Mic" { - Value { - CapturePCM "hw:${CardId},1" - CaptureCTL "Mic" -- JackControl "Headset Mic" -+ JackControl "Headset Mic Jack" - } - EnableSequence [ --- -2.47.0 - - -From 30989bd0c2aa3f9f4b6f5e393397b39678717f45 Mon Sep 17 00:00:00 2001 -From: Charles Keepax -Date: Wed, 20 Nov 2024 10:06:06 +0000 -Subject: [PATCH 05/12] sof-soundwire: cs42l43: Correct CapturePCM and routing - -For headset microphone capture the correct PCM device to use is -"hw:${CardId},1", "hw:${CardId},4" is for built in microphone capture. - -Adjust the routing as well since :0,1 is connected to data port 2 on the -codec. - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/466 -Signed-off-by: Charles Keepax -Signed-off-by: Jaroslav Kysela ---- - ucm2/sof-soundwire/cs42l43.conf | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/ucm2/sof-soundwire/cs42l43.conf b/ucm2/sof-soundwire/cs42l43.conf -index dc11840..4b4e118 100644 ---- a/ucm2/sof-soundwire/cs42l43.conf -+++ b/ucm2/sof-soundwire/cs42l43.conf -@@ -28,19 +28,19 @@ SectionDevice."Headset" { - cset "name='cs42l43 ADC1 Input' 'IN1'" - cset "name='cs42l43 Decimator 1 Mode' 'ADC'" +-SectionDevice."Mic" { +- Comment "Mic" ++SectionDevice."Headset" { ++ Comment "Headset microphone" -- cset "name='cs42l43 DP1TX1 Input' 'Decimator 1'" -- cset "name='cs42l43 DP1TX2 Input' 'Decimator 1'" -+ cset "name='cs42l43 DP2TX1 Input' 'Decimator 1'" -+ cset "name='cs42l43 DP2TX2 Input' 'Decimator 1'" - ] - - DisableSequence [ - cset "name='cs42l43 Decimator 1 Switch' 0" -- cset "name='cs42l43 DP1TX1 Input' 'None'" -- cset "name='cs42l43 DP1TX2 Input' 'None'" -+ cset "name='cs42l43 DP2TX1 Input' 'None'" -+ cset "name='cs42l43 DP2TX2 Input' 'None'" - ] - - Value { - CapturePriority 200 -- CapturePCM "hw:${CardId},4" -+ CapturePCM "hw:${CardId},1" - CaptureMixer "default:${CardId}" - CaptureMixerElem "cs42l43 Headset Microphone" - JackControl "Headset Mic Jack" --- -2.47.0 - - -From 62acef2efffdcb75a35f90d266bcad145b4eab35 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Fri, 29 Nov 2024 14:04:00 +0100 -Subject: [PATCH 06/12] sof-soundwire: whitespace cleanup - -Signed-off-by: Jaroslav Kysela ---- - ucm2/common/pcm/hdmi.conf | 2 +- - ucm2/sof-soundwire/sof-soundwire.conf | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ucm2/common/pcm/hdmi.conf b/ucm2/common/pcm/hdmi.conf -index e2820dc..37338ec 100644 ---- a/ucm2/common/pcm/hdmi.conf -+++ b/ucm2/common/pcm/hdmi.conf -@@ -69,7 +69,7 @@ DefineMacro.HdmiPCMSave { - } - - FixedBootSequence [ -- cfg-save "${var:LibDir}/${var:__Name}.conf:hdmi-pcm" -+ cfg-save "${var:LibDir}/${var:__Name}.conf:hdmi-pcm" - ] - } - -diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf -index 34f9661..bb14ef2 100644 ---- a/ucm2/sof-soundwire/sof-soundwire.conf -+++ b/ucm2/sof-soundwire/sof-soundwire.conf -@@ -157,7 +157,7 @@ If.mics-array { - Empty "${var:Mics1}" - } - False.FixedBootSequence { -- # dmic array info -+ # dmic array info - exec "-nhlt-dmic-info -o ${var:LibDir}/dmics-nhlt.json" + Include.wcdmice.File "/codecs/wcd938x/HeadphoneMicEnableSeq.conf" + Include.wcdmicd.File "/codecs/wcd938x/HeadphoneMicDisableSeq.conf" +@@ -63,12 +63,12 @@ SectionDevice."Mic" { + CapturePCM "hw:${CardId},2" + CaptureMixerElem "ADC2" + JackControl "Mic Jack" +- JackHWMute "DMic01" ++ JackHWMute "Mic" } } --- -2.47.0 - - -From 4a01327cc43a18124c0a4a5bcfb840e6ed1efe0a Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Wed, 4 Dec 2024 10:20:51 +0100 -Subject: [PATCH 07/12] sof-hda-dsp: Add back missing .conf suffix for - product/user specific configs - -Fixes: 6397c66 ("sof-hda-dsp: Fix the case where sysfs dmi product_name attribute is not set") -Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/482 -Signed-off-by: Jaroslav Kysela ---- - ucm2/Intel/sof-hda-dsp/HiFi-sof.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -index 5fd1843..3a4c445 100644 ---- a/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -+++ b/ucm2/Intel/sof-hda-dsp/HiFi-sof.conf -@@ -52,7 +52,7 @@ If.SOFPath { - HeadphoneIirBlob "${var:BlobPath}/eq_iir/pass.blob" - HeadphoneFirBlob "${var:BlobPath}/eq_fir/pass.blob" - HeadphoneDrcBlob "${var:BlobPath}/drc/passthrough.blob" -- ConfPathFromDMI "${var:SOFVendor}/${var:SOFProduct}" -+ ConfPathFromDMI "${var:SOFVendor}/${var:SOFProduct}.conf" - SOFProductConfig "/blobs/sof/product_configs/${var:ConfPathFromDMI}" - SOFConfFullPath "${ConfTopDir}${var:SOFProductConfig}" - SOFUserConfig "/blobs/sof/user_configs/${var:ConfPathFromDMI}" --- -2.47.0 - - -From 0782bf435b8332833e7b3fc91501d78473dd6edf Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Fri, 29 Nov 2024 14:17:57 +0100 -Subject: [PATCH 08/12] amd-soundwire: add support for AMD generic legacy - machine driver - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/478 -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/470 -Signed-off-by: Jaroslav Kysela ---- - ucm2/conf.d/amd-soundwire/amd-soundwire.conf | 1 + - ucm2/sof-soundwire/rt722.conf | 15 +++++++++++++++ - 2 files changed, 16 insertions(+) - create mode 120000 ucm2/conf.d/amd-soundwire/amd-soundwire.conf - -diff --git a/ucm2/conf.d/amd-soundwire/amd-soundwire.conf b/ucm2/conf.d/amd-soundwire/amd-soundwire.conf -new file mode 120000 -index 0000000..0d00b73 ---- /dev/null -+++ b/ucm2/conf.d/amd-soundwire/amd-soundwire.conf -@@ -0,0 +1 @@ -+../../sof-soundwire/sof-soundwire.conf -\ No newline at end of file -diff --git a/ucm2/sof-soundwire/rt722.conf b/ucm2/sof-soundwire/rt722.conf -index a54664e..a4a431b 100644 ---- a/ucm2/sof-soundwire/rt722.conf -+++ b/ucm2/sof-soundwire/rt722.conf -@@ -86,6 +86,21 @@ SectionDevice."Headset" { - cset "name='rt722 FU0F Capture Switch' 0" - ] -+ If.hsmicsw { -+ Condition { -+ Type ControlExists -+ Control "name='Headset Mic Switch'" -+ } -+ True { -+ EnableSequence [ -+ cset "name='Headset Mic Switch' on" -+ ] -+ DisableSequence [ -+ cset "name='Headset Mic Switch' off" -+ ] -+ } -+ } -+ - Value { - CapturePriority 200 - CapturePCM "hw:${CardId},1" + SectionDevice."Mic" { +- Comment "Microphone" ++ Comment "Internal microphones" + + Include.vadm0e.File "/codecs/qcom-lpass/va-macro/DMIC0EnableSeq.conf" + Include.vadm0d.File "/codecs/qcom-lpass/va-macro/DMIC0DisableSeq.conf" -- -2.47.0 +2.49.0 -From 003201356388692525a60bbd0da359f97aac99f3 Mon Sep 17 00:00:00 2001 -From: Peter Ujfalusi -Date: Tue, 10 Dec 2024 11:04:31 +0200 -Subject: [PATCH 09/12] ucm2: sof-soundwire: Correct FixedBootSequence for dmic - info +From 88e1cd78633ea0ad46115ffe8779140fa91fd2f5 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Thu, 15 May 2025 15:14:53 +0200 +Subject: [PATCH 09/24] ucm2: Qualcomm: sm8650: QRD: fix headset jack hw mute -Replace the curly brackets with square brackets. -The curly ones break the FixedBootSequence parsing by resetting the -sequence. -If the /var/lib/alsa/card0.conf.d is not present then UCM will fail because -all sequences before the dmic is lost, including the card-init: +A recent change renamed the internal microphone devices but failed to +update the headset jack hw mute properties that are still using the old +names. -# alsactl init -alsa-lib main.c:619:(execute_cfgsave) unable to open file '/var/lib/alsa/card0.conf.d/42-sof-hdmi.conf': No such file or directory -alsa-lib main.c:2456:(set_fixedboot_user) Unable to execute force boot sequence - -The full sequence supposed to be: -card-init -ctl-remap -cs42l43 -dmic -hdmi - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/485 -Fixes: 9fa70add7638 ("sof-hda-dsp,sof-soundwire: add CaptureMicInfoFile fields for dmics") -Signed-off-by: Peter Ujfalusi +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/563 +Fixes: ea7a065a7b50 ("ucm: fix SectionDevice identifiers") +Signed-off-by: Johan Hovold Signed-off-by: Jaroslav Kysela --- - ucm2/sof-soundwire/sof-soundwire.conf | 4 ++-- + ucm2/Qualcomm/sm8650/QRD/HiFi.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf -index bb14ef2..a2f9589 100644 ---- a/ucm2/sof-soundwire/sof-soundwire.conf -+++ b/ucm2/sof-soundwire/sof-soundwire.conf -@@ -156,10 +156,10 @@ If.mics-array { - Type String - Empty "${var:Mics1}" +diff --git a/ucm2/Qualcomm/sm8650/QRD/HiFi.conf b/ucm2/Qualcomm/sm8650/QRD/HiFi.conf +index 4336525..ca40c29 100644 +--- a/ucm2/Qualcomm/sm8650/QRD/HiFi.conf ++++ b/ucm2/Qualcomm/sm8650/QRD/HiFi.conf +@@ -77,8 +77,8 @@ SectionDevice."Headset" { + CapturePCM "hw:${CardId},2" + CaptureMixerElem "ADC2" + JackControl "Mic Jack" +- JackHWMute "Bottom" +- JackHWMute "Back" ++ JackHWMute "Mic1" ++ JackHWMute "Mic2" } -- False.FixedBootSequence { -+ False.FixedBootSequence [ - # dmic array info - exec "-nhlt-dmic-info -o ${var:LibDir}/dmics-nhlt.json" -- } -+ ] } - Include.hdmi-pcm.File "/common/pcm/hdmi.conf" -- -2.47.0 +2.49.0 -From 52c5cd74512c8130bdb6504cdb4859a89154b35d Mon Sep 17 00:00:00 2001 -From: Konna1337 -Date: Sun, 24 Nov 2024 04:51:49 +0100 -Subject: [PATCH 10/12] Configuration files for Roland Bridge Cast X V2 +From bab88e0c31cee1c2603428c2ce6444aea343b646 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Thu, 15 May 2025 15:17:02 +0200 +Subject: [PATCH 10/24] ucm2: tegra: max98090: fix headphones conflicting + device -Added configuration for Roland BridgeCast X. X Version of Bridgecast is wired diferently than the non X Version wich is supported +A recent change renames the speaker device but failed to update the +headphones conflicting device list. -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/469 -Signed-off-by: Konna1337 +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/563 +Fixes: ea7a065a7b50 ("ucm: fix SectionDevice identifiers") +Signed-off-by: Johan Hovold Signed-off-by: Jaroslav Kysela --- - ucm2/USB-Audio/Roland/BridgeCastXV2-Hifi.conf | 174 ++++++++++++++++++ - ucm2/USB-Audio/Roland/BridgeCastXV2.conf | 6 + - ucm2/USB-Audio/USB-Audio.conf | 9 + - 3 files changed, 189 insertions(+) - create mode 100644 ucm2/USB-Audio/Roland/BridgeCastXV2-Hifi.conf - create mode 100644 ucm2/USB-Audio/Roland/BridgeCastXV2.conf + ucm2/Tegra/max98090/HiFi.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/ucm2/USB-Audio/Roland/BridgeCastXV2-Hifi.conf b/ucm2/USB-Audio/Roland/BridgeCastXV2-Hifi.conf +diff --git a/ucm2/Tegra/max98090/HiFi.conf b/ucm2/Tegra/max98090/HiFi.conf +index d6e4e9d..5d4ef71 100644 +--- a/ucm2/Tegra/max98090/HiFi.conf ++++ b/ucm2/Tegra/max98090/HiFi.conf +@@ -33,7 +33,7 @@ SectionDevice."Headphones" { + Comment = "Headphones" + + ConflictingDevice [ +- "Speakers" ++ "Speaker" + ] + + EnableSequence [ +-- +2.49.0 + + +From 24d62b54d5ad6c7e6f9cff4cedcc334b1c98602f Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Thu, 15 May 2025 15:19:01 +0200 +Subject: [PATCH 11/24] ucm2: USB-Audio: Behringer: Flow8: fix conflicting + devices + +A recent change renamed the Line-56 and Line-78 devices but failed to +update the conflicting device lists. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/563 +Fixes: ea7a065a7b50 ("ucm: fix SectionDevice identifiers") +Signed-off-by: Johan Hovold +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/Behringer/Flow8-Recording-Hifi.conf | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ucm2/USB-Audio/Behringer/Flow8-Recording-Hifi.conf b/ucm2/USB-Audio/Behringer/Flow8-Recording-Hifi.conf +index 5dce19c..8ce7590 100644 +--- a/ucm2/USB-Audio/Behringer/Flow8-Recording-Hifi.conf ++++ b/ucm2/USB-Audio/Behringer/Flow8-Recording-Hifi.conf +@@ -157,7 +157,7 @@ SectionDevice."Line5" { + Comment "Line/Inst 5 (L)" + + ConflictingDevice [ +- "Line56" ++ "Line9" + ] + + Value { +@@ -177,7 +177,7 @@ SectionDevice."Line6" { + Comment "Line/Inst(HiZ) 6 (R)" + + ConflictingDevice [ +- "Line56" ++ "Line9" + ] + + Value { +@@ -197,7 +197,7 @@ SectionDevice."Line7" { + Comment "Line/Inst 7 (L)" + + ConflictingDevice [ +- "Line78" ++ "Line10" + ] + + Value { +@@ -217,7 +217,7 @@ SectionDevice."Line8" { + Comment "Line/Inst(HiZ) 8 (R)" + + ConflictingDevice [ +- "Line78" ++ "Line10" + ] + + Value { +-- +2.49.0 + + +From 1f816194a9feb2ce0c973ccc2a93551a6f641d77 Mon Sep 17 00:00:00 2001 +From: Hiago De Franco +Date: Mon, 12 May 2025 13:57:32 -0300 +Subject: [PATCH 12/24] ucm2: IO-Boards: Toradex: smarc: add support + +Add support for Toradex SMARC Development board, using the WM8904 audio +codec. + +This is a carrier board for the Toradex SMARC family, where any SMARC +SoM can be connected to it, therefore this is being added to the +IO-Boards instead of a specific hardware vendor. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/562 +Signed-off-by: Hiago De Franco +Signed-off-by: Jaroslav Kysela +--- + ucm2/IO-Boards/Toradex/smarc/dev-HiFi.conf | 39 +++++++++++++++++++ + ucm2/IO-Boards/Toradex/smarc/dev.conf | 17 ++++++++ + ucm2/conf.d/simple-card/tdx-smarc-wm8904.conf | 1 + + 3 files changed, 57 insertions(+) + create mode 100644 ucm2/IO-Boards/Toradex/smarc/dev-HiFi.conf + create mode 100644 ucm2/IO-Boards/Toradex/smarc/dev.conf + create mode 120000 ucm2/conf.d/simple-card/tdx-smarc-wm8904.conf + +diff --git a/ucm2/IO-Boards/Toradex/smarc/dev-HiFi.conf b/ucm2/IO-Boards/Toradex/smarc/dev-HiFi.conf new file mode 100644 -index 0000000..426a15a +index 0000000..7d2dffc --- /dev/null -+++ b/ucm2/USB-Audio/Roland/BridgeCastXV2-Hifi.conf -@@ -0,0 +1,174 @@ ++++ b/ucm2/IO-Boards/Toradex/smarc/dev-HiFi.conf +@@ -0,0 +1,39 @@ ++# Use case configuration for Toradex SMARC Development Carrier Board ++# This is a carrier board for the Toradex SMARC family, where any Toradex SMARC ++# SoM (with different SoCs as iMX8MP, iMX95...) can be connected to it. ++ ++SectionDevice."Headphones" { ++ Comment "Headphones" ++ ++ EnableSequence [ ++ cset "name='Headphone Switch' on" ++ ] ++ ++ DisableSequence [ ++ cset "name='Headphone Switch' off" ++ ] ++ ++ Value { ++ PlaybackPCM "hw:${CardId}" ++ PlaybackVolume "Headphone Volume" ++ PlaybackSwitch "Headphone Switch" ++ } ++} ++ ++SectionDevice."Mic" { ++ Comment "Microphone" ++ ++ EnableSequence [ ++ cset "name='Capture Switch' on" ++ ] ++ ++ DisableSequence [ ++ cset "name='Capture Switch' off" ++ ] ++ ++ Value { ++ CapturePCM "hw:${CardId}" ++ CaptureVolume "Capture Volume" ++ CaptureSwitch "Capture Switch" ++ } ++} +diff --git a/ucm2/IO-Boards/Toradex/smarc/dev.conf b/ucm2/IO-Boards/Toradex/smarc/dev.conf +new file mode 100644 +index 0000000..e795068 +--- /dev/null ++++ b/ucm2/IO-Boards/Toradex/smarc/dev.conf +@@ -0,0 +1,17 @@ ++# Use case configuration for Toradex SMARC Development Carrier Board ++# This is a carrier board for the Toradex SMARC family, where any Toradex SMARC ++# SoM (with different SoCs as iMX8MP, iMX95...) can be connected to it. ++ ++Syntax 4 ++ ++SectionUseCase."HiFi" { ++ File "/IO-Boards/Toradex/smarc/dev-HiFi.conf" ++ Comment "Default" ++} ++ ++BootSequence [ ++ cset "name='Headphone Volume' 50%" ++ cset "name='Left Capture Inverting Mux' 'IN1L'" ++ cset "name='Right Capture Inverting Mux' 'IN1R'" ++ cset "name='Capture Volume' 31" ++] +diff --git a/ucm2/conf.d/simple-card/tdx-smarc-wm8904.conf b/ucm2/conf.d/simple-card/tdx-smarc-wm8904.conf +new file mode 120000 +index 0000000..096f833 +--- /dev/null ++++ b/ucm2/conf.d/simple-card/tdx-smarc-wm8904.conf +@@ -0,0 +1 @@ ++../../IO-Boards/Toradex/smarc/dev.conf +\ No newline at end of file +-- +2.49.0 + + +From ac918f9b606f6bfe102c449997a1bcab01934db0 Mon Sep 17 00:00:00 2001 +From: Flo +Date: Sat, 24 May 2025 11:52:12 +0200 +Subject: [PATCH 13/24] USB-Audio: Solid State Labs SSL 2 - fix capture + channels + +Same fix as for SSL+, commit fc17ed4. +Capture configuration is the same, with 4 channels. + + Capture: + Status: Stop + Interface 2 + Altset 1 + Format: S32_LE + Channels: 4 + Endpoint: 0x81 (1 IN) (ASYNC) + Rates: 44100, 48000, 88200, 96000, 176400, 192000 + Data packet interval: 125 us + Bits: 24 + Channel map: FL FR FC LFE + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/566 +Signed-off-by: Flo +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf | 6 +++--- + ucm2/USB-Audio/SolidStateLabs/SSL2.conf | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf +index 46b2e26..8663384 100644 +--- a/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf ++++ b/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf +@@ -6,7 +6,7 @@ Macro [ + Name "ssl2_mono_in" + Direction Capture + Channels 1 +- HWChannels 2 ++ HWChannels 4 + HWChannelPos0 MONO + HWChannelPos1 MONO + } +@@ -31,7 +31,7 @@ SectionDevice."Mic1" { + Macro.pcm_split.SplitPCMDevice { + Name "ssl2_mono_in" + Direction Capture +- HWChannels 2 ++ HWChannels 4 + Channels 1 + Channel0 0 + ChannelPos0 MONO +@@ -47,7 +47,7 @@ SectionDevice."Mic2" { + Macro.pcm_split.SplitPCMDevice { + Name "ssl2_mono_in" + Direction Capture +- HWChannels 2 ++ HWChannels 4 + Channels 1 + Channel0 1 + ChannelPos0 MONO +diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2.conf +index 5531834..3cdb60b 100644 +--- a/ucm2/USB-Audio/SolidStateLabs/SSL2.conf ++++ b/ucm2/USB-Audio/SolidStateLabs/SSL2.conf +@@ -6,6 +6,6 @@ SectionUseCase."HiFi" { + } + + Define.DirectPlaybackChannels 2 +-Define.DirectCaptureChannels 2 ++Define.DirectCaptureChannels 4 + + Include.dhw.File "/common/direct.conf" +-- +2.49.0 + + +From 421e37bae75efc1fc134fbc84bc301f041aaff3b Mon Sep 17 00:00:00 2001 +From: Craig McLure +Date: Tue, 6 May 2025 18:40:47 +0100 +Subject: [PATCH 14/24] USB-Audio: Added Beacn Mic and Studio Support + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/558 +Signed-off-by: Craig McLure +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/Beacn/Beacn-Mic-HiFi.conf | 63 ++++++ + ucm2/USB-Audio/Beacn/Beacn-Mic.conf | 11 ++ + .../Beacn/Beacn-Studio-USB1-Channels.conf | 41 ++++ + .../Beacn/Beacn-Studio-USB1-HiFi.conf | 35 ++++ + .../Beacn/Beacn-Studio-USB1-Link-HiFi.conf | 179 ++++++++++++++++++ + .../Beacn/Beacn-Studio-USB2-HiFi.conf | 175 +++++++++++++++++ + ucm2/USB-Audio/Beacn/Beacn-Studio.conf | 42 ++++ + ucm2/USB-Audio/USB-Audio.conf | 16 ++ + 8 files changed, 562 insertions(+) + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Mic-HiFi.conf + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Mic.conf + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Channels.conf + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-HiFi.conf + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Link-HiFi.conf + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Studio-USB2-HiFi.conf + create mode 100644 ucm2/USB-Audio/Beacn/Beacn-Studio.conf + +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Mic-HiFi.conf b/ucm2/USB-Audio/Beacn/Beacn-Mic-HiFi.conf +new file mode 100644 +index 0000000..2445531 +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Mic-HiFi.conf +@@ -0,0 +1,63 @@ +Include.pcm_split.File "/common/pcm/split.conf" + +Macro [ + { + SplitPCM { -+ Name "bc_stereo_out" ++ Name "beacn_mic_stereo_out" + Direction Playback + Channels 2 -+ HWChannels 16 ++ HWChannels 3 + HWChannelPos0 FL + HWChannelPos1 FR -+ HWChannelPos2 FL -+ HWChannelPos3 FR -+ HWChannelPos4 FL -+ HWChannelPos5 FR -+ HWChannelPos6 FL -+ HWChannelPos7 FR -+ HWChannelPos6 FL -+ HWChannelPos7 FR -+ HWChannelPos8 FL -+ HWChannelPos9 FR -+ HWChannelPos10 FL -+ HWChannelPos11 FR -+ HWChannelPos12 FL -+ HWChannelPos13 FR -+ HWChannelPos14 FL -+ HWChannelPos15 FR ++ HWChannelPos2 MONO + } + } + { + SplitPCM { -+ Name "bc_stereo_in" ++ Name "beacn_mic_stereo_in" + Direction Capture + Channels 2 -+ HWChannels 6 ++ HWChannels 4 + HWChannelPos0 FL + HWChannelPos1 FR -+ HWChannelPos2 FL -+ HWChannelPos3 FR -+ HWChannelPos4 FL -+ HWChannelPos5 FR ++ HWChannelPos2 MONO # Dry Mic ++ HWChannelPos3 MONO # Dry + Expander + } + } +] + -+SectionDevice."Line1" { -+ Comment "Chat L/R" ++SectionDevice."Headphones" { ++ Comment "Headphones" + + Value { -+ PlaybackPriority 100 ++ PlaybackPriority 200 + } -+ + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_out" ++ Name "beacn_mic_stereo_out" + Direction Playback -+ HWChannels 16 ++ HWChannels 3 + Channels 2 + Channel0 0 + Channel1 1 @@ -493,55 +855,234 @@ index 0000000..426a15a + } +} + -+SectionDevice."Line2" { -+ Comment "Game L/R" ++SectionDevice."Mic" { ++ Comment "Microphone" + + Value { -+ PlaybackPriority 200 ++ CapturePriority 200 + } -+ + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_out" -+ Direction Playback -+ HWChannels 16 ++ Name "beacn_mic_stereo_in" ++ Direction Capture ++ HWChannels 4 + Channels 2 -+ Channel0 2 -+ Channel1 3 ++ Channel0 0 ++ Channel1 1 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Mic.conf b/ucm2/USB-Audio/Beacn/Beacn-Mic.conf +new file mode 100644 +index 0000000..95c6f81 +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Mic.conf +@@ -0,0 +1,11 @@ ++Comment "Beacn Mic USB" ++ ++SectionUseCase."HiFi" { ++ Comment "Default Alsa Profile" ++ File "/USB-Audio/Beacn/Beacn-Mic-HiFi.conf" ++} ++ ++Define.DirectPlaybackChannels 3 ++Define.DirectCaptureChannels 4 ++ ++Include.dhw.File "/common/direct.conf" +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Channels.conf b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Channels.conf +new file mode 100644 +index 0000000..b9886f4 +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Channels.conf +@@ -0,0 +1,41 @@ ++Include.pcm_split.File "/common/pcm/split.conf" ++ ++Macro.playback.SplitPCM { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ Channels 2 ++ HWChannels 11 ++ HWChannelPos0 FL # Headphone Left ++ HWChannelPos1 FR # Headphone Right ++ HWChannelPos2 MONO # Unused Channel ++ HWChannelPos3 FL # Link 1 Out Left ++ HWChannelPos4 FR # Link 1 Out Right ++ HWChannelPos5 FL # Link 2 Out Left ++ HWChannelPos6 FR # Link 2 Out Right ++ HWChannelPos7 FL # Link 3 Out Left ++ HWChannelPos8 FR # Link 3 Out Right ++ HWChannelPos9 FL # Link 4 Out Left ++ HWChannelPos10 FR # Link 4 Out Right ++} ++ ++Macro.capture.SplitPCM { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ Channels 2 ++ HWChannels 12 ++ ++ HWChannelPos0 FL # Microphone Left ++ HWChannelPos1 FR # Microphone Right ++ ++ HWChannelPos2 MONO # UNKNOWN (Possible Dry Mic) ++ HWChannelPos3 MONO # UNKNOWN (Possible Dry + Expander) ++ ++ HWChannelPos4 FL # Link 1 In Left ++ HWChannelPos5 FR # Link 1 In Right ++ HWChannelPos6 FL # Link 2 In Left ++ HWChannelPos7 FR # Link 2 In Right ++ HWChannelPos8 FL # Link 3 In Left ++ HWChannelPos9 FR # Link 3 In Right ++ HWChannelPos10 FL # Link 4 In Left ++ HWChannelPos11 FR # Link 4 In Right ++} +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-HiFi.conf b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-HiFi.conf +new file mode 100644 +index 0000000..8c90d5b +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-HiFi.conf +@@ -0,0 +1,35 @@ ++SectionDevice."Headphones" { ++ Comment "Headphones" ++ ++ Value { ++ PlaybackPriority 100 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 11 ++ Channels 2 ++ Channel0 0 ++ Channel1 1 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Mic" { ++ Comment "Microphone" ++ ++ Value { ++ CapturePriority 100 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 12 ++ Channels 2 ++ Channel0 0 ++ Channel1 1 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Link-HiFi.conf b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Link-HiFi.conf +new file mode 100644 +index 0000000..74ff142 +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB1-Link-HiFi.conf +@@ -0,0 +1,179 @@ ++SectionDevice."Line1" { ++ Comment "Link 4" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 11 ++ Channels 2 ++ Channel0 9 ++ Channel1 10 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line2" { ++ Comment "Link 3" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 11 ++ Channels 2 ++ Channel0 7 ++ Channel1 8 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line3" { -+ Comment "Music L/R" ++ Comment "Link 2" + + Value { -+ PlaybackPriority 300 ++ PlaybackPriority 400 + } -+ + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_out" ++ Name "beacn_studio_stereo_out" + Direction Playback -+ HWChannels 16 ++ HWChannels 11 + Channels 2 -+ Channel0 12 -+ Channel1 13 ++ Channel0 5 ++ Channel1 6 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line4" { -+ Comment "System L/R" ++ Comment "Link 1" + + Value { + PlaybackPriority 400 + } -+ + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_out" ++ Name "beacn_studio_stereo_out" + Direction Playback -+ HWChannels 16 ++ HWChannels 11 ++ Channels 2 ++ Channel0 3 ++ Channel1 4 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Headphones" { ++ Comment "Headphones" ++ ++ Value { ++ PlaybackPriority 100 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 11 ++ Channels 2 ++ Channel0 0 ++ Channel1 1 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line5" { ++ Comment "Link 4" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 12 + Channels 2 + Channel0 10 + Channel1 11 @@ -550,16 +1091,70 @@ index 0000000..426a15a + } +} + -+SectionDevice."Line5" { -+ Comment "StreamMix" ++SectionDevice."Line6" { ++ Comment "Link 3" + + Value { -+ CapturePriority 300 ++ PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_in" ++ Name "beacn_studio_stereo_in" + Direction Capture -+ HWChannels 6 ++ HWChannels 12 ++ Channels 2 ++ Channel0 8 ++ Channel1 9 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line7" { ++ Comment "Link 2" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 12 ++ Channels 2 ++ Channel0 6 ++ Channel1 7 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line8" { ++ Comment "Link 1" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 12 ++ Channels 2 ++ Channel0 4 ++ Channel1 5 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Mic" { ++ Comment "Microphone" ++ ++ Value { ++ CapturePriority 100 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 12 + Channels 2 + Channel0 0 + Channel1 1 @@ -567,17 +1162,90 @@ index 0000000..426a15a + ChannelPos1 FR + } +} +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Studio-USB2-HiFi.conf b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB2-HiFi.conf +new file mode 100644 +index 0000000..5988d41 +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Studio-USB2-HiFi.conf +@@ -0,0 +1,175 @@ ++Include.pcm_split.File "/common/pcm/split.conf" + -+SectionDevice."Line6" { -+ Comment "Mic" ++Macro.playback.SplitPCM { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ Channels 2 ++ HWChannels 8 ++ HWChannelPos0 FL ++ HWChannelPos1 FR ++ HWChannelPos2 FL ++ HWChannelPos3 FR ++ HWChannelPos4 FL ++ HWChannelPos5 FR ++ HWChannelPos6 FL ++ HWChannelPos7 FR ++} ++ ++Macro.capture.SplitPCM { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ Channels 2 ++ HWChannels 8 ++ HWChannelPos0 FL ++ HWChannelPos1 FR ++ HWChannelPos2 FL ++ HWChannelPos3 FR ++ HWChannelPos4 FL ++ HWChannelPos5 FR ++ HWChannelPos6 FL ++ HWChannelPos7 FR ++} ++ ++SectionDevice."Line1" { ++ Comment "Link 4" + + Value { -+ CapturePriority 200 ++ PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_in" -+ Direction Capture -+ HWChannels 6 ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 8 ++ Channels 2 ++ Channel0 6 ++ Channel1 7 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line2" { ++ Comment "Link 3" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 8 ++ Channels 2 ++ Channel0 4 ++ Channel1 5 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line3" { ++ Comment "Link 2" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 8 + Channels 2 + Channel0 2 + Channel1 3 @@ -586,16 +1254,52 @@ index 0000000..426a15a + } +} + -+SectionDevice."Line7" { -+ Comment "SFX" ++SectionDevice."Line4" { ++ Comment "Link 1" + + Value { -+ CapturePriority 100 ++ PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { -+ Name "bc_stereo_in" ++ Name "beacn_studio_stereo_out" ++ Direction Playback ++ HWChannels 8 ++ Channels 2 ++ Channel0 0 ++ Channel1 1 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line5" { ++ Comment "Link 4" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" + Direction Capture -+ HWChannels 6 ++ HWChannels 8 ++ Channels 2 ++ Channel0 6 ++ Channel1 7 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} ++ ++SectionDevice."Line6" { ++ Comment "Link 3" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 8 + Channels 2 + Channel0 4 + Channel1 5 @@ -603,115 +1307,1068 @@ index 0000000..426a15a + ChannelPos1 FR + } +} -diff --git a/ucm2/USB-Audio/Roland/BridgeCastXV2.conf b/ucm2/USB-Audio/Roland/BridgeCastXV2.conf -new file mode 100644 -index 0000000..daf77a1 ---- /dev/null -+++ b/ucm2/USB-Audio/Roland/BridgeCastXV2.conf -@@ -0,0 +1,6 @@ -+Comment "Roland BridgeCast XV2 Hifi-Mode" + -+SectionUseCase."HiFi" { -+ Comment "BridgeCast MultiChannel" -+ File "/USB-Audio/Roland/BridgeCastXV2-Hifi.conf" ++SectionDevice."Line7" { ++ Comment "Link 2" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 8 ++ Channels 2 ++ Channel0 2 ++ Channel1 3 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } +} -diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf -index 9019fbc..a01241d 100644 ---- a/ucm2/USB-Audio/USB-Audio.conf -+++ b/ucm2/USB-Audio/USB-Audio.conf -@@ -182,6 +182,15 @@ If.roland-bridgecastv2 { - True.Define.ProfileName "Roland/BridgeCastV2" - } - -+If.roland-bridgecastx { ++ ++SectionDevice."Line8" { ++ Comment "Link 1" ++ ++ Value { ++ PlaybackPriority 400 ++ } ++ Macro.pcm_split.SplitPCMDevice { ++ Name "beacn_studio_stereo_in" ++ Direction Capture ++ HWChannels 8 ++ Channels 2 ++ Channel0 0 ++ Channel1 1 ++ ChannelPos0 FL ++ ChannelPos1 FR ++ } ++} +diff --git a/ucm2/USB-Audio/Beacn/Beacn-Studio.conf b/ucm2/USB-Audio/Beacn/Beacn-Studio.conf +new file mode 100644 +index 0000000..1b3adc0 +--- /dev/null ++++ b/ucm2/USB-Audio/Beacn/Beacn-Studio.conf +@@ -0,0 +1,42 @@ ++# The Beacn Studio has two USB ports which both present different PIDs, so we do ++# individual checks, and load the appropriate configs for the port connected. ++ ++Comment "Beacn Studio USB" ++If.usb1 { + Condition { + Type String + Haystack "${CardComponents}" -+ Needle "USB0582:0321" ++ Needle "USB33ae:0003" ++ } ++ True { ++ # Channel configuration is common between all the profiles, so we'll include it here ++ Include.pcm_split.File "/USB-Audio/Beacn/Beacn-Studio-USB1-Channels.conf" ++ ++ # If the user isn't using the 'Dual PC' feature of the Beacn Studio, there isn't really ++ # much point presenting them with an additional 4 unusable inputs and outputs, so we'll ++ # offer two profile options so those channels can be hidden. ++ SectionUseCase."Basic" { ++ Comment "Beacn Studio" ++ File "/USB-Audio/Beacn/Beacn-Studio-USB1-HiFi.conf" ++ } ++ ++ SectionUseCase."Link" { ++ Comment "Beacn Studio with Link" ++ File "/USB-Audio/Beacn/Beacn-Studio-USB1-Link-HiFi.conf" ++ } + } -+ True.Define.ProfileName "Roland/BridgeCastXV2" +} + - If.motu-m246 { ++If.usb2 { ++ Condition { ++ Type String ++ Haystack "${CardComponents}" ++ Needle "USB33ae:4003" ++ } ++ True { ++ SectionUseCase."Link" { ++ Comment "Beacn Studio Link" ++ File "/USB-Audio/Beacn/Beacn-Studio-USB2-HiFi.conf" ++ } ++ } ++} +diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf +index fe2cd46..d90db39 100644 +--- a/ucm2/USB-Audio/USB-Audio.conf ++++ b/ucm2/USB-Audio/USB-Audio.conf +@@ -541,7 +541,23 @@ If.ssl2plus { + ProfileName "SolidStateLabs/SSL2Plus" + } + } ++If.beacn-mic { ++ Condition { ++ Type String ++ Haystack "${CardComponents}" ++ Needle "USB33ae:0001" ++ } ++ True.Define.ProfileName "Beacn/Beacn-Mic" ++} + ++If.beacn-studio { ++ Condition { ++ Type RegexMatch ++ String "${CardComponents}" ++ Regex "USB33ae:[04]003" ++ } ++ True.Define.ProfileName "Beacn/Beacn-Studio" ++} + If.mixremap { + Condition { + Type String +-- +2.49.0 + + +From e055d16bdf971e26c3d92d998bccb2ca4e4f3c1a Mon Sep 17 00:00:00 2001 +From: binarycraft007 +Date: Mon, 2 Jun 2025 13:41:38 +0800 +Subject: [PATCH 15/24] ucm2: Qualcomm: add ASUS Vivobook S 15 support + +S15 supports: + - 2 speakers. + - 2 dmics + - headset with mic. + +This patch adds support to all these, however only speakers, dmic and +headset playback is tested. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/570 +Signed-off-by: binarycraft007 +Signed-off-by: Jaroslav Kysela +--- + ucm2/Qualcomm/x1e80100/x1e80100.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ucm2/Qualcomm/x1e80100/x1e80100.conf b/ucm2/Qualcomm/x1e80100/x1e80100.conf +index 10faf5f..ecbb13d 100644 +--- a/ucm2/Qualcomm/x1e80100/x1e80100.conf ++++ b/ucm2/Qualcomm/x1e80100/x1e80100.conf +@@ -6,7 +6,7 @@ If.LENOVOT14s { Condition { Type RegexMatch --- -2.47.0 - - -From 77ff0f7edbf48179d5da3fe3e4f1fc6bd96af2f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andrija=20Vu=C4=8Dini=C4=87?= -Date: Tue, 10 Dec 2024 14:47:28 +0100 -Subject: [PATCH 11/12] USB-Audio: ALC4080 - add ASUS ROG STRIX X870E-E GAMING - WIFI (USB 0b05:1b9b) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/486 -Signed-off-by: Andrija Vučinić -Signed-off-by: Jaroslav Kysela ---- - ucm2/USB-Audio/USB-Audio.conf | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf -index a01241d..bd1983e 100644 ---- a/ucm2/USB-Audio/USB-Audio.conf -+++ b/ucm2/USB-Audio/USB-Audio.conf -@@ -60,6 +60,7 @@ If.realtek-alc4080 { - # 0b05:1a5c ASUS ROG Strix B650E-I Gaming WiFi - # 0b05:1a97 ASUS ROG Maximus Z790 Apex Encore - # 0b05:1af1 ASUS ROG Strix Z790-A Gaming Wifi II -+ # 0b05:1b9b ASUS ROG STRIX X870E-E GAMING WIFI - # 0db0:005a MSI MPG Z690 CARBON WIFI - # 0db0:0b58 MSI MPG X870E CARBON WIFI - # 0db0:124b MSI MEG Z690 ACE -@@ -91,7 +92,7 @@ If.realtek-alc4080 { - # 26ce:0a06 ASRock X670E/Z790 Taichi - # 26ce:0a08 ASRock Z790 PG-ITX/TB4, X870 Steel Legend - # 26ce:0a0b ASRock X870E Taichi -- Regex "USB((0414:a0(0e|1[0124]))|(0b05:(19(84|9[69])|1a(16|2[07]|5[23c]|97|f1)))|(0db0:(005a|0b58|124b|151f|1feb|3130|36e7|4(19c|22d|240|88c)|543d|62a4|6c[0c]9|70d3|7696|82c7|8af7|961e|a(073|228|47c|74b)|b202|cd0e|d1d7|d6e7))|(26ce:0a0[68b]))" -+ Regex "USB((0414:a0(0e|1[0124]))|(0b05:(19(84|9[69])|1a(16|2[07]|5[23c]|97|f1)|1b9b))|(0db0:(005a|0b58|124b|151f|1feb|3130|36e7|4(19c|22d|240|88c)|543d|62a4|6c[0c]9|70d3|7696|82c7|8af7|961e|a(073|228|47c|74b)|b202|cd0e|d1d7|d6e7))|(26ce:0a0[68b]))" + String "${var:DMI_info}" +- Regex "LENOVO.*Think((Pad T14s Gen 6.*)|(Book 16 G7 QOY))|(HP.*Omnibook X.*)|(ASUSTeK COMPUTER.*ASUS Zenbook A14)|(Microsoft Corporation.*Surface.*Microsoft Surface Laptop, 7th Edition)" ++ Regex "LENOVO.*Think((Pad T14s Gen 6.*)|(Book 16 G7 QOY))|(HP.*Omnibook X.*)|ASUSTeK COMPUTER.*ASUS (Zenbook A14|Vivobook S 15)|(Microsoft Corporation.*Surface.*Microsoft Surface Laptop, 7th Edition)" } - True.Define.ProfileName "Realtek/ALC4080" + True.Include.t14s.File "/Qualcomm/x1e80100/LENOVO-T14s.conf" } -- -2.47.0 +2.49.0 -From cde064fd3a1a7cd57b56d32d42ae57f7e8b454e7 Mon Sep 17 00:00:00 2001 -From: Sergey -Date: Mon, 16 Dec 2024 04:29:47 +0300 -Subject: [PATCH 12/12] USB-Audio: ALC4080: add support for MSI MEG X670E - GODLIKE (USB 0db0:e1f8) +From 59d53fd9cac27e9a05623251aefa6d06da94260c Mon Sep 17 00:00:00 2001 +From: Craig McLure +Date: Wed, 4 Jun 2025 23:25:51 +0100 +Subject: [PATCH 16/24] Changed 'Stream Mix' channel names to match the latest + Window release -www.msi.com/Motherboard/MEG-X670E-GODLIKE +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/572 +Signed-off-by: Craig McLure +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/GoXLR/GoXLR-HiFi.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) -Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/488 -Signed-off-by: Sergey +diff --git a/ucm2/USB-Audio/GoXLR/GoXLR-HiFi.conf b/ucm2/USB-Audio/GoXLR/GoXLR-HiFi.conf +index 6614b00..17c6580 100644 +--- a/ucm2/USB-Audio/GoXLR/GoXLR-HiFi.conf ++++ b/ucm2/USB-Audio/GoXLR/GoXLR-HiFi.conf +@@ -140,7 +140,7 @@ SectionDevice."Line3" { + } + + SectionDevice."Line4" { +- Comment "Broadcast Stream Mix" ++ Comment "Stream Mix 1" + + Value { + CapturePriority 200 +@@ -200,7 +200,7 @@ If.mix2 { + String2 "25" + } + True.SectionDevice."Line6" { +- Comment "Broadcast Stream Mix 2" ++ Comment "Stream Mix 2" + + Value { + CapturePriority 200 +-- +2.49.0 + + +From bd5cf3839f902b67a355669fdf1bd3231e0cb4c1 Mon Sep 17 00:00:00 2001 +From: Mohammad Rafi Shaik +Date: Mon, 9 Jun 2025 20:52:42 +0530 +Subject: [PATCH 17/24] Qualcomm: Add QCS9075-IQ-EVK HiFi config + +Add UCM2 configs for the Qualcomm QCS9075-IQ-EVK Board to handle: + - I2S Speaker Amplifier + - I2S Mic + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/576 +Signed-off-by: Mohammad Rafi Shaik +Signed-off-by: Jaroslav Kysela +--- + .../qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf | 29 +++++++++++++++++++ + .../qcs9075-iq-evk-snd-card.conf | 6 ++++ + .../qcs9075/qcs9075-iq-evk-snd-card.conf | 6 ++++ + 3 files changed, 41 insertions(+) + create mode 100644 ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf + create mode 100644 ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/qcs9075-iq-evk-snd-card.conf + create mode 100644 ucm2/conf.d/qcs9075/qcs9075-iq-evk-snd-card.conf + +diff --git a/ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf b/ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf +new file mode 100644 +index 0000000..6673324 +--- /dev/null ++++ b/ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf +@@ -0,0 +1,29 @@ ++SectionVerb { ++ Value { ++ TQ "HiFi" ++ } ++ EnableSequence [ ++ cset "name='PRIMARY_SDR_MI2S_RX Audio Mixer MULTIMEDIA0' 1" ++ cset "name='MULTIMEDIA1 Audio Mixer TERTIARY_SDR_MI2S_TX' 1" ++ ] ++} ++ ++SectionDevice."Speaker" { ++ Comment "Speaker playback" ++ ++ Value { ++ PlaybackPriority 100 ++ PlaybackPCM "hw:${CardId},0" ++ PlaybackMixer "default:${CardId}" ++ PlaybackMixerElem "Speakers" ++ } ++} ++ ++SectionDevice."Mic" { ++ Comment "Mic" ++ ++ Value { ++ CapturePriority 100 ++ CapturePCM "hw:${CardId},1" ++ } ++} +diff --git a/ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/qcs9075-iq-evk-snd-card.conf b/ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/qcs9075-iq-evk-snd-card.conf +new file mode 100644 +index 0000000..669ba6b +--- /dev/null ++++ b/ucm2/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/qcs9075-iq-evk-snd-card.conf +@@ -0,0 +1,6 @@ ++Syntax 4 ++ ++SectionUseCase."HiFi" { ++ File "/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf" ++ Comment "HiFi quality Music" ++} +diff --git a/ucm2/conf.d/qcs9075/qcs9075-iq-evk-snd-card.conf b/ucm2/conf.d/qcs9075/qcs9075-iq-evk-snd-card.conf +new file mode 100644 +index 0000000..1e49d38 +--- /dev/null ++++ b/ucm2/conf.d/qcs9075/qcs9075-iq-evk-snd-card.conf +@@ -0,0 +1,6 @@ ++Syntax 4 ++ ++SectionUseCase."HiFi" { ++ File "/Qualcomm/qcs9075/qcs9075-iq-evk-snd-card/HiFi.conf" ++ Comment "HiFi quality Music." ++} +-- +2.49.0 + + +From e7ec0f1ac3eebfa04e18a944d511bbb5fa57239d Mon Sep 17 00:00:00 2001 +From: Mohammad Rafi Shaik +Date: Tue, 10 Jun 2025 16:46:59 +0530 +Subject: [PATCH 18/24] ucm2: Qualcomm: Update the QCM6490 and QCS6490 hifi + conf files + +Rename the HiFi conf files for QCM6490-IDP and QCS6490-RB3Gen2 boards +to match with soundcard name. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/577 +Signed-off-by: Mohammad Rafi Shaik +Signed-off-by: Jaroslav Kysela +--- + .../QCM6490-IDP/{QCM6490-IDP.conf => qcm6490-idp-snd-card.conf} | 0 + .../{QCS6490-RB3Gen2.conf => qcs6490-rb3gen2-snd-card.conf} | 0 + .../qcm6490/{QCM6490-IDP.conf => qcm6490-idp-snd-card.conf} | 0 + .../{QCS6490-RB3Gen2.conf => qcs6490-rb3gen2-snd-card.conf} | 0 + 4 files changed, 0 insertions(+), 0 deletions(-) + rename ucm2/Qualcomm/qcm6490/QCM6490-IDP/{QCM6490-IDP.conf => qcm6490-idp-snd-card.conf} (100%) + rename ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/{QCS6490-RB3Gen2.conf => qcs6490-rb3gen2-snd-card.conf} (100%) + rename ucm2/conf.d/qcm6490/{QCM6490-IDP.conf => qcm6490-idp-snd-card.conf} (100%) + rename ucm2/conf.d/qcs6490/{QCS6490-RB3Gen2.conf => qcs6490-rb3gen2-snd-card.conf} (100%) + +diff --git a/ucm2/Qualcomm/qcm6490/QCM6490-IDP/QCM6490-IDP.conf b/ucm2/Qualcomm/qcm6490/QCM6490-IDP/qcm6490-idp-snd-card.conf +similarity index 100% +rename from ucm2/Qualcomm/qcm6490/QCM6490-IDP/QCM6490-IDP.conf +rename to ucm2/Qualcomm/qcm6490/QCM6490-IDP/qcm6490-idp-snd-card.conf +diff --git a/ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/QCS6490-RB3Gen2.conf b/ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/qcs6490-rb3gen2-snd-card.conf +similarity index 100% +rename from ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/QCS6490-RB3Gen2.conf +rename to ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/qcs6490-rb3gen2-snd-card.conf +diff --git a/ucm2/conf.d/qcm6490/QCM6490-IDP.conf b/ucm2/conf.d/qcm6490/qcm6490-idp-snd-card.conf +similarity index 100% +rename from ucm2/conf.d/qcm6490/QCM6490-IDP.conf +rename to ucm2/conf.d/qcm6490/qcm6490-idp-snd-card.conf +diff --git a/ucm2/conf.d/qcs6490/QCS6490-RB3Gen2.conf b/ucm2/conf.d/qcs6490/qcs6490-rb3gen2-snd-card.conf +similarity index 100% +rename from ucm2/conf.d/qcs6490/QCS6490-RB3Gen2.conf +rename to ucm2/conf.d/qcs6490/qcs6490-rb3gen2-snd-card.conf +-- +2.49.0 + + +From a98b12220989e2187a47b0e06ac9145c92232a8e Mon Sep 17 00:00:00 2001 +From: Mohammad Rafi Shaik +Date: Wed, 18 Jun 2025 16:46:18 +0530 +Subject: [PATCH 19/24] ucm2: Qualcomm: Update the HIFI enable mixer commands + for qcm6490-idp and qcs6490-rb3gen2 + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/577 +Signed-off-by: Mohammad Rafi Shaik +Signed-off-by: Jaroslav Kysela +--- + ucm2/Qualcomm/qcm6490/QCM6490-IDP/HiFi.conf | 8 ++++---- + ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/HiFi.conf | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/ucm2/Qualcomm/qcm6490/QCM6490-IDP/HiFi.conf b/ucm2/Qualcomm/qcm6490/QCM6490-IDP/HiFi.conf +index 0d6497e..0a0d331 100644 +--- a/ucm2/Qualcomm/qcm6490/QCM6490-IDP/HiFi.conf ++++ b/ucm2/Qualcomm/qcm6490/QCM6490-IDP/HiFi.conf +@@ -3,10 +3,10 @@ SectionVerb { + TQ "HiFi" + } + EnableSequence [ +- cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MULTIMEDIA0' 1" +- cset "name='MULTIMEDIA1 Audio Mixer VA_CODEC_DMA_TX_0' 1" +- cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MULTIMEDIA2' 1" +- cset "name='MULTIMEDIA3 Audio Mixer TX_CODEC_DMA_TX_3' 1" ++ cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 1" ++ cset "name='MultiMedia2 Mixer VA_CODEC_DMA_TX_0' 1" ++ cset "name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia3' 1" ++ cset "name='MultiMedia4 Mixer TX_CODEC_DMA_TX_3' 1" + ] + + Include.wsae.File "/codecs/wsa883x/DefaultEnableSeq.conf" +diff --git a/ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/HiFi.conf b/ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/HiFi.conf +index 954dbfa..2488523 100644 +--- a/ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/HiFi.conf ++++ b/ucm2/Qualcomm/qcs6490/QCS6490-RB3Gen2/HiFi.conf +@@ -3,8 +3,8 @@ SectionVerb { + TQ "HiFi" + } + EnableSequence [ +- cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MULTIMEDIA0' 1" +- cset "name='MULTIMEDIA1 Audio Mixer VA_CODEC_DMA_TX_0' 1" ++ cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 1" ++ cset "name='MultiMedia2 Mixer VA_CODEC_DMA_TX_0' 1" + ] + + Include.wsae.File "/codecs/wsa883x/DefaultEnableSeq.conf" +-- +2.49.0 + + +From 56cbdfd04339cf9598cd9d57f5c1a382504ae902 Mon Sep 17 00:00:00 2001 +From: Peter Ujfalusi +Date: Thu, 12 Jun 2025 16:33:01 +0300 +Subject: [PATCH 20/24] UCM2: Intel: sof-hda-dsp: HiFi: Fix handling of mono + DMICs + +When a single DMIC is present in the system we need to set the +CaptureChannels to 1 since the PCM device only supports mono, PA/PW will +reject the profile since it cannot open the DMIC PCM device. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/579 +Signed-off-by: Peter Ujfalusi +Signed-off-by: Jaroslav Kysela +--- + ucm2/Intel/sof-hda-dsp/HiFi.conf | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/ucm2/Intel/sof-hda-dsp/HiFi.conf b/ucm2/Intel/sof-hda-dsp/HiFi.conf +index 9689b56..e452f83 100644 +--- a/ucm2/Intel/sof-hda-dsp/HiFi.conf ++++ b/ucm2/Intel/sof-hda-dsp/HiFi.conf +@@ -34,6 +34,16 @@ If.dmic { + True { + CaptureChannels 4 + } ++ False.If.mono { ++ Condition { ++ Type RegexMatch ++ Regex "cfg-dmics:[1]" ++ String "${CardComponents}" ++ } ++ True { ++ CaptureChannels 1 ++ } ++ } + } + If.vol { + Condition { +-- +2.49.0 + + +From e4791900954c3951d15038822a55a3031aac49d2 Mon Sep 17 00:00:00 2001 +From: Shuming Fan +Date: Fri, 6 Jun 2025 12:47:08 +0800 +Subject: [PATCH 21/24] ucm2: sof-soundwire: add rt712-vb device + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/573 +Signed-off-by: Shuming Fan +Signed-off-by: Jaroslav Kysela +--- + ucm2/codecs/rt712/init.conf | 34 ++++++++++++++++++++++++++++------ + ucm2/sof-soundwire/rt712.conf | 29 +++++++++++++++++++++++++++++ + 2 files changed, 57 insertions(+), 6 deletions(-) + +diff --git a/ucm2/codecs/rt712/init.conf b/ucm2/codecs/rt712/init.conf +index e09bf7f..1e45380 100644 +--- a/ucm2/codecs/rt712/init.conf ++++ b/ucm2/codecs/rt712/init.conf +@@ -1,8 +1,30 @@ + # RT712 specific volume control settings + +-BootSequence [ +- cset "name='rt712 FU05 Playback Volume' 87" +- cset "name='rt712 ADC 23 Mux' 'MIC2'" +- cset "name='rt712 FU0F Capture Volume' 57" +- cset "name='rt712 FU0F Capture Switch' 1" +-] ++If.rt712_init { ++ Condition { ++ Type RegexMatch ++ Regex "(rt712(-sdca)?)" ++ String "${var:MultiMicShadow}" ++ } ++ True { ++ # RT712-VB integrated with DMIC ++ BootSequence [ ++ cset "name='rt712 FU05 Playback Volume' 87" ++ cset "name='rt712 ADC 23 Mux' 'MIC2'" ++ cset "name='rt712 FU0F Capture Volume' 57" ++ cset "name='rt712 FU0F Capture Switch' 1" ++ cset "name='rt712 FU1E Capture Switch' 1" ++ cset "name='rt712 FU1E Capture Volume' 47" ++ cset "name='rt712 ADC 0A Mux' 'DMIC1'" ++ cset "name='rt712 ADC 0B Mux' 'DMIC2'" ++ ] ++ } ++ False { ++ BootSequence [ ++ cset "name='rt712 FU05 Playback Volume' 87" ++ cset "name='rt712 ADC 23 Mux' 'MIC2'" ++ cset "name='rt712 FU0F Capture Volume' 57" ++ cset "name='rt712 FU0F Capture Switch' 1" ++ ] ++ } ++} +diff --git a/ucm2/sof-soundwire/rt712.conf b/ucm2/sof-soundwire/rt712.conf +index 409bef9..346cff1 100644 +--- a/ucm2/sof-soundwire/rt712.conf ++++ b/ucm2/sof-soundwire/rt712.conf +@@ -85,3 +85,32 @@ SectionDevice."Headset" { + JackControl "Headset Mic Jack" + } + } ++ ++If.codecmic { ++ Condition { ++ Type RegexMatch ++ Regex "(rt712(-sdca)?)" ++ String "${var:MultiMicShadow}" ++ } ++ True { ++ SectionDevice."Mic" { ++ Comment "SoundWire Microphones" ++ ++ EnableSequence [ ++ cset "name='rt712 FU1E Capture Switch' 1" ++ ] ++ ++ DisableSequence [ ++ cset "name='rt712 FU1E Capture Switch' 0" ++ ] ++ ++ Value { ++ CapturePriority 100 ++ CapturePCM "hw:${CardId},4" ++ CaptureSwitch "rt712 FU1E Capture Switch" ++ CaptureVolume "rt712 FU1E Capture Volume" ++ CaptureMixerElem "rt712 FU1E" ++ } ++ } ++ } ++} +-- +2.49.0 + + +From 436fbad2a02b91435645e039664af469595ab500 Mon Sep 17 00:00:00 2001 +From: DanielDecker <90106468+DanielDecker@users.noreply.github.com> +Date: Mon, 16 Jun 2025 18:27:21 +0200 +Subject: [PATCH 22/24] add MSI MAG B850M Mortar Wifi to USB-Audio.conf + +add MSI MAG B850M Mortar Wifi USB-ID for Realtek/ALC4080 to USB-Audio.conf + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/581 +Signed-off-by: DanielDecker <90106468+DanielDecker@users.noreply.github.com> Signed-off-by: Jaroslav Kysela --- ucm2/USB-Audio/USB-Audio.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf -index bd1983e..d942f0e 100644 +index d90db39..ef88ded 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf -@@ -89,10 +89,11 @@ If.realtek-alc4080 { +@@ -89,6 +89,7 @@ If.realtek-alc4080 { + # 0db0:a47c MSI MEG X570S Ace Max + # 0db0:a74b MSI MPG Z790 Edge Wifi + # 0db0:b202 MSI MAG Z690 Tomahawk Wifi ++ # 0db0:cc78 MSI MAG B850M Mortar Wifi # 0db0:cd0e MSI X870 Tomahawk # 0db0:d1d7 MSI PRO Z790-A WIFI # 0db0:d6e7 MSI MPG X670E Carbon Wifi -+ # 0db0:e1f8 MSI MEG X670E Godlike +@@ -96,7 +97,7 @@ If.realtek-alc4080 { # 26ce:0a06 ASRock X670E/Z790 Taichi # 26ce:0a08 ASRock Z790 PG-ITX/TB4, X870 Steel Legend # 26ce:0a0b ASRock X870E Taichi -- Regex "USB((0414:a0(0e|1[0124]))|(0b05:(19(84|9[69])|1a(16|2[07]|5[23c]|97|f1)|1b9b))|(0db0:(005a|0b58|124b|151f|1feb|3130|36e7|4(19c|22d|240|88c)|543d|62a4|6c[0c]9|70d3|7696|82c7|8af7|961e|a(073|228|47c|74b)|b202|cd0e|d1d7|d6e7))|(26ce:0a0[68b]))" -+ Regex "USB((0414:a0(0e|1[0124]))|(0b05:(19(84|9[69])|1a(16|2[07]|5[23c]|97|f1)|1b9b))|(0db0:(005a|0b58|124b|151f|1feb|3130|36e7|4(19c|22d|240|88c)|543d|62a4|6c[0c]9|70d3|7696|82c7|8af7|961e|a(073|228|47c|74b)|b202|cd0e|d1d7|d6e7|e1f8))|(26ce:0a0[68b]))" +- Regex "USB((0414:a0(0e|1[0124]))|(0b05:(19(84|9[69])|1a(16|2[07]|5[23c]|97|f1)|1b(7c|9b|e1)))|(0db0:(005a|0b58|124b|151f|1feb|3130|36e7|4(19c|22d|240|88c)|543d|62a4|6c[0c]9|70d3|7696|82c7|8af7|961e|9e6d|a(073|228|47c|74b)|b202|cd0e|d1d7|d6e7|e1f8))|(26ce:0a0[68b]))" ++ Regex "USB((0414:a0(0e|1[0124]))|(0b05:(19(84|9[69])|1a(16|2[07]|5[23c]|97|f1)|1b(7c|9b|e1)))|(0db0:(005a|0b58|124b|151f|1feb|3130|36e7|4(19c|22d|240|88c)|543d|62a4|6c[0c]9|70d3|7696|82c7|8af7|961e|9e6d|a(073|228|47c|74b)|b202|c(c78|d0e)|d1d7|d6e7|e1f8))|(26ce:0a0[68b]))" } True.Define.ProfileName "Realtek/ALC4080" } -- -2.47.0 +2.49.0 + + +From b4896cf413e618f4b20c570544a4e668aaa72f64 Mon Sep 17 00:00:00 2001 +From: Harald Sitter +Date: Sat, 21 Jun 2025 17:10:20 +0200 +Subject: [PATCH 23/24] ucm2: USB-Audio: Add Teufel CAGE PRO + +two stereo outputs: one for "game" and one for "chat". +one mono input + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/582 +Signed-off-by: Harald Sitter +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/Teufel/CAGE-PRO-HiFi.conf | 21 +++++++++++++++++++++ + ucm2/USB-Audio/Teufel/CAGE-PRO.conf | 9 +++++++++ + ucm2/USB-Audio/USB-Audio.conf | 10 ++++++++++ + 3 files changed, 40 insertions(+) + create mode 100644 ucm2/USB-Audio/Teufel/CAGE-PRO-HiFi.conf + create mode 100644 ucm2/USB-Audio/Teufel/CAGE-PRO.conf + +diff --git a/ucm2/USB-Audio/Teufel/CAGE-PRO-HiFi.conf b/ucm2/USB-Audio/Teufel/CAGE-PRO-HiFi.conf +new file mode 100644 +index 0000000..c0fbe7b +--- /dev/null ++++ b/ucm2/USB-Audio/Teufel/CAGE-PRO-HiFi.conf +@@ -0,0 +1,21 @@ ++# SPDX-License-Identifier: MIT ++# SPDX-FileCopyrightText: 2025 Harald Sitter ++ ++SectionDevice."Headset" { ++ Comment "Chat" ++ Value { ++ PlaybackPCM "hw:${CardId},0" ++ PlaybackMixerElem "PCM" ++ CapturePCM "hw:${CardId},0" ++ CaptureMixerElem "Mic" ++ CaptureChannels 1 ++ } ++} ++ ++SectionDevice."Headphones" { ++ Comment "Game" ++ Value { ++ PlaybackPCM "hw:${CardId},1" ++ PlaybackMixerElem "PCM,1" ++ } ++} +diff --git a/ucm2/USB-Audio/Teufel/CAGE-PRO.conf b/ucm2/USB-Audio/Teufel/CAGE-PRO.conf +new file mode 100644 +index 0000000..bf75033 +--- /dev/null ++++ b/ucm2/USB-Audio/Teufel/CAGE-PRO.conf +@@ -0,0 +1,9 @@ ++# SPDX-License-Identifier: MIT ++# SPDX-FileCopyrightText: 2025 Harald Sitter ++ ++Comment "Lautsprecher Teufel GmbH CAGE PRO" ++ ++SectionUseCase."HiFi" { ++ Comment "Default" ++ File "/USB-Audio/Teufel/CAGE-PRO-HiFi.conf" ++} +diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf +index ef88ded..7a6a0ac 100644 +--- a/ucm2/USB-Audio/USB-Audio.conf ++++ b/ucm2/USB-Audio/USB-Audio.conf +@@ -521,6 +521,15 @@ If.ua-volt2 { + } + } + ++If.teufel-cage-pro { ++ Condition { ++ Type String ++ Haystack "${CardComponents}" ++ Needle "USB2cc2:0033" ++ } ++ True.Define.ProfileName "Teufel/CAGE-PRO" ++} ++ + If.ssl2 { + Condition { + Type String +@@ -559,6 +568,7 @@ If.beacn-studio { + } + True.Define.ProfileName "Beacn/Beacn-Studio" + } ++ + If.mixremap { + Condition { + Type String +-- +2.49.0 + + +From 63f161cb8d65ed828a1ce49b506f4e1b9a7c58e4 Mon Sep 17 00:00:00 2001 +From: Zoran Zhan +Date: Wed, 7 May 2025 14:41:14 +0800 +Subject: [PATCH 24/24] ucm2: MediaTek: mt8365-evk: Add SOF support + +Add support for MT8365 EVK with SOF enabled. When SOF is +disabled, the "HiFi" use case is used; when SOF is enabled, +the "SOF" use case is used. + +The main difference compared to the UCM with SOF disabled is +the device number for playback and capture, which now uses the +PCMs for SOF instead. + +Define these parameters as variables for each case (with and +without SOF), and move the common initialization to init.conf, +so the UCM can be shared by both configurations. + +Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/583 +Signed-off-by: Zoran Zhan +Signed-off-by: Jaroslav Kysela +--- + ucm2/MediaTek/mt8365-evk/HiFi.conf | 126 ++++++------------ + ucm2/MediaTek/mt8365-evk/init.conf | 31 +++++ + ucm2/MediaTek/mt8365-evk/mt8365-evk.conf | 40 +----- + ucm2/MediaTek/mt8365-evk/sof/SOF.conf | 87 ++++++++++++ + .../mt8365-evk/sof/sof-mt8365-evk.conf | 9 ++ + .../conf.d/sof-mt8365-evk/sof-mt8365-evk.conf | 1 + + 6 files changed, 174 insertions(+), 120 deletions(-) + create mode 100644 ucm2/MediaTek/mt8365-evk/init.conf + create mode 100644 ucm2/MediaTek/mt8365-evk/sof/SOF.conf + create mode 100644 ucm2/MediaTek/mt8365-evk/sof/sof-mt8365-evk.conf + create mode 120000 ucm2/conf.d/sof-mt8365-evk/sof-mt8365-evk.conf + +diff --git a/ucm2/MediaTek/mt8365-evk/HiFi.conf b/ucm2/MediaTek/mt8365-evk/HiFi.conf +index 81f563f..83514c7 100644 +--- a/ucm2/MediaTek/mt8365-evk/HiFi.conf ++++ b/ucm2/MediaTek/mt8365-evk/HiFi.conf +@@ -1,141 +1,97 @@ + SectionDevice."HDMI" { +- Comment "Hdmi output" ++ Comment "HDMI output" + + Value { +- PlaybackPriority 250 ++ PlaybackPriority 100 + PlaybackChannels 2 + PlaybackPCM "hw:${CardId},1" + } +- +- EnableSequence [ +- cset "name='O00 I07 Switch' on" +- cset "name='O01 I08 Switch' on" +- ] +- +- DisableSequence [ +- cset "name='O00 I07 Switch' off" +- cset "name='O01 I08 Switch' off" +- ] + } + + SectionDevice."Speaker" { +- Comment "Line-out Jack " ++ Comment "Lineout speaker" + + ConflictingDevice [ + "Headphones" + ] + +- Value { +- PlaybackPriority 300 +- PlaybackChannels 2 +- PlaybackPCM "hw:${CardId},0" +- PlaybackVolume "name='Lineout_PGAL_GAIN'" +- } +- + EnableSequence [ +- cset "name='Audio_Amp_L_Switch' Off" +- cset "name='Audio_Amp_R_Switch' Off" +- cset "name='Lineout_PGAL_GAIN' 0" +- cset "name='Speaker_Amp_Switch' On" ++ cset "name='Headphone Left Source' Open" ++ cset "name='Headphone Right Source' Open" ++ cset "name='Line Out Source' Playback" + ] + +- DisableSequence [ +- cset "name='Audio_Amp_L_Switch' On" +- cset "name='Audio_Amp_R_Switch' On" +- cset "name='Speaker_Amp_Switch' Off" +- ] ++ Value { ++ PlaybackPriority 200 ++ PlaybackChannels 2 ++ PlaybackPCM "hw:${CardId},${var:PlayDevN}" ++ } + } + + SectionDevice."Headphones" { +- Comment "Headset speakers" ++ Comment "Earphone speaker" + + ConflictingDevice [ + "Speaker" + ] + ++ EnableSequence [ ++ cset "name='Headphone Left Source' DAC" ++ cset "name='Headphone Right Source' DAC" ++ cset "name='Line Out Source' Open" ++ ] ++ + Value { + PlaybackPriority 300 + PlaybackChannels 2 +- PlaybackPCM "hw:${CardId},0" +- PlaybackVolume "name='Headset_PGAL_GAIN'" ++ PlaybackPCM "hw:${CardId},${var:PlayDevN}" + } +- +- EnableSequence [ +- cset "name='Audio_Amp_L_Switch' On" +- cset "name='Audio_Amp_R_Switch' On" +- cset "name='Headset_PGAL_GAIN' 1" +- cset "name='Speaker_Amp_Switch' Off" +- ] +- +- DisableSequence [ +- cset "name='Audio_Amp_L_Switch' Off" +- cset "name='Audio_Amp_R_Switch' Off" +- cset "name='Speaker_Amp_Switch' On" +- ] + } + +-SectionDevice."Mic1" { +- Comment "Amic" ++SectionDevice."Headset" { ++ Comment "Earphone microphone" + + ConflictingDevice [ +- "Mic2" ++ "Mic1" + ] + +- Value { +- CapturePriority 300 +- CaptureChannels 1 +- CapturePCM "hw:${CardId},2" +- } +- + EnableSequence [ +- cset "name='Audio_MicSource1_Setting' ADC1" +- cset "name='Audio_MICBIAS0_Switch' Off" ++ cset "name='PGA L Mux' AIN1" ++ cset "name='PGA R Mux' AIN1" + ] + +- DisableSequence [ +- cset "name='Audio_MicSource1_Setting' ADC2" +- cset "name='Audio_MICBIAS0_Switch' On" +- ] ++ Value { ++ CapturePriority 300 ++ CaptureChannels "${var:CapChanN}" ++ CapturePCM "hw:${CardId},${var:CapDevN}" ++ } + } + +-SectionDevice."Mic2" { +- Comment "Headset microphone" ++SectionDevice."Mic1" { ++ Comment "Analog microphone" + + ConflictingDevice [ +- "Mic1" ++ "Headset" + ] + +- Value { +- CapturePriority 350 +- CaptureChannels 1 +- CapturePCM "hw:${CardId},2" +- } +- + EnableSequence [ +- cset "name='Audio_MicSource1_Setting' ADC2" +- cset "name='Audio_MICBIAS0_Switch' On" ++ cset "name='PGA L Mux' AIN0" ++ cset "name='PGA R Mux' AIN0" + ] + +- DisableSequence [ +- cset "name='Audio_MicSource1_Setting' ADC1" +- cset "name='Audio_MICBIAS0_Switch' Off" +- ] ++ Value { ++ CapturePriority 200 ++ CaptureChannels "${var:CapChanN}" ++ CapturePCM "hw:${CardId},${var:CapDevN}" ++ } + } + +-SectionDevice."Mic3" { +- Comment "PDM microphones" ++SectionDevice."Mic2" { ++ Comment "Digital microphone" + + Value { + CapturePriority 100 + CaptureChannels 2 + CapturePCM "hw:${CardId},3" + } +- +- EnableSequence [ +- cset "name='Audio_MICBIAS0_Switch' On" +- ] +- +- DisableSequence [ +- cset "name='Audio_MICBIAS0_Switch' Off" +- ] + } +diff --git a/ucm2/MediaTek/mt8365-evk/init.conf b/ucm2/MediaTek/mt8365-evk/init.conf +new file mode 100644 +index 0000000..269530a +--- /dev/null ++++ b/ucm2/MediaTek/mt8365-evk/init.conf +@@ -0,0 +1,31 @@ ++Syntax 4 ++ ++SectionUseCase."HiFi" { ++ File "/MediaTek/mt8365-evk/HiFi.conf" ++ Comment "Default" ++} ++ ++SectionUseCase."SOF" { ++ File "/MediaTek/mt8365-evk/sof/SOF.conf" ++ Comment "Enable SOF" ++} ++ ++BootSequence [ ++ cset "name='Headphone Left Source' DAC" ++ cset "name='Headphone Right Source' DAC" ++ cset "name='Line Out Source' Open" ++ cset "name='PGA L Mux' AIN1" ++ cset "name='PGA R Mux' AIN1" ++ cset "name='Mic Type Mux' DCC" ++ cset "name='INT ADDA O03_O04 Switch' on" ++ cset "name='Headphone Volume' 10" ++ cset "name='Lineout Volume' 10" ++ cset "name='O00 I07 Switch' on" ++ cset "name='O01 I08 Switch' on" ++ cset "name='O03 I05 Switch' on" ++ cset "name='O04 I06 Switch' on" ++ cset "name='O05 I03 Switch' on" ++ cset "name='O06 I04 Switch' on" ++ cset "name='O09 I14 Switch' on" ++ cset "name='O10 I15 Switch' on" ++] +diff --git a/ucm2/MediaTek/mt8365-evk/mt8365-evk.conf b/ucm2/MediaTek/mt8365-evk/mt8365-evk.conf +index e396f8c..9df5644 100644 +--- a/ucm2/MediaTek/mt8365-evk/mt8365-evk.conf ++++ b/ucm2/MediaTek/mt8365-evk/mt8365-evk.conf +@@ -1,39 +1,9 @@ + Syntax 4 + +-SectionUseCase."HiFi" { +- File "/MediaTek/mt8365-evk/HiFi.conf" +- Comment "Play high quality music" ++Define { ++ PlayDevN "0" ++ CapDevN "2" ++ CapChanN "1" + } + +-BootSequence [ +- #Audio volume +- cset "name='Headset_PGAL_GAIN' 0" +- cset "name='Lineout_PGAL_GAIN' 0" +- +- #Audio amp +- cset "name='Audio_Amp_R_Switch' On" +- cset "name='Audio_Amp_L_Switch' On" +- +- #Headset out +- cset "name='Speaker_Amp_Switch' Off" +- +- #Dmic +- cset "name='Audio_MICBIAS0_Switch' On" +- +- #HDMI audio (I2S3 Out) +- cset "name='O00 I07 Switch' on" +- cset "name='O01 I08 Switch' on" +- +- #jack_mic Headset In +- cset "name='Audio_MicSource1_Setting' ADC2" +- +- cset "name='O03 I05 Switch' on" +- cset "name='O04 I06 Switch' on" +- cset "name='O05 I03 Switch' on" +- cset "name='O06 I04 Switch' on" +- cset "name='O09 I14 Switch' on" +- cset "name='O10 I15 Switch' on" +- cset "name='AUD_CLK_BUF_Switch' On" +- cset "name='Audio_ADC_1_Switch' On" +- cset "name='INT ADDA O03_O04 Switch' on" +-] ++Include.init.File "/MediaTek/mt8365-evk/init.conf" +diff --git a/ucm2/MediaTek/mt8365-evk/sof/SOF.conf b/ucm2/MediaTek/mt8365-evk/sof/SOF.conf +new file mode 100644 +index 0000000..af44feb +--- /dev/null ++++ b/ucm2/MediaTek/mt8365-evk/sof/SOF.conf +@@ -0,0 +1,87 @@ ++SectionDevice."Speaker" { ++ Comment "SOF Lineout speaker" ++ ++ ConflictingDevice [ ++ "Headphones" ++ ] ++ ++ EnableSequence [ ++ cset "name='Headphone Left Source' Open" ++ cset "name='Headphone Right Source' Open" ++ cset "name='Line Out Source' Playback" ++ ] ++ ++ Value { ++ PlaybackPriority 100 ++ PlaybackChannels 2 ++ PlaybackPCM "hw:${CardId},${var:PlayDevN}" ++ } ++} ++ ++SectionDevice."Headphones" { ++ Comment "SOF Earphone speaker" ++ ++ ConflictingDevice [ ++ "Speaker" ++ ] ++ ++ EnableSequence [ ++ cset "name='Headphone Left Source' DAC" ++ cset "name='Headphone Right Source' DAC" ++ cset "name='Line Out Source' Open" ++ ] ++ ++ Value { ++ PlaybackPriority 200 ++ PlaybackChannels 2 ++ PlaybackPCM "hw:${CardId},${var:PlayDevN}" ++ } ++} ++ ++SectionDevice."Headset" { ++ Comment "SOF Earphone microphone" ++ ++ ConflictingDevice [ ++ "Mic1" ++ ] ++ ++ EnableSequence [ ++ cset "name='PGA L Mux' AIN1" ++ cset "name='PGA R Mux' AIN1" ++ ] ++ ++ Value { ++ CapturePriority 300 ++ CaptureChannels "${var:CapChanN}" ++ CapturePCM "hw:${CardId},${var:CapDevN}" ++ } ++} ++ ++SectionDevice."Mic1" { ++ Comment "SOF Analog microphone" ++ ++ ConflictingDevice [ ++ "Headset" ++ ] ++ ++ EnableSequence [ ++ cset "name='PGA L Mux' AIN0" ++ cset "name='PGA R Mux' AIN0" ++ ] ++ ++ Value { ++ CapturePriority 200 ++ CaptureChannels "${var:CapChanN}" ++ CapturePCM "hw:${CardId},${var:CapDevN}" ++ } ++} ++ ++SectionDevice."Mic2" { ++ Comment "SOF Digital microphone" ++ ++ Value { ++ CapturePriority 100 ++ CaptureChannels 2 ++ CapturePCM "hw:${CardId},19" ++ } ++} +diff --git a/ucm2/MediaTek/mt8365-evk/sof/sof-mt8365-evk.conf b/ucm2/MediaTek/mt8365-evk/sof/sof-mt8365-evk.conf +new file mode 100644 +index 0000000..6369aac +--- /dev/null ++++ b/ucm2/MediaTek/mt8365-evk/sof/sof-mt8365-evk.conf +@@ -0,0 +1,9 @@ ++Syntax 4 ++ ++Define { ++ PlayDevN "16" ++ CapDevN "18" ++ CapChanN "2" ++} ++ ++Include.init.File "/MediaTek/mt8365-evk/init.conf" +diff --git a/ucm2/conf.d/sof-mt8365-evk/sof-mt8365-evk.conf b/ucm2/conf.d/sof-mt8365-evk/sof-mt8365-evk.conf +new file mode 120000 +index 0000000..527f25f +--- /dev/null ++++ b/ucm2/conf.d/sof-mt8365-evk/sof-mt8365-evk.conf +@@ -0,0 +1 @@ ++../../MediaTek/mt8365-evk/sof/sof-mt8365-evk.conf +\ No newline at end of file +-- +2.49.0 diff --git a/sources b/sources index e7b27b3..99910eb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (alsa-lib-1.2.13.tar.bz2) = b0c0666e38e881dca985b61386523c045c71072a88be4952c986ffbe2107ec736da528858ebeffdf439de5c290914bf3facc654100a228c6d26fff9429142ef0 -SHA512 (alsa-ucm-conf-1.2.13.tar.bz2) = cad867268851ac178f3a5378a00e292184b0e0ec7955f297ae7ed56073d3dddb06c08666b23b1bf6b0065068a9370ee34608bd687763658c79d34b64059b1c85 +SHA512 (alsa-lib-1.2.14.tar.bz2) = 2716cc3a2299da4a1a170d734af082d78dc452b253179d0f1a9ec190140734aecf002b6924eec4ff2699ce88ce1ae5c56821c267f36384910984db726d1f9626 +SHA512 (alsa-ucm-conf-1.2.14.tar.bz2) = a224e890919306bdcd606dfb873b089950c9fa89f24c02947692ee8ab1a05c419f2a8dc174440d17c8a9575cab293806630f2cb43d74677f7ef0d956b7883dc5 SHA512 (alsa-topology-conf-1.2.5.tar.bz2) = 2eb4d8baf2dcbf0b631dd11dbf15bffc51694d9cc6931619e51787f3ba58d1a091d266e6721a3b737c040ec74a28270b93f39fb97f30a3227cf340dd646e5d51