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 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/AMD/acp3x-alc5682-max98357/acp3x-alc5682-max98357.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" } } -- 2.49.0 From ac64586ab4ad3a0f162af3ec8a196bfd3799c5c0 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 25 Apr 2025 11:47:20 +0200 Subject: [PATCH 02/24] USB-Audio: Remove useless sections for Solid State Labs SSL 2+ Signed-off-by: Jaroslav Kysela --- ucm2/USB-Audio/SolidStateLabs/SSL2Plus-HiFi.conf | 8 -------- 1 file changed, 8 deletions(-) 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" - 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" { } Define.DirectPlaybackChannels 4 -Define.DirectCaptureChannels 2 +Define.DirectCaptureChannels 4 Include.dhw.File "/common/direct.conf" -- 2.49.0 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 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. 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 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/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" { } } -SectionDevice."Mic" { - Comment "Mic" +SectionDevice."Headset" { + Comment "Headset microphone" 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" } } 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.49.0 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 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. 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/sm8650/QRD/HiFi.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" } } -- 2.49.0 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 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/563 Fixes: ea7a065a7b50 ("ucm: fix SectionDevice identifiers") Signed-off-by: Johan Hovold Signed-off-by: Jaroslav Kysela --- ucm2/Tegra/max98090/HiFi.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..7d2dffc --- /dev/null +++ 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 "beacn_mic_stereo_out" + Direction Playback + Channels 2 + HWChannels 3 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 MONO + } + } + { + SplitPCM { + Name "beacn_mic_stereo_in" + Direction Capture + Channels 2 + HWChannels 4 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 MONO # Dry Mic + HWChannelPos3 MONO # Dry + Expander + } + } +] + +SectionDevice."Headphones" { + Comment "Headphones" + + Value { + PlaybackPriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "beacn_mic_stereo_out" + Direction Playback + HWChannels 3 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Mic" { + Comment "Microphone" + + Value { + CapturePriority 200 + } + Macro.pcm_split.SplitPCMDevice { + Name "beacn_mic_stereo_in" + Direction Capture + HWChannels 4 + Channels 2 + 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 "Link 2" + + Value { + PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { + Name "beacn_studio_stereo_out" + Direction Playback + HWChannels 11 + Channels 2 + Channel0 5 + Channel1 6 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line4" { + Comment "Link 1" + + Value { + PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { + Name "beacn_studio_stereo_out" + Direction Playback + 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 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line6" { + Comment "Link 3" + + Value { + PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { + Name "beacn_studio_stereo_in" + Direction Capture + 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 + ChannelPos0 FL + 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" + +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 { + PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { + 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 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Line4" { + Comment "Link 1" + + Value { + PlaybackPriority 400 + } + Macro.pcm_split.SplitPCMDevice { + 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 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 + ChannelPos0 FL + ChannelPos1 FR + } +} + +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 + } +} + +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 "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" + } + } +} + +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 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.Include.t14s.File "/Qualcomm/x1e80100/LENOVO-T14s.conf" } -- 2.49.0 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 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(-) 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 d90db39..ef88ded 100644 --- a/ucm2/USB-Audio/USB-Audio.conf +++ b/ucm2/USB-Audio/USB-Audio.conf @@ -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 @@ -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)|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.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