Blame SOURCES/alsa-ucm-git.patch

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