From a468906eae3dd266934a518464fc99b80aa90785 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Feb 02 2021 06:14:41 +0000 Subject: Add sources defined in the spec file --- diff --git a/SPECS/alsa-ucm-git.patch b/SPECS/alsa-ucm-git.patch index 43b9d26..3e330d2 100644 --- a/SPECS/alsa-ucm-git.patch +++ b/SPECS/alsa-ucm-git.patch @@ -1,23 +1,20 @@ -diff --git a/ucm2/HDA-Intel/HDAudio-DualCodecs.conf b/ucm2/HDA-Intel/HDAudio-DualCodecs.conf -index 8aaabd0..6fd7bd1 100644 ---- a/ucm2/HDA-Intel/HDAudio-DualCodecs.conf -+++ b/ucm2/HDA-Intel/HDAudio-DualCodecs.conf -@@ -4,3 +4,15 @@ SectionUseCase."HiFi" { - File "HiFi-dual.conf" - Comment "Default" - } -+ -+BootSequence [ -+ cset "name='Headphone Playback Volume' 60%" -+ cset "name='Headphone Playback Switch' off" -+ cset "name='Speaker Playback Volume' 60%" -+ cset "name='Speaker Playback Switch' on" -+ cset "name='Front Playback Volume' 100%" -+ cset "name='Front Playback Switch' on" -+ cset "name='Rear-Panel Capture Volume' 100%" -+ cset "name='Rear-Panel Capture Switch' on" -+ cset "name='Input Source' Rear Mic" -+] +From 33be660e4b1e75c19d5332556c3d2636dd3344bf Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Mon, 2 Nov 2020 16:44:51 +0100 +Subject: [PATCH 01/24] fix the ucm2/codecs/hda/hdmi.conf use + +The mentioned commit (dcef48f13d) removed the index for the IEC958 on/off +control which made the HDMI 2+ outputs silent. + +Fixes: dcef48f13d ("HDA-Intel: add support for AMD acp microphone devices") +BugLink: https://github.com/alsa-project/alsa-lib/issues/95 +Signed-off-by: Jaroslav Kysela +--- + ucm2/HDA-Intel/Hdmi.conf | 8 +++++++- + ucm2/codecs/hda/hdmi.conf | 4 ++-- + ucm2/sof-hda-dsp/Hdmi.conf | 3 +++ + 3 files changed, 12 insertions(+), 3 deletions(-) + diff --git a/ucm2/HDA-Intel/Hdmi.conf b/ucm2/HDA-Intel/Hdmi.conf index c8b6e77..c533e49 100644 --- a/ucm2/HDA-Intel/Hdmi.conf @@ -73,145 +70,12 @@ index c8b6e77..c533e49 100644 + Include.hdmi6.File "/codecs/hda/hdmi.conf" } } -diff --git a/ucm2/HDA-Intel/HiFi-acp.conf b/ucm2/HDA-Intel/HiFi-acp.conf -index 15eeca5..123ae15 100644 ---- a/ucm2/HDA-Intel/HiFi-acp.conf -+++ b/ucm2/HDA-Intel/HiFi-acp.conf -@@ -4,6 +4,5 @@ SectionDevice."Mic1" { - Value { - CapturePriority 100 - CapturePCM "hw:${var:AcpCardId}" -- CaptureMixerElem "Capture" - } - } -diff --git a/ucm2/HDA-Intel/HiFi-dual.conf b/ucm2/HDA-Intel/HiFi-dual.conf -index cff948e..f2c6915 100644 ---- a/ucm2/HDA-Intel/HiFi-dual.conf -+++ b/ucm2/HDA-Intel/HiFi-dual.conf -@@ -8,6 +8,8 @@ SectionVerb { - cset "name='Front Playback Switch' on" - cset "name='Rear-Panel Capture Volume' 100%" - cset "name='Rear-Panel Capture Switch' on" -+ cset "name='Headphone Playback Switch' off" -+ cset "name='Speaker Playback Switch' off" - ] - - DisableSequence [ -@@ -27,6 +29,14 @@ SectionDevice."Speaker" { - PlaybackMixerElem "Speaker" - } - -+ EnableSequence [ -+ cset "name='Speaker Playback Switch' on" -+ ] -+ -+ DisableSequence [ -+ cset "name='Speaker Playback Switch' off" -+ ] -+ - ConflictingDevice [ - "Headphones" - ] -@@ -54,6 +64,14 @@ SectionDevice."Headphones" { - JackHWMute "Speaker" - } - -+ EnableSequence [ -+ cset "name='Headphone Playback Switch' on" -+ ] -+ -+ DisableSequence [ -+ cset "name='Headphone Playback Switch' off" -+ ] -+ - ConflictingDevice [ - "Speaker" - ] -diff --git a/ucm2/HDA-Intel/init.conf b/ucm2/HDA-Intel/init.conf -index 1a351a9..6310eb3 100644 ---- a/ucm2/HDA-Intel/init.conf -+++ b/ucm2/HDA-Intel/init.conf -@@ -15,6 +15,7 @@ If.master { - } - True.BootSequence [ - cset "name='Master Playback Volume' 60%" -+ cset "name='Master Playback Switch' on" - ] - } - -diff --git a/ucm2/chtnau8824/HiFi.conf b/ucm2/chtnau8824/HiFi.conf -index 3ccd6b1..105f360 100644 ---- a/ucm2/chtnau8824/HiFi.conf -+++ b/ucm2/chtnau8824/HiFi.conf -@@ -1,4 +1,5 @@ - Define.Speaker "Speaker" -+Define.Mic "InternalMic" - - If.cfg-mspk { - Condition { -@@ -11,6 +12,19 @@ If.cfg-mspk { - } - } - -+If.cfg-mic { -+ Condition { -+ Type RegexMatch -+ String "${CardLongName}" -+ # Medion E22??T models put DMIC in their product version -+ # when using DMICs -+ Regex "(MEDION-E22..T.*-DMIC-)" -+ } -+ True { -+ Define.Mic "DMIC1_2" -+ } -+} -+ - SectionVerb { - - Value { -@@ -34,8 +48,15 @@ SectionVerb { - } - } - --Include.spk.File "/codecs/nau8824/${var:Speaker}.conf" --Include.hp.File "/codecs/nau8824/HeadPhones.conf" -+# The includes using $vars in there path must be conditional otherwise the -+# $var gets expanded before the other If-s above can change the vars. -+If.cfg-includes { -+ Condition { Type String Empty "" } -+ True { -+ Include.spk.File "/codecs/nau8824/${var:Speaker}.conf" -+ Include.hp.File "/codecs/nau8824/HeadPhones.conf" - --Include.mic.File "/codecs/nau8824/InternalMic.conf" --Include.hsmic.File "/codecs/nau8824/HeadsetMic.conf" -+ Include.mic.File "/codecs/nau8824/${var:Mic}.conf" -+ Include.hsmic.File "/codecs/nau8824/HeadsetMic.conf" -+ } -+} -diff --git a/ucm2/chtrt5645/HiFi.conf b/ucm2/chtrt5645/HiFi.conf -index 10b0a1c..30fad50 100644 ---- a/ucm2/chtrt5645/HiFi.conf -+++ b/ucm2/chtrt5645/HiFi.conf -@@ -18,7 +18,7 @@ If.cfg-dmic2 { - Condition { - Type RegexMatch - String "${CardLongName}" -- Regex "(LENOVO.*LenovoMIIX320|MEDION.*Wingman)" -+ Regex "(LENOVO.*LenovoMIIX320|MEDION.*Wingman|Standard-EF20EA-1.0)" - } - True { - Define.AnalogMic "" diff --git a/ucm2/codecs/hda/hdmi.conf b/ucm2/codecs/hda/hdmi.conf -index ba80fef..c7b7ba4 100644 +index ba80fef..32a77f4 100644 --- a/ucm2/codecs/hda/hdmi.conf +++ b/ucm2/codecs/hda/hdmi.conf -@@ -5,14 +5,14 @@ If.hdmi { - } - True { - SectionDevice."HDMI${var:HdmiNum}" { -- Comment "HDMI${var:HdmiNum} Output" -+ Comment "HDMI / DisplayPort ${var:HdmiNum} Output" +@@ -8,11 +8,11 @@ If.hdmi { + Comment "HDMI${var:HdmiNum} Output" EnableSequence [ - cset "name='IEC958 Playback Switch' on" @@ -224,67 +88,6 @@ index ba80fef..c7b7ba4 100644 ] Value { -diff --git a/ucm2/codecs/nau8824/DMIC1_2.conf b/ucm2/codecs/nau8824/DMIC1_2.conf -new file mode 100644 -index 0000000..f54f671 ---- /dev/null -+++ b/ucm2/codecs/nau8824/DMIC1_2.conf -@@ -0,0 +1,30 @@ -+# Stereo DMICs on the DMIC1 and DMIC2 inputs -+ -+SectionDevice."Mic" { -+ Comment "Internal Digital Microphones" -+ -+ Value { -+ CapturePriority 200 -+ CapturePCM "hw:${CardId}" -+ } -+ -+ ConflictingDevice [ -+ "Headset" -+ ] -+ -+ EnableSequence [ -+ # Note needs to be swapped / swap is deliberate! -+ cset "name='ADC CH0 Select' 1" -+ cset "name='ADC CH1 Select' 0" -+ -+ cset "name='Int Mic Switch' on" -+ cset "name='DMIC1 Enable Switch' on" -+ cset "name='DMIC2 Enable Switch' on" -+ ] -+ -+ DisableSequence [ -+ cset "name='Int Mic Switch' off" -+ cset "name='DMIC1 Enable Switch' off" -+ cset "name='DMIC2 Enable Switch' off" -+ ] -+} -diff --git a/ucm2/codecs/nau8824/EnableSeq.conf b/ucm2/codecs/nau8824/EnableSeq.conf -index 433e8e2..3650d06 100644 ---- a/ucm2/codecs/nau8824/EnableSeq.conf -+++ b/ucm2/codecs/nau8824/EnableSeq.conf -@@ -7,8 +7,8 @@ EnableSequence [ - cset "name='DMIC2 Enable Switch' off" - cset "name='DMIC3 Enable Switch' off" - cset "name='DMIC4 Enable Switch' off" -- cset "name='MIC1 Volume' 10" -- cset "name='MIC2 Volume' 10" -+ cset "name='MIC1 Volume' 14" -+ cset "name='MIC2 Volume' 14" - # Button Configuration - cset "name='THD for key media' 10" - cset "name='THD for key voice command' 16" -diff --git a/ucm2/codecs/rt715/init.conf b/ucm2/codecs/rt715/init.conf -index 6e07b2d..15a0571 100644 ---- a/ucm2/codecs/rt715/init.conf -+++ b/ucm2/codecs/rt715/init.conf -@@ -7,4 +7,5 @@ BootSequence [ - cset "name='rt715 ADC 25 Mux' 4" - cset "name='rt715 ADC 27 Capture Switch' 1" - cset "name='rt715 ADC 07 Capture Switch' 1" -+ cset "name='rt715 ADC 07 Capture Volume' 58" - ] diff --git a/ucm2/sof-hda-dsp/Hdmi.conf b/ucm2/sof-hda-dsp/Hdmi.conf index 7b777d1..1726567 100644 --- a/ucm2/sof-hda-dsp/Hdmi.conf @@ -313,18 +116,48 @@ index 7b777d1..1726567 100644 HdmiPrio 700 } Include.hdmi3.File "/codecs/hda/hdmi.conf" -diff --git a/ucm2/sof-hda-dsp/sof-hda-dsp.conf b/ucm2/sof-hda-dsp/sof-hda-dsp.conf -index c8069a6..79b54a9 100644 ---- a/ucm2/sof-hda-dsp/sof-hda-dsp.conf -+++ b/ucm2/sof-hda-dsp/sof-hda-dsp.conf -@@ -24,6 +24,7 @@ If.master { +-- +2.29.2 + + +From f8c2428ccc42488c5e96801cce9f7e28080ecb71 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Mon, 2 Nov 2020 18:15:14 +0100 +Subject: [PATCH 02/24] codecs/hda/hdmi.conf - add DisplayPort to the device + description (Comment) + +Signed-off-by: Jaroslav Kysela +--- + ucm2/codecs/hda/hdmi.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ucm2/codecs/hda/hdmi.conf b/ucm2/codecs/hda/hdmi.conf +index 32a77f4..c7b7ba4 100644 +--- a/ucm2/codecs/hda/hdmi.conf ++++ b/ucm2/codecs/hda/hdmi.conf +@@ -5,7 +5,7 @@ If.hdmi { } - True.BootSequence [ - cset "name='Master Playback Volume' 60%" -+ cset "name='Master Playback Switch' on" - ] - } + True { + SectionDevice."HDMI${var:HdmiNum}" { +- Comment "HDMI${var:HdmiNum} Output" ++ Comment "HDMI / DisplayPort ${var:HdmiNum} Output" + EnableSequence [ + cset "name='IEC958 Playback Switch',index=${var:HdmiCtlIndex} on" +-- +2.29.2 + + +From 334b12e9a796cddf70779b68418ee7ad52ba1d14 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Mon, 16 Nov 2020 11:48:05 +0100 +Subject: [PATCH 03/24] sof-soundwire: use the codecs/hda/hdmi.conf macro + +Signed-off-by: Jaroslav Kysela +--- + ucm2/sof-soundwire/Hdmi.conf | 83 ++++++++++-------------------------- + 1 file changed, 22 insertions(+), 61 deletions(-) + diff --git a/ucm2/sof-soundwire/Hdmi.conf b/ucm2/sof-soundwire/Hdmi.conf index d0ba790..d5ee9c6 100644 --- a/ucm2/sof-soundwire/Hdmi.conf @@ -431,3 +264,1308 @@ index d0ba790..d5ee9c6 100644 + Include.hdmi3.File "/codecs/hda/hdmi.conf" } } +-- +2.29.2 + + +From 6889736b917eed89c4d775824efd8655400e27e3 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Mon, 7 Dec 2020 09:33:30 +0100 +Subject: [PATCH 04/24] Revert "ucm2: HDA/acp - add Capture simple mixer + element to the ACP Mic device" + +This reverts commit 3320b1ac804595d6c145c1ad7af85917182a3c98. + +This solution does not work. The mute state is shared between +the HDA and AMD ACP in PA, so it may cause the security issue, if +the users do not set the mute manually. + +BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/64 +Signed-off-by: Jaroslav Kysela +--- + ucm2/HDA-Intel/HiFi-acp.conf | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/ucm2/HDA-Intel/HiFi-acp.conf b/ucm2/HDA-Intel/HiFi-acp.conf +index 15eeca5..123ae15 100644 +--- a/ucm2/HDA-Intel/HiFi-acp.conf ++++ b/ucm2/HDA-Intel/HiFi-acp.conf +@@ -4,6 +4,5 @@ SectionDevice."Mic1" { + Value { + CapturePriority 100 + CapturePCM "hw:${var:AcpCardId}" +- CaptureMixerElem "Capture" + } + } +-- +2.29.2 + + +From 13420f94a6858e9c3e3a056a7987d9c0db823394 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Sun, 6 Dec 2020 13:47:16 +0100 +Subject: [PATCH 05/24] chtnau8824: Fix mono speaker config not working + +Fix the Speaker define / var being changed from "Speaker" to "MonoSpeaker" +not having any effect because the variable gets expanded before the if +making the change is interpreted. + +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/chtnau8824/HiFi.conf | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/ucm2/chtnau8824/HiFi.conf b/ucm2/chtnau8824/HiFi.conf +index 3ccd6b1..d7a5f63 100644 +--- a/ucm2/chtnau8824/HiFi.conf ++++ b/ucm2/chtnau8824/HiFi.conf +@@ -34,8 +34,15 @@ SectionVerb { + } + } + +-Include.spk.File "/codecs/nau8824/${var:Speaker}.conf" +-Include.hp.File "/codecs/nau8824/HeadPhones.conf" ++# The includes using $vars in there path must be conditional otherwise the ++# $var gets expanded before the other If-s above can change the vars. ++If.cfg-includes { ++ Condition { Type String Empty "" } ++ True { ++ Include.spk.File "/codecs/nau8824/${var:Speaker}.conf" ++ Include.hp.File "/codecs/nau8824/HeadPhones.conf" + +-Include.mic.File "/codecs/nau8824/InternalMic.conf" +-Include.hsmic.File "/codecs/nau8824/HeadsetMic.conf" ++ Include.mic.File "/codecs/nau8824/InternalMic.conf" ++ Include.hsmic.File "/codecs/nau8824/HeadsetMic.conf" ++ } ++} +-- +2.29.2 + + +From 7db718571440b13045ebb3150a71745033ff5c0c Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Sun, 6 Dec 2020 13:47:17 +0100 +Subject: [PATCH 06/24] chtnau8824: Add support for laptops using stereo DMICs + +The Medion E2228T uses a NAU8824 codec combined with stereo +DMICs, add support for this. + +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/chtnau8824/HiFi.conf | 16 +++++++++++++++- + ucm2/codecs/nau8824/DMIC1_2.conf | 30 ++++++++++++++++++++++++++++++ + 2 files changed, 45 insertions(+), 1 deletion(-) + create mode 100644 ucm2/codecs/nau8824/DMIC1_2.conf + +diff --git a/ucm2/chtnau8824/HiFi.conf b/ucm2/chtnau8824/HiFi.conf +index d7a5f63..105f360 100644 +--- a/ucm2/chtnau8824/HiFi.conf ++++ b/ucm2/chtnau8824/HiFi.conf +@@ -1,4 +1,5 @@ + Define.Speaker "Speaker" ++Define.Mic "InternalMic" + + If.cfg-mspk { + Condition { +@@ -11,6 +12,19 @@ If.cfg-mspk { + } + } + ++If.cfg-mic { ++ Condition { ++ Type RegexMatch ++ String "${CardLongName}" ++ # Medion E22??T models put DMIC in their product version ++ # when using DMICs ++ Regex "(MEDION-E22..T.*-DMIC-)" ++ } ++ True { ++ Define.Mic "DMIC1_2" ++ } ++} ++ + SectionVerb { + + Value { +@@ -42,7 +56,7 @@ If.cfg-includes { + Include.spk.File "/codecs/nau8824/${var:Speaker}.conf" + Include.hp.File "/codecs/nau8824/HeadPhones.conf" + +- Include.mic.File "/codecs/nau8824/InternalMic.conf" ++ Include.mic.File "/codecs/nau8824/${var:Mic}.conf" + Include.hsmic.File "/codecs/nau8824/HeadsetMic.conf" + } + } +diff --git a/ucm2/codecs/nau8824/DMIC1_2.conf b/ucm2/codecs/nau8824/DMIC1_2.conf +new file mode 100644 +index 0000000..f54f671 +--- /dev/null ++++ b/ucm2/codecs/nau8824/DMIC1_2.conf +@@ -0,0 +1,30 @@ ++# Stereo DMICs on the DMIC1 and DMIC2 inputs ++ ++SectionDevice."Mic" { ++ Comment "Internal Digital Microphones" ++ ++ Value { ++ CapturePriority 200 ++ CapturePCM "hw:${CardId}" ++ } ++ ++ ConflictingDevice [ ++ "Headset" ++ ] ++ ++ EnableSequence [ ++ # Note needs to be swapped / swap is deliberate! ++ cset "name='ADC CH0 Select' 1" ++ cset "name='ADC CH1 Select' 0" ++ ++ cset "name='Int Mic Switch' on" ++ cset "name='DMIC1 Enable Switch' on" ++ cset "name='DMIC2 Enable Switch' on" ++ ] ++ ++ DisableSequence [ ++ cset "name='Int Mic Switch' off" ++ cset "name='DMIC1 Enable Switch' off" ++ cset "name='DMIC2 Enable Switch' off" ++ ] ++} +-- +2.29.2 + + +From dacfe2fc7b41b800f4f379ce4b1722462b97cab2 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Sun, 6 Dec 2020 13:47:18 +0100 +Subject: [PATCH 07/24] chtnau8824: Boost analog mic volumes a bit + +Both Mic1 (internal analog mic) and Mic2 (headset mic) are a bit soft +with the current settings, boost their volumes a bit. + +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/codecs/nau8824/EnableSeq.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ucm2/codecs/nau8824/EnableSeq.conf b/ucm2/codecs/nau8824/EnableSeq.conf +index 433e8e2..3650d06 100644 +--- a/ucm2/codecs/nau8824/EnableSeq.conf ++++ b/ucm2/codecs/nau8824/EnableSeq.conf +@@ -7,8 +7,8 @@ EnableSequence [ + cset "name='DMIC2 Enable Switch' off" + cset "name='DMIC3 Enable Switch' off" + cset "name='DMIC4 Enable Switch' off" +- cset "name='MIC1 Volume' 10" +- cset "name='MIC2 Volume' 10" ++ cset "name='MIC1 Volume' 14" ++ cset "name='MIC2 Volume' 14" + # Button Configuration + cset "name='THD for key media' 10" + cset "name='THD for key voice command' 16" +-- +2.29.2 + + +From 263bd26b1216c933db3d216197a78678d0f8610e Mon Sep 17 00:00:00 2001 +From: Libin Yang +Date: Thu, 19 Nov 2020 20:01:30 +0800 +Subject: [PATCH 08/24] rt715: init: setup ADC07 to a proper volume + +This patch initiates 'rt715 ADC 07 Capture Volume' to a proper volume. + +Signed-off-by: Libin Yang +Signed-off-by: Jaroslav Kysela +--- + ucm2/codecs/rt715/init.conf | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ucm2/codecs/rt715/init.conf b/ucm2/codecs/rt715/init.conf +index 6e07b2d..15a0571 100644 +--- a/ucm2/codecs/rt715/init.conf ++++ b/ucm2/codecs/rt715/init.conf +@@ -7,4 +7,5 @@ BootSequence [ + cset "name='rt715 ADC 25 Mux' 4" + cset "name='rt715 ADC 27 Capture Switch' 1" + cset "name='rt715 ADC 07 Capture Switch' 1" ++ cset "name='rt715 ADC 07 Capture Volume' 58" + ] +-- +2.29.2 + + +From cf267cce6d553d4d436c166c23d3befc5476acef Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Thu, 29 Oct 2020 13:34:02 +0800 +Subject: [PATCH 09/24] sof-hda-dsp: Set Master Playback Switch on in the + BootSequence + +Otherwise, the audio output will be muted by default if there is no +/var/lib/alsa/asound.state. I have experienced this issue When newly +install an OS. + +Signed-off-by: Hui Wang +Signed-off-by: Jaroslav Kysela +--- + ucm2/HDA-Intel/init.conf | 1 + + ucm2/sof-hda-dsp/sof-hda-dsp.conf | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/ucm2/HDA-Intel/init.conf b/ucm2/HDA-Intel/init.conf +index 1a351a9..6310eb3 100644 +--- a/ucm2/HDA-Intel/init.conf ++++ b/ucm2/HDA-Intel/init.conf +@@ -15,6 +15,7 @@ If.master { + } + True.BootSequence [ + cset "name='Master Playback Volume' 60%" ++ cset "name='Master Playback Switch' on" + ] + } + +diff --git a/ucm2/sof-hda-dsp/sof-hda-dsp.conf b/ucm2/sof-hda-dsp/sof-hda-dsp.conf +index c8069a6..79b54a9 100644 +--- a/ucm2/sof-hda-dsp/sof-hda-dsp.conf ++++ b/ucm2/sof-hda-dsp/sof-hda-dsp.conf +@@ -24,6 +24,7 @@ If.master { + } + True.BootSequence [ + cset "name='Master Playback Volume' 60%" ++ cset "name='Master Playback Switch' on" + ] + } + +-- +2.29.2 + + +From 5405544752c18153acc310ee7e4a4bacda040dca Mon Sep 17 00:00:00 2001 +From: Kai-Heng Feng +Date: Thu, 27 Aug 2020 21:18:13 +0800 +Subject: [PATCH 10/24] HDA-Intel/HiFi-dual: Add EnableSequence and + DisableSequence for Speaker and Headphones + +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/48 +Signed-off-by: Kai-Heng Feng +Signed-off-by: Jaroslav Kysela +--- + ucm2/HDA-Intel/HiFi-dual.conf | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/ucm2/HDA-Intel/HiFi-dual.conf b/ucm2/HDA-Intel/HiFi-dual.conf +index cff948e..bacfd80 100644 +--- a/ucm2/HDA-Intel/HiFi-dual.conf ++++ b/ucm2/HDA-Intel/HiFi-dual.conf +@@ -27,6 +27,14 @@ SectionDevice."Speaker" { + PlaybackMixerElem "Speaker" + } + ++ EnableSequence [ ++ cset "name='Speaker Playback Switch' on" ++ ] ++ ++ DisableSequence [ ++ cset "name='Speaker Playback Switch' off" ++ ] ++ + ConflictingDevice [ + "Headphones" + ] +@@ -54,6 +62,14 @@ SectionDevice."Headphones" { + JackHWMute "Speaker" + } + ++ EnableSequence [ ++ cset "name='Headphone Playback Switch' on" ++ ] ++ ++ DisableSequence [ ++ cset "name='Headphone Playback Switch' off" ++ ] ++ + ConflictingDevice [ + "Speaker" + ] +-- +2.29.2 + + +From 5947daef124c84fae511233248196576dfbfab7c Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 16 Dec 2020 08:55:04 +0100 +Subject: [PATCH 11/24] HDA-Intel/HiFi-dual: Add BootSequence and disable + playback channels in verb init + +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/48 +Signed-off-by: Jaroslav Kysela +--- + ucm2/HDA-Intel/HDAudio-DualCodecs.conf | 12 ++++++++++++ + ucm2/HDA-Intel/HiFi-dual.conf | 2 ++ + 2 files changed, 14 insertions(+) + +diff --git a/ucm2/HDA-Intel/HDAudio-DualCodecs.conf b/ucm2/HDA-Intel/HDAudio-DualCodecs.conf +index 8aaabd0..6fd7bd1 100644 +--- a/ucm2/HDA-Intel/HDAudio-DualCodecs.conf ++++ b/ucm2/HDA-Intel/HDAudio-DualCodecs.conf +@@ -4,3 +4,15 @@ SectionUseCase."HiFi" { + File "HiFi-dual.conf" + Comment "Default" + } ++ ++BootSequence [ ++ cset "name='Headphone Playback Volume' 60%" ++ cset "name='Headphone Playback Switch' off" ++ cset "name='Speaker Playback Volume' 60%" ++ cset "name='Speaker Playback Switch' on" ++ cset "name='Front Playback Volume' 100%" ++ cset "name='Front Playback Switch' on" ++ cset "name='Rear-Panel Capture Volume' 100%" ++ cset "name='Rear-Panel Capture Switch' on" ++ cset "name='Input Source' Rear Mic" ++] +diff --git a/ucm2/HDA-Intel/HiFi-dual.conf b/ucm2/HDA-Intel/HiFi-dual.conf +index bacfd80..f2c6915 100644 +--- a/ucm2/HDA-Intel/HiFi-dual.conf ++++ b/ucm2/HDA-Intel/HiFi-dual.conf +@@ -8,6 +8,8 @@ SectionVerb { + cset "name='Front Playback Switch' on" + cset "name='Rear-Panel Capture Volume' 100%" + cset "name='Rear-Panel Capture Switch' on" ++ cset "name='Headphone Playback Switch' off" ++ cset "name='Speaker Playback Switch' off" + ] + + DisableSequence [ +-- +2.29.2 + + +From 5634db4be3ed435f3e59f30a71c3c3711162929d Mon Sep 17 00:00:00 2001 +From: Jian-Hong Pan +Date: Tue, 15 Dec 2020 16:54:03 +0800 +Subject: [PATCH 12/24] chtrt5645: Enable Internal MIC of ECS EF20EA + +The ECS EF20EA uses a digital mic connected to the dmic2 pin, rather +then the default analog mic. + +1 [chtrt5645 ]: chtrt5645 - chtrt5645 + Standard-EF20EA-1.0 + +Add a card long name match for this, so that the right config is used. + +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/68 +Signed-off-by: Jian-Hong Pan +Signed-off-by: Jaroslav Kysela +--- + ucm2/chtrt5645/HiFi.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ucm2/chtrt5645/HiFi.conf b/ucm2/chtrt5645/HiFi.conf +index 10b0a1c..30fad50 100644 +--- a/ucm2/chtrt5645/HiFi.conf ++++ b/ucm2/chtrt5645/HiFi.conf +@@ -18,7 +18,7 @@ If.cfg-dmic2 { + Condition { + Type RegexMatch + String "${CardLongName}" +- Regex "(LENOVO.*LenovoMIIX320|MEDION.*Wingman)" ++ Regex "(LENOVO.*LenovoMIIX320|MEDION.*Wingman|Standard-EF20EA-1.0)" + } + True { + Define.AnalogMic "" +-- +2.29.2 + + +From bdd05ac3396a3a09f3818aaa9157eb7ef07676d6 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Sat, 9 Jan 2021 22:02:51 +0100 +Subject: [PATCH 13/24] bytcr-rt5640: Add support for devices without speakers + and/or an internal mic + +There are kernel patches pending upstream for the bytcr-rt5640 machine-driver +to support devices without speakers and/or an internal mic. + +Since the UCM profile already conditionally loads the speaker and +internal-mic codec include files, these will simply get skipped in this +case, so this almost works with the current UCM profile without changes. + +The only troublesome part is the ConflictingDevice sections in the codec +HeadPhones.conf and HeadsetMic.conf files, which refer to resp. a "Speaker" +and a "Mic" device. Without any of the speaker or mic codec conf files +being included there will not by any "Speaker" / "Mic" devices leading +to an error while parsing the HeadPhones.conf / HeadsetMic.conf files. + +This commit makes the ConflictingDevice section conditional, fixing this. + +Cc: Rasmus Porsager +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/bytcr-rt5640/HiFi-Components.conf | 28 +++++++++++++++++++++----- + ucm2/bytcr-rt5640/HiFi-LongName.conf | 28 +++++++++++++++++++++----- + ucm2/codecs/rt5640/HeadPhones.conf | 14 ++++++++++--- + ucm2/codecs/rt5640/HeadsetMic.conf | 14 ++++++++++--- + 4 files changed, 68 insertions(+), 16 deletions(-) + +diff --git a/ucm2/bytcr-rt5640/HiFi-Components.conf b/ucm2/bytcr-rt5640/HiFi-Components.conf +index 2ce4f59..a76b42d 100644 +--- a/ucm2/bytcr-rt5640/HiFi-Components.conf ++++ b/ucm2/bytcr-rt5640/HiFi-Components.conf +@@ -1,10 +1,16 @@ ++Define.HaveSpeaker "" ++Define.HaveInternalMic "" ++ + If.spk { + Condition { + Type String + Haystack "${CardComponents}" + Needle "cfg-spk:2" + } +- True.Include.spk.File "/codecs/rt5640/Speaker.conf" ++ True { ++ Include.spk.File "/codecs/rt5640/Speaker.conf" ++ Define.HaveSpeaker "yes" ++ } + } + + If.mono { +@@ -13,7 +19,10 @@ If.mono { + Haystack "${CardComponents}" + Needle "cfg-spk:1" + } +- True.Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf" ++ True { ++ Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf" ++ Define.HaveSpeaker "yes" ++ } + } + + Include.hs.File "/codecs/rt5640/HeadPhones.conf" +@@ -24,7 +33,10 @@ If.dmic1 { + Haystack "${CardComponents}" + Needle "cfg-mic:dmic1" + } +- True.Include.dmic.File "/codecs/rt5640/DigitalMics.conf" ++ True { ++ Include.dmic.File "/codecs/rt5640/DigitalMics.conf" ++ Define.HaveInternalMic "yes" ++ } + } + + If.in1 { +@@ -33,7 +45,10 @@ If.in1 { + Haystack "${CardComponents}" + Needle "cfg-mic:in1" + } +- True.Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf" ++ True { ++ Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf" ++ Define.HaveInternalMic "yes" ++ } + } + + If.in3 { +@@ -42,7 +57,10 @@ If.in3 { + Haystack "${CardComponents}" + Needle "cfg-mic:in3" + } +- True.Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf" ++ True { ++ Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf" ++ Define.HaveInternalMic "yes" ++ } + } + + Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf" +diff --git a/ucm2/bytcr-rt5640/HiFi-LongName.conf b/ucm2/bytcr-rt5640/HiFi-LongName.conf +index c07f153..6cb5556 100644 +--- a/ucm2/bytcr-rt5640/HiFi-LongName.conf ++++ b/ucm2/bytcr-rt5640/HiFi-LongName.conf +@@ -1,10 +1,16 @@ ++Define.HaveSpeaker "" ++Define.HaveInternalMic "" ++ + If.spk { + Condition { + Type String + Haystack "${CardLongName}" + Needle "-stereo-spk" + } +- True.Include.spk.File "/codecs/rt5640/Speaker.conf" ++ True { ++ Include.spk.File "/codecs/rt5640/Speaker.conf" ++ Define.HaveSpeaker "yes" ++ } + } + + If.mono { +@@ -13,7 +19,10 @@ If.mono { + Haystack "${CardLongName}" + Needle "-mono-spk" + } +- True.Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf" ++ True { ++ Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf" ++ Define.HaveSpeaker "yes" ++ } + } + + Include.hs.File "/codecs/rt5640/HeadPhones.conf" +@@ -24,7 +33,10 @@ If.dmic1 { + Haystack "${CardLongName}" + Needle "-dmic1-mic" + } +- True.Include.dmic.File "/codecs/rt5640/DigitalMics.conf" ++ True { ++ Include.dmic.File "/codecs/rt5640/DigitalMics.conf" ++ Define.HaveInternalMic "yes" ++ } + } + + If.in1 { +@@ -33,7 +45,10 @@ If.in1 { + Haystack "${CardLongName}" + Needle "-in1-mic" + } +- True.Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf" ++ True { ++ Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf" ++ Define.HaveInternalMic "yes" ++ } + } + + If.in3 { +@@ -42,7 +57,10 @@ If.in3 { + Haystack "${CardLongName}" + Needle "-in3-mic" + } +- True.Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf" ++ True { ++ Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf" ++ Define.HaveInternalMic "yes" ++ } + } + + Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf" +diff --git a/ucm2/codecs/rt5640/HeadPhones.conf b/ucm2/codecs/rt5640/HeadPhones.conf +index 42151d6..b7707e5 100644 +--- a/ucm2/codecs/rt5640/HeadPhones.conf ++++ b/ucm2/codecs/rt5640/HeadPhones.conf +@@ -1,9 +1,17 @@ + SectionDevice."Headphones" { + Comment "Headphones" + +- ConflictingDevice [ +- "Speaker" +- ] ++ If.have-spk { ++ Condition { ++ Type String ++ Empty "${var:HaveSpeaker}" ++ } ++ False { ++ ConflictingDevice [ ++ "Speaker" ++ ] ++ } ++ } + + EnableSequence [ + cset "name='DAC MIXL INF1 Switch' on" +diff --git a/ucm2/codecs/rt5640/HeadsetMic.conf b/ucm2/codecs/rt5640/HeadsetMic.conf +index 7a8dfb8..f88b611 100644 +--- a/ucm2/codecs/rt5640/HeadsetMic.conf ++++ b/ucm2/codecs/rt5640/HeadsetMic.conf +@@ -1,9 +1,17 @@ + SectionDevice."Headset" { + Comment "Headset Microphone" + +- ConflictingDevice [ +- "Mic" +- ] ++ If.have-mic { ++ Condition { ++ Type String ++ Empty "${var:HaveInternalMic}" ++ } ++ False { ++ ConflictingDevice [ ++ "Mic" ++ ] ++ } ++ } + + EnableSequence [ + cset "name='Headset Mic Switch' on" +-- +2.29.2 + + +From cd02791e9360bcfa2cd4bed40cf5ddabb378ef93 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Sat, 9 Jan 2021 22:02:52 +0100 +Subject: [PATCH 14/24] rt5640: Move standard DAC setup to EnableSeq.conf + +No matter which output is used, we always need to setup the standard +DAC config. Move this to the shared EnableSeq.conf to avoid having +to duplicate it in various places. + +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/codecs/rt5640/EnableSeq.conf | 6 ++++++ + ucm2/codecs/rt5640/HeadPhones.conf | 6 ------ + ucm2/codecs/rt5640/MonoSpeaker.conf | 6 ------ + ucm2/codecs/rt5640/Speaker.conf | 6 ------ + 4 files changed, 6 insertions(+), 18 deletions(-) + +diff --git a/ucm2/codecs/rt5640/EnableSeq.conf b/ucm2/codecs/rt5640/EnableSeq.conf +index cbf4038..145a23b 100644 +--- a/ucm2/codecs/rt5640/EnableSeq.conf ++++ b/ucm2/codecs/rt5640/EnableSeq.conf +@@ -1,5 +1,11 @@ + EnableSequence [ + # RT5640 default output routing ++ cset "name='DAC MIXL INF1 Switch' on" ++ cset "name='DAC MIXR INF1 Switch' on" ++ cset "name='Stereo DAC MIXL DAC L1 Switch' on" ++ cset "name='Stereo DAC MIXR DAC R1 Switch' on" ++ cset "name='Stereo DAC MIXL DAC L2 Switch' on" ++ cset "name='Stereo DAC MIXR DAC R2 Switch' on" + cset "name='OUT MIXL DAC L1 Switch' on" + cset "name='OUT MIXR DAC R1 Switch' on" + +diff --git a/ucm2/codecs/rt5640/HeadPhones.conf b/ucm2/codecs/rt5640/HeadPhones.conf +index b7707e5..a9e4d20 100644 +--- a/ucm2/codecs/rt5640/HeadPhones.conf ++++ b/ucm2/codecs/rt5640/HeadPhones.conf +@@ -14,12 +14,6 @@ SectionDevice."Headphones" { + } + + EnableSequence [ +- cset "name='DAC MIXL INF1 Switch' on" +- cset "name='DAC MIXR INF1 Switch' on" +- cset "name='Stereo DAC MIXL DAC L1 Switch' on" +- cset "name='Stereo DAC MIXR DAC R1 Switch' on" +- cset "name='Stereo DAC MIXL DAC L2 Switch' on" +- cset "name='Stereo DAC MIXR DAC R2 Switch' on" + cset "name='HPO MIX HPVOL Switch' on" + cset "name='Headphone Switch' on" + cset "name='HP Channel Switch' on" +diff --git a/ucm2/codecs/rt5640/MonoSpeaker.conf b/ucm2/codecs/rt5640/MonoSpeaker.conf +index ddc7ba8..23cf34c 100644 +--- a/ucm2/codecs/rt5640/MonoSpeaker.conf ++++ b/ucm2/codecs/rt5640/MonoSpeaker.conf +@@ -6,12 +6,6 @@ SectionDevice."Speaker" { + ] + + EnableSequence [ +- cset "name='DAC MIXL INF1 Switch' on" +- cset "name='DAC MIXR INF1 Switch' on" +- cset "name='Stereo DAC MIXL DAC L1 Switch' on" +- cset "name='Stereo DAC MIXR DAC R1 Switch' on" +- cset "name='Stereo DAC MIXL DAC L2 Switch' on" +- cset "name='Stereo DAC MIXR DAC R2 Switch' on" + cset "name='SPK MIXL DAC L1 Switch' on" + cset "name='SPK MIXR DAC R1 Switch' on" + cset "name='SPOL MIX SPKVOL L Switch' on" +diff --git a/ucm2/codecs/rt5640/Speaker.conf b/ucm2/codecs/rt5640/Speaker.conf +index 411cd13..422cfdf 100644 +--- a/ucm2/codecs/rt5640/Speaker.conf ++++ b/ucm2/codecs/rt5640/Speaker.conf +@@ -6,12 +6,6 @@ SectionDevice."Speaker" { + ] + + EnableSequence [ +- cset "name='DAC MIXL INF1 Switch' on" +- cset "name='DAC MIXR INF1 Switch' on" +- cset "name='Stereo DAC MIXL DAC L1 Switch' on" +- cset "name='Stereo DAC MIXR DAC R1 Switch' on" +- cset "name='Stereo DAC MIXL DAC L2 Switch' on" +- cset "name='Stereo DAC MIXR DAC R2 Switch' on" + cset "name='SPK MIXL DAC L1 Switch' on" + cset "name='SPK MIXR DAC R1 Switch' on" + cset "name='SPOL MIX SPKVOL L Switch' on" +-- +2.29.2 + + +From 95587ae8b75134c4bbc2cec0181e5d529826c9c4 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Thu, 14 Jan 2021 18:31:24 +0100 +Subject: [PATCH 15/24] bytcr-rt5640: fix the execution order + +The includes must be run _after_ defines. The Include directives +have precedence. Put everything to If compound. + +Fixes: bdd05ac339 ("bytcr-rt5640: Add support for devices without speakers and/or an internal mic") +Signed-off-by: Jaroslav Kysela +--- + ucm2/bytcr-rt5640/HiFi-Components.conf | 10 ++++++++-- + ucm2/bytcr-rt5640/HiFi-LongName.conf | 10 ++++++++-- + 2 files changed, 16 insertions(+), 4 deletions(-) + +diff --git a/ucm2/bytcr-rt5640/HiFi-Components.conf b/ucm2/bytcr-rt5640/HiFi-Components.conf +index a76b42d..1999717 100644 +--- a/ucm2/bytcr-rt5640/HiFi-Components.conf ++++ b/ucm2/bytcr-rt5640/HiFi-Components.conf +@@ -25,7 +25,10 @@ If.mono { + } + } + +-Include.hs.File "/codecs/rt5640/HeadPhones.conf" ++If.hp { ++ Condition { Type String Empty "" } ++ True.Include.hs.File "/codecs/rt5640/HeadPhones.conf" ++} + + If.dmic1 { + Condition { +@@ -63,4 +66,7 @@ If.in3 { + } + } + +-Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf" ++If.hsmic { ++ Condition { Type String Empty "" } ++ True.Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf" ++} +diff --git a/ucm2/bytcr-rt5640/HiFi-LongName.conf b/ucm2/bytcr-rt5640/HiFi-LongName.conf +index 6cb5556..34acef8 100644 +--- a/ucm2/bytcr-rt5640/HiFi-LongName.conf ++++ b/ucm2/bytcr-rt5640/HiFi-LongName.conf +@@ -25,7 +25,10 @@ If.mono { + } + } + +-Include.hs.File "/codecs/rt5640/HeadPhones.conf" ++If.hp { ++ Condition { Type String Empty "" } ++ True.Include.hs.File "/codecs/rt5640/HeadPhones.conf" ++} + + If.dmic1 { + Condition { +@@ -63,4 +66,7 @@ If.in3 { + } + } + +-Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf" ++If.hsmic { ++ Condition { Type String Empty "" } ++ True.Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf" ++} +-- +2.29.2 + + +From 09e5271401480297c2c9c0b753df9705123a1af1 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Thu, 14 Jan 2021 11:03:56 +0100 +Subject: [PATCH 16/24] ucm2: add initial configuration for TRX40 Gigabyte + Aorus Master Audio + +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/25 +Signed-off-by: Jaroslav Kysela +--- + ...Gigabyte-Aorus-Master-Front-Headphone.conf | 1 + + ...Gigabyte-Aorus-Master-Main-Audio-HiFi.conf | 61 +++++++++++++++++++ + .../Gigabyte-Aorus-Master-Main-Audio.conf | 6 ++ + 3 files changed, 68 insertions(+) + create mode 120000 ucm2/USB-Audio/Gigabyte-Aorus-Master-Front-Headphone.conf + create mode 100644 ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf + create mode 100644 ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio.conf + +diff --git a/ucm2/USB-Audio/Gigabyte-Aorus-Master-Front-Headphone.conf b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Front-Headphone.conf +new file mode 120000 +index 0000000..1376437 +--- /dev/null ++++ b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Front-Headphone.conf +@@ -0,0 +1 @@ ++../module/lib/linked.conf +\ No newline at end of file +diff --git a/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf +new file mode 100644 +index 0000000..5c24165 +--- /dev/null ++++ b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf +@@ -0,0 +1,61 @@ ++Define.SecondaryCardId "$${CardIdByName:Aorus Master Front Headphone}" ++ ++SectionDevice."Speaker" { ++ Comment "Speakers" ++ Value { ++ PlaybackChannels 8 ++ PlaybackPriority 200 ++ PlaybackPCM "hw:${CardId}" ++ JackControl "Line Out Jack" ++ PlaybackMixerElem "Line Out" ++ } ++} ++ ++SectionDevice."Headphones" { ++ Comment "Front Headphones" ++ Value { ++ PlaybackPriority 300 ++ PlaybackPCM "hw:${var:SecondaryCardId}" ++ JackCTL "hw:${var:SecondaryCardId}" ++ JackControl "Headphone - Output Jack" ++ } ++} ++ ++SectionDevice."SPDIF" { ++ Comment "S/PDIF Out" ++ Value { ++ PlaybackPriority 100 ++ PlaybackPCM "hw:${CardId},1" ++ # PlaybackMixerElem "IEC958" ++ } ++} ++ ++SectionDevice."Line" { ++ Comment "Line In" ++ Value { ++ CapturePriority 100 ++ CapturePCM "hw:${CardId}" ++ JackControl "Line Jack" ++ CaptureMixerElem "Line" ++ } ++} ++ ++SectionDevice."Mic1" { ++ Comment "Microphone" ++ Value { ++ CapturePriority 200 ++ CapturePCM "hw:${CardId},1" ++ JackControl "Mic Jack" ++ CaptureMixerElem "Mic" ++ } ++} ++ ++SectionDevice."Mic2" { ++ Comment "Front Microphone" ++ Value { ++ CapturePriority 300 ++ CapturePCM "hw:${CardId},2" ++ JackControl "Front Mic Jack" ++ CaptureMixerElem "Front Mic" ++ } ++} +diff --git a/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio.conf b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio.conf +new file mode 100644 +index 0000000..656b989 +--- /dev/null ++++ b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio.conf +@@ -0,0 +1,6 @@ ++Syntax 3 ++Comment "Gigabyte Aorus Integrated Audio" ++SectionUseCase."HiFi" { ++ File "Gigabyte-Aorus-Master-Main-Audio-HiFi.conf" ++ Comment "Default Alsa Profile" ++} +-- +2.29.2 + + +From 062e4710c524283c5d11cbf99931b24c6d963f98 Mon Sep 17 00:00:00 2001 +From: Marijn Suijten +Date: Thu, 14 Jan 2021 14:11:50 +0100 +Subject: [PATCH 17/24] USB-Audio/ALC1220: Bump analog Speaker priority over + S/PDIF + +The `S/PDIF` port does not have any jack sensing, and with a priority +higher than the `Speakers` it will always be selected by default instead +of the `Speakers` even if unplugged. + +Swapping the priorities around allows analog `Speakers` to be selected +first, _if_ they are plugged in. Otherwise `S/PDIF` is used. + +Signed-off-by: Marijn Suijten +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf b/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf +index 344db83..cbf7154 100644 +--- a/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf ++++ b/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf +@@ -2,7 +2,7 @@ SectionDevice."Speaker" { + Comment "Speakers" + Value { + PlaybackChannels 8 +- PlaybackPriority 100 ++ PlaybackPriority 200 + PlaybackPCM "hw:${CardId}" + JackControl "Speaker Jack" + PlaybackMixerElem "Speaker" +@@ -22,7 +22,7 @@ SectionDevice."Headphones" { + SectionDevice."SPDIF" { + Comment "S/PDIF Out" + Value { +- PlaybackPriority 200 ++ PlaybackPriority 100 + PlaybackPCM "hw:${CardId},2" + PlaybackMixerElem "IEC958" + } +-- +2.29.2 + + +From 8e875c9467cc72e53e53104b07d5515f3ef0a779 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Fri, 15 Jan 2021 14:03:35 +0100 +Subject: [PATCH 18/24] USB-Audio/ALC1220: fix indentation for Speaker device + +Signed-off-by: Jaroslav Kysela +--- + ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf b/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf +index cbf7154..0d75384 100644 +--- a/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf ++++ b/ucm2/USB-Audio/Realtek-ALC1220-VB-Desktop-HiFi.conf +@@ -1,11 +1,11 @@ + SectionDevice."Speaker" { + Comment "Speakers" + Value { +- PlaybackChannels 8 +- PlaybackPriority 200 +- PlaybackPCM "hw:${CardId}" +- JackControl "Speaker Jack" +- PlaybackMixerElem "Speaker" ++ PlaybackChannels 8 ++ PlaybackPriority 200 ++ PlaybackPCM "hw:${CardId}" ++ JackControl "Speaker Jack" ++ PlaybackMixerElem "Speaker" + } + } + +-- +2.29.2 + + +From 5503703ab95d5ed40b1da138016777bb5429190e Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Fri, 15 Jan 2021 14:55:53 +0100 +Subject: [PATCH 19/24] USB-Audio: fix indentation in + Gigabyte-Aorus-Master-Main-Audio-HiFi.conf + +Signed-off-by: Jaroslav Kysela +--- + .../Gigabyte-Aorus-Master-Main-Audio-HiFi.conf | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf +index 5c24165..37800fb 100644 +--- a/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf ++++ b/ucm2/USB-Audio/Gigabyte-Aorus-Master-Main-Audio-HiFi.conf +@@ -3,11 +3,11 @@ Define.SecondaryCardId "$${CardIdByName:Aorus Master Front Headphone}" + SectionDevice."Speaker" { + Comment "Speakers" + Value { +- PlaybackChannels 8 +- PlaybackPriority 200 +- PlaybackPCM "hw:${CardId}" +- JackControl "Line Out Jack" +- PlaybackMixerElem "Line Out" ++ PlaybackChannels 8 ++ PlaybackPriority 200 ++ PlaybackPCM "hw:${CardId}" ++ JackControl "Line Out Jack" ++ PlaybackMixerElem "Line Out" + } + } + +-- +2.29.2 + + +From eaa5eacd3e068471537888dee627751dc35e714a Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 16 Dec 2020 16:38:37 +0100 +Subject: [PATCH 20/24] chtnau8824: Add a SST define/variable + +Add a SST define which gets set to "yes" when using the SST driver +and to "" when not using the SST driver; + +And decide if platforms/bytcr/PlatformEnableSeq.conf should be included +or not based on this. + +This is a preparation patch for adding SOF support. + +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/chtnau8824/HiFi.conf | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/ucm2/chtnau8824/HiFi.conf b/ucm2/chtnau8824/HiFi.conf +index 105f360..b36588f 100644 +--- a/ucm2/chtnau8824/HiFi.conf ++++ b/ucm2/chtnau8824/HiFi.conf +@@ -1,5 +1,16 @@ + Define.Speaker "Speaker" + Define.Mic "InternalMic" ++Define.SST "yes" ++ ++If.Controls { ++ Condition { ++ Type ControlExists ++ Control "name='media0_in Gain 0 Switch'" ++ } ++ False { ++ Define.SST "" ++ } ++} + + If.cfg-mspk { + Condition { +@@ -33,12 +44,12 @@ SectionVerb { + + Include.e.File "/codecs/nau8824/EnableSeq.conf" + +- If.Controls { ++ If.SST { + Condition { +- Type ControlExists +- Control "name='media0_in Gain 0 Switch'" ++ Type String ++ Empty "${var:SST}" + } +- True { ++ False { + Include.pe { + File "/platforms/bytcr/PlatformEnableSeq.conf" + Before.EnableSequence "0" +-- +2.29.2 + + +From 4e0369b4fcebde195a38d5b90c73b08f28e0047a Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 21 Jan 2021 11:15:02 +0100 +Subject: [PATCH 21/24] kblrt5660: Fix file permissions + +The exec bit was set wrongly on those files. Fix them. + +Signed-off-by: Takashi Iwai +--- + ucm2/kblrt5660/Hdmi1.conf | 0 + ucm2/kblrt5660/Hdmi2.conf | 0 + ucm2/kblrt5660/HiFi.conf | 0 + ucm2/kblrt5660/kblrt5660.conf | 0 + 4 files changed, 0 insertions(+), 0 deletions(-) + mode change 100755 => 100644 ucm2/kblrt5660/Hdmi1.conf + mode change 100755 => 100644 ucm2/kblrt5660/Hdmi2.conf + mode change 100755 => 100644 ucm2/kblrt5660/HiFi.conf + mode change 100755 => 100644 ucm2/kblrt5660/kblrt5660.conf + +diff --git a/ucm2/kblrt5660/Hdmi1.conf b/ucm2/kblrt5660/Hdmi1.conf +old mode 100755 +new mode 100644 +diff --git a/ucm2/kblrt5660/Hdmi2.conf b/ucm2/kblrt5660/Hdmi2.conf +old mode 100755 +new mode 100644 +diff --git a/ucm2/kblrt5660/HiFi.conf b/ucm2/kblrt5660/HiFi.conf +old mode 100755 +new mode 100644 +diff --git a/ucm2/kblrt5660/kblrt5660.conf b/ucm2/kblrt5660/kblrt5660.conf +old mode 100755 +new mode 100644 +-- +2.29.2 + + +From 96e1c19a6bcc1e353f677966d4d93399204af0ec Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 16 Dec 2020 16:38:38 +0100 +Subject: [PATCH 22/24] chtnau8824: Add support for using the SOF driver + +The old (and currently the default) SST driver uses TDM 4 slots 24 bit +as wire format to the codec. Where as the new SOF driver uses standard +I2S 2 channel 24 bit. + +Normally this should not impact the UCM settings, but on the NAU8824 +the "DAC Right Channel Source" mixer setting must be set to 1 when +using TDM 4 slots and to 0 when using I2S 2 channel mode. + +Getting this wrong (in either case) results in the right channel not +outputting any sound. + +This commit introduces a RightOutputChannel variable which gets +set to 0/1 depending on the driver and then uses that for the +"DAC Right Channel Source" mixer setting so that we do the right +thing depending on the driver. + +This has been tested on the following devices: + +Medion E2215T: Stereo speakers, analog mic +Medion E2228T: Stereo speakers, stereo digital mics +Cube iWork 8 Air: Mono speaker, analog mic + +Signed-off-by: Hans de Goede +Signed-off-by: Jaroslav Kysela +--- + ucm2/chtnau8824/HiFi.conf | 2 ++ + ucm2/codecs/nau8824/EnableSeq.conf | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/ucm2/chtnau8824/HiFi.conf b/ucm2/chtnau8824/HiFi.conf +index b36588f..c3d830d 100644 +--- a/ucm2/chtnau8824/HiFi.conf ++++ b/ucm2/chtnau8824/HiFi.conf +@@ -1,6 +1,7 @@ + Define.Speaker "Speaker" + Define.Mic "InternalMic" + Define.SST "yes" ++Define.RightOutputChannel 1 + + If.Controls { + Condition { +@@ -9,6 +10,7 @@ If.Controls { + } + False { + Define.SST "" ++ Define.RightOutputChannel 0 + } + } + +diff --git a/ucm2/codecs/nau8824/EnableSeq.conf b/ucm2/codecs/nau8824/EnableSeq.conf +index 3650d06..660856f 100644 +--- a/ucm2/codecs/nau8824/EnableSeq.conf ++++ b/ucm2/codecs/nau8824/EnableSeq.conf +@@ -1,7 +1,7 @@ + EnableSequence [ + # Playback TDM configuration + cset "name='DACL Channel Source' 0" +- cset "name='DACR Channel Source' 1" ++ cset "name='DACR Channel Source' ${var:RightOutputChannel}" + # Input Configuration + cset "name='DMIC1 Enable Switch' off" + cset "name='DMIC2 Enable Switch' off" +-- +2.29.2 + + +From 3bea51c3188257c5bc0eaaed922d1f714e3508c7 Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Thu, 21 Jan 2021 14:38:26 -0600 +Subject: [PATCH 23/24] sof-hda-dsp: update handling of cfg-dmics strings + +Existing platforms can have 1,2,3 or 4 microphones. The SOF firmware +will generate 2 or 4 channels. Since by default CaptureChannels is 2, +we need to add the case for cfg-dmics = 3. + +Signed-off-by: Pierre-Louis Bossart +Signed-off-by: Jaroslav Kysela +--- + ucm2/sof-hda-dsp/HiFi.conf | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/ucm2/sof-hda-dsp/HiFi.conf b/ucm2/sof-hda-dsp/HiFi.conf +index a250331..2c02c15 100644 +--- a/ucm2/sof-hda-dsp/HiFi.conf ++++ b/ucm2/sof-hda-dsp/HiFi.conf +@@ -16,9 +16,9 @@ SectionDevice."Mic1" { + CapturePCM "hw:${CardId},6" + If.chn { + Condition { +- Type String +- Haystack "${CardComponents}" +- Needle "cfg-dmics:4" ++ Type RegexMatch ++ Regex "cfg-dmics:[34]" ++ String "${CardComponents}" + } + True { + CaptureChannels 4 +-- +2.29.2 + + +From 889c5b9809f1635005d77871bb9abc09df6a3cc3 Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Thu, 21 Jan 2021 14:44:05 -0600 +Subject: [PATCH 24/24] sof-soundwire: add support for dmics + +the pinmux allows for SoundWire to be used on e.g. link0 and link1, +and the rest of the pins can be assigned for dmic usages. + +We currently don't track this capability which means users don't see a +capture device, e.g. on HP Spectre x360. + +The sof_sdw machine driver was modified to report the cfg-dmics +string, possible values are 0..4. + +BugLink: https://github.com/thesofproject/linux/issues/2700 +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/75 +Signed-off-by: Pierre-Louis Bossart +Signed-off-by: Jaroslav Kysela +--- + ucm2/sof-soundwire/dmic.conf | 21 +++++++++++++++++++++ + ucm2/sof-soundwire/sof-soundwire.conf | 5 +++++ + 2 files changed, 26 insertions(+) + create mode 100644 ucm2/sof-soundwire/dmic.conf + +diff --git a/ucm2/sof-soundwire/dmic.conf b/ucm2/sof-soundwire/dmic.conf +new file mode 100644 +index 0000000..1f704a5 +--- /dev/null ++++ b/ucm2/sof-soundwire/dmic.conf +@@ -0,0 +1,21 @@ ++SectionDevice."Mic" { ++ Comment "Digital Microphone" ++ ++ Value { ++ CapturePriority 100 ++ CapturePCM "hw:${CardId},3" ++ If.chn { ++ Condition { ++ Type RegexMatch ++ Regex "[34]" ++ String "${var:Mics1}" ++ } ++ True { ++ CaptureChannels 4 ++ } ++ } ++ CaptureMixerElem "Dmic0" ++ CaptureVolume "Dmic0 Capture Volume" ++ CaptureSwitch "Dmic0 Capture Switch" ++ } ++} +diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf +index 2ba44be..ec8b01e 100644 +--- a/ucm2/sof-soundwire/sof-soundwire.conf ++++ b/ucm2/sof-soundwire/sof-soundwire.conf +@@ -11,6 +11,7 @@ Define { + SpeakerAmps1 "0" + HeadsetCodec1 "" + MicCodec1 "" ++ Mics1 "0" + } + + DefineRegex { +@@ -34,6 +35,10 @@ DefineRegex { + Regex " mic:([a-z0-9]+)" + String "${CardComponents}" + } ++ Mics { ++ Regex " cfg-mics:([1-9][0-9]*)" ++ String "${CardComponents}" ++ } + } + + If.hs_init { +-- +2.29.2 +