Blob Blame History Raw
From 2667378a6b9120d99e44f783ac4d247fb683d83c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?N=C3=ADcolas=20F=2E=20R=2E=20A=2E=20Prado?=
 <nfraprado@collabora.com>
Date: Thu, 24 Mar 2022 18:13:45 -0400
Subject: [PATCH 01/21] ucm2: Add support for MT8192 Asurada Spherion
 Chromebook
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add support for the Acer Chromebook 514 CP514-2H, powered by MediaTek
Kompanio 820 (MT8192). This machine uses a MT6359 PMIC, with RT1015P as
speaker codec and RT5682 as headphone codec.

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/217
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 .../mt8192/mt6359-rt1015p-rt5682/HiFi.conf    | 88 +++++++++++++++++++
 .../mt8192/mt6359-rt1015p-rt5682/init.conf    | 24 +++++
 .../mt8192_mt6359_rt1015p_rt5682.conf         | 11 +++
 .../mt8192_mt6359_rt1015p_rt5682.conf         |  1 +
 4 files changed, 124 insertions(+)
 create mode 100644 ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/HiFi.conf
 create mode 100644 ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/init.conf
 create mode 100644 ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/mt8192_mt6359_rt1015p_rt5682.conf
 create mode 120000 ucm2/conf.d/mt8192_mt6359/mt8192_mt6359_rt1015p_rt5682.conf

diff --git a/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/HiFi.conf b/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/HiFi.conf
new file mode 100644
index 0000000..cf0d2c1
--- /dev/null
+++ b/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/HiFi.conf
@@ -0,0 +1,88 @@
+SectionVerb {
+	EnableSequence [
+		disdevall ""
+	]
+
+	Value {
+		TQ "HiFi"
+	}
+}
+
+SectionDevice."Speaker" {
+	Comment "Speaker"
+
+	EnableSequence [
+		cset "name='Speakers Switch' 1"
+	]
+
+	DisableSequence [
+		cset "name='Speakers Switch' 0"
+	]
+
+	Value {
+		PlaybackPCM "hw:${CardId},0"
+		PlaybackPriority 100
+	}
+}
+
+SectionDevice."Headphones" {
+	Comment "Headphones"
+
+	EnableSequence [
+		cset "name='Headphone Jack Switch' 1"
+	]
+
+	DisableSequence [
+		cset "name='Headphone Jack Switch' 0"
+	]
+
+	Value {
+		PlaybackPCM "hw:${CardId},3"
+		JackControl "Headphone Jack"
+		PlaybackMixerElem "DAC1"
+		PlaybackPriority 200
+	}
+}
+
+SectionDevice."Mic" {
+	Comment "Internal Microphone"
+
+	EnableSequence [
+		cset "name='MTKAIF_DMIC Switch' 1"
+	]
+
+	DisableSequence [
+		cset "name='MTKAIF_DMIC Switch' 0"
+	]
+
+	Value {
+		CapturePCM "hw:${CardId},10"
+		CapturePriority 100
+	}
+}
+
+SectionDevice."Headset" {
+	Comment "Headset Microphone"
+
+	EnableSequence [
+		cset "name='Headset Mic Switch' 1"
+		cset "name='STO1 ADC Capture Switch' 1"
+		cset "name='RECMIX1L CBJ Switch' 1"
+		cset "name='Stereo1 ADC MIXL ADC1 Switch' 1"
+		cset "name='Stereo1 ADC MIXR ADC1 Switch' 1"
+	]
+
+	DisableSequence [
+		cset "name='STO1 ADC Capture Switch' 0"
+		cset "name='RECMIX1L CBJ Switch' 0"
+		cset "name='Stereo1 ADC MIXL ADC1 Switch' 0"
+		cset "name='Stereo1 ADC MIXR ADC1 Switch' 0"
+		cset "name='Headset Mic Switch' 0"
+	]
+
+	Value {
+		CapturePCM  "hw:${CardId},11"
+		JackControl "Headset Mic Jack"
+		CapturePriority 200
+	}
+}
diff --git a/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/init.conf b/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/init.conf
new file mode 100644
index 0000000..b53178e
--- /dev/null
+++ b/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/init.conf
@@ -0,0 +1,24 @@
+BootSequence [
+	# Speaker
+	cset "name='I2S3_CH1 DL1_CH1' 1"
+	cset "name='I2S3_CH2 DL1_CH2' 1"
+	cset "name='I2S3_HD_Mux' 1"
+
+	# Headphone
+	cset "name='I2S9_CH1 DL3_CH1' 1"
+	cset "name='I2S9_CH2 DL3_CH2' 1"
+	cset "name='I2S9_HD_Mux' 1"
+
+	# Internal Mic
+	cset "name='UL1_CH1 ADDA_UL_CH1' 1"
+	cset "name='UL1_CH2 ADDA_UL_CH2' 1"
+	cset "name='UL_SRC_MUX' DMIC"
+
+	# Headset Mic
+	cset "name='UL2_CH1 I2S8_CH1' 1"
+	cset "name='UL2_CH2 I2S8_CH2' 1"
+	cset "name='I2S8_HD_Mux' 1"
+	cset "name='Stereo1 ADC L1 Mux' 1"
+	cset "name='Stereo1 ADC R1 Mux' 1"
+	cset "name='CBJ Boost Volume' 3"
+]
diff --git a/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/mt8192_mt6359_rt1015p_rt5682.conf b/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/mt8192_mt6359_rt1015p_rt5682.conf
new file mode 100644
index 0000000..b4e124d
--- /dev/null
+++ b/ucm2/MediaTek/mt8192/mt6359-rt1015p-rt5682/mt8192_mt6359_rt1015p_rt5682.conf
@@ -0,0 +1,11 @@
+Comment "MT8192 MT6359 RT1015P RT5682 sound card"
+Syntax 4
+
+SectionUseCase."HiFi" {
+  File "HiFi.conf"
+  Comment "Default"
+}
+
+Include.card-init.File "/lib/card-init.conf"
+Include.ctl-remap.File "/lib/ctl-remap.conf"
+Include.init.File "init.conf"
diff --git a/ucm2/conf.d/mt8192_mt6359/mt8192_mt6359_rt1015p_rt5682.conf b/ucm2/conf.d/mt8192_mt6359/mt8192_mt6359_rt1015p_rt5682.conf
new file mode 120000
index 0000000..4425b19
--- /dev/null
+++ b/ucm2/conf.d/mt8192_mt6359/mt8192_mt6359_rt1015p_rt5682.conf
@@ -0,0 +1 @@
+../../MediaTek/mt8192/mt6359-rt1015p-rt5682/mt8192_mt6359_rt1015p_rt5682.conf
\ No newline at end of file
-- 
2.39.0


From 6dee56f11fbd48dd412179722a445416fcd779ef Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Sun, 6 Nov 2022 18:08:27 +0100
Subject: [PATCH 02/21] ucm: USB-Audio - Add support for Focusrite Scarlett 2i2
 gen2

BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/234
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ...2-HiFi.conf => Scarlett-2i-gen2-HiFi.conf} | 45 +++++++++++--------
 .../USB-Audio/Focusrite/Scarlett-2i-gen2.conf | 22 +++++++++
 .../Focusrite/Scarlett-2i4-gen2.conf          | 11 -----
 ucm2/USB-Audio/USB-Audio.conf                 | 10 ++---
 4 files changed, 53 insertions(+), 35 deletions(-)
 rename ucm2/USB-Audio/Focusrite/{Scarlett-2i4-gen2-HiFi.conf => Scarlett-2i-gen2-HiFi.conf} (65%)
 create mode 100644 ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2.conf
 delete mode 100644 ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2.conf

diff --git a/ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2-HiFi.conf b/ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2-HiFi.conf
similarity index 65%
rename from ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2-HiFi.conf
rename to ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2-HiFi.conf
index 5ee5076..ab69bc7 100644
--- a/ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2-HiFi.conf
+++ b/ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2-HiFi.conf
@@ -3,7 +3,7 @@ Include.pcm_split.File "/common/pcm/split.conf"
 Macro [
 	{
 		SplitPCM {
-			Name "scarlett2i4_stereo_out"
+			Name "scarlett2i_stereo_out"
 			Direction Playback
 			Format S32_LE
 			Channels 2
@@ -16,7 +16,7 @@ Macro [
 	}
 	{
 		SplitPCM {
-			Name "scarlett2i4_mono_in"
+			Name "scarlett2i_mono_in"
 			Direction Capture
 			Format S32_LE
 			Channels 1
@@ -33,7 +33,7 @@ SectionDevice."Line1" {
 		PlaybackPriority 200
 	}
 	Macro.pcm_split.SplitPCMDevice {
-		Name "scarlett2i4_stereo_out"
+		Name "scarlett2i_stereo_out"
 		Direction Playback
 		HWChannels 4
 		Channels 2
@@ -44,21 +44,28 @@ SectionDevice."Line1" {
 	}
 }
 
-SectionDevice."Line2" {
-	Comment "Line 3-4"
-
-	Value {
-		PlaybackPriority 100
+If.scarlett_2i4 {
+	Condition {
+		Type String
+		String1 "${var:PlaybackChannels}"
+		String2 "4"
 	}
-	Macro.pcm_split.SplitPCMDevice {
-		Name "scarlett2i4_stereo_out"
-		Direction Playback
-		HWChannels 4
-		Channels 2
-		Channel0 2
-		Channel1 3
-		ChannelPos0 FL
-		ChannelPos1 FR
+	True.SectionDevice."Line2" {
+		Comment "Line 3-4"
+
+		Value {
+			PlaybackPriority 100
+		}
+		Macro.pcm_split.SplitPCMDevice {
+			Name "scarlett2i_stereo_out"
+			Direction Playback
+			HWChannels 4
+			Channels 2
+			Channel0 2
+			Channel1 3
+			ChannelPos0 FL
+			ChannelPos1 FR
+		}
 	}
 }
 
@@ -69,7 +76,7 @@ SectionDevice."Mic1" {
 		CapturePriority 200
 	}
 	Macro.pcm_split.SplitPCMDevice {
-		Name "scarlett2i4_mono_in"
+		Name "scarlett2i_mono_in"
 		Direction Capture
 		HWChannels 2
 		Channels 1
@@ -85,7 +92,7 @@ SectionDevice."Mic2" {
 		CapturePriority 100
 	}
 	Macro.pcm_split.SplitPCMDevice {
-		Name "scarlett2i4_mono_in"
+		Name "scarlett2i_mono_in"
 		Direction Capture
 		HWChannels 2
 		Channels 1
diff --git a/ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2.conf b/ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2.conf
new file mode 100644
index 0000000..ee5b0b5
--- /dev/null
+++ b/ucm2/USB-Audio/Focusrite/Scarlett-2i-gen2.conf
@@ -0,0 +1,22 @@
+Define.PlaybackChannels 4
+
+If.scarlett_2i4 {
+	Condition {
+		Type String
+		Haystack "${CardComponents}"
+		Needle "USB1235:8202"
+	}
+	True.Define.PlaybackChannels 2
+}
+
+Comment "Focusrite Scarlett 2i${var:PlaybackChannels} Gen 2"
+
+SectionUseCase."HiFi" {
+    Comment "Default"
+    File "/USB-Audio/Focusrite/Scarlett-2i-gen2-HiFi.conf"
+}
+
+Define.DirectPlaybackChannels "${var:PlaybackChannels}"
+Define.DirectCaptureChannels 2
+
+Include.dhw.File "/common/direct.conf"
diff --git a/ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2.conf b/ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2.conf
deleted file mode 100644
index ffc296d..0000000
--- a/ucm2/USB-Audio/Focusrite/Scarlett-2i4-gen2.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-Comment "Focusrite Scarlett 2i4 Gen 2"
-
-SectionUseCase."HiFi" {
-    Comment "Default"
-    File "/USB-Audio/Focusrite/Scarlett-2i4-gen2-HiFi.conf"
-}
-
-Define.DirectPlaybackChannels 4
-Define.DirectCaptureChannels 2
-
-Include.dhw.File "/common/direct.conf"
diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index 90a88d4..3479ba1 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -135,14 +135,14 @@ If.goxlr {
 	True.Define.ProfileName "GoXLR/GoXLR"
 }
 
-If.focusrite-scarlett-2i4-gen2 {
+If.focusrite-scarlett-2i-gen2 {
 	Condition {
-		Type String
-		Haystack "${CardComponents}"
-		Needle "USB1235:8200"
+		Type RegexMatch
+		String "${CardComponents}"
+		Regex "USB1235:820[02]"
 	}
 	True.Define {
-		ProfileName "Focusrite/Scarlett-2i4-gen2"
+		ProfileName "Focusrite/Scarlett-2i-gen2"
 	}
 }
 
-- 
2.39.0


From b50a903f488e3f6479001b603c1b42b2a9600882 Mon Sep 17 00:00:00 2001
From: Manu Linares <mbarriolinares@gmail.com>
Date: Sat, 5 Nov 2022 19:32:27 -0300
Subject: [PATCH 04/21] ucm2: USB-Audio - Added Digidesign Mbox 3 support

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/237
Signed-off-by: Manu Linares <mbarriolinares@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 .../Digidesign/Digidesign-Mbox-3-HiFi.conf    | 126 ++++++++++++++++++
 .../Digidesign/Digidesign-Mbox-3.conf         |  11 ++
 ucm2/USB-Audio/USB-Audio.conf                 |   9 ++
 3 files changed, 146 insertions(+)
 create mode 100644 ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3-HiFi.conf
 create mode 100644 ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf

diff --git a/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3-HiFi.conf b/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3-HiFi.conf
new file mode 100644
index 0000000..7219bea
--- /dev/null
+++ b/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3-HiFi.conf
@@ -0,0 +1,126 @@
+Include.pcm_split.File "/common/pcm/split.conf"
+
+Macro [
+	{
+		SplitPCM {
+			Name "mbox3_stereo_out"
+			Direction Playback
+			Channels 2
+			HWChannels 4
+			HWChannelPos0 FL
+			HWChannelPos1 FR
+			HWChannelPos2 FL
+			HWChannelPos3 FR
+		}
+	}
+	{
+		SplitPCM {
+			Name "mbox3_stereo_in"
+			Direction Capture
+			Channels 2
+			HWChannels 4
+			HWChannelPos0 FL
+			HWChannelPos1 FR
+			HWChannelPos2 FL
+			HWChannelPos3 FR
+		}
+	}
+	{
+		SplitPCM {
+			Name "mbox3_mono_in"
+			Direction Capture
+			Channels 1
+			HWChannels 4
+			HWChannelPos0 MONO
+			HWChannelPos1 MONO
+			HWChannelPos2 MONO
+			HWChannelPos3 MONO
+		}
+	}
+]
+
+SectionDevice."Line1" {
+	Comment "Main Output L/R"
+
+	Value {
+		PlaybackPriority 300
+	}
+	Macro.pcm_split.SplitPCMDevice {
+		Name "mbox3_stereo_out"
+		Direction Playback
+		HWChannels 4
+		Channels 2
+		Channel0 0
+		Channel1 1
+		ChannelPos0 FL
+		ChannelPos1 FR
+	}
+}
+
+
+SectionDevice."line2SPDIF" {
+	Comment "SPDIF Out"
+	Value {
+		PlaybackPriority 100
+	}
+	Macro.pcm_split.SplitPCMDevice {
+		Name "mbox3_stereo_out"
+		Direction Playback
+		HWChannels 4
+		Channels 2
+		Channel0 2
+		Channel1 3
+		ChannelPos0 FL
+		ChannelPos1 FR
+	}
+}
+
+SectionDevice."mic1" {
+	Comment "Mic/Line 1"
+
+	Value {
+		CapturePriority 300
+	}
+	Macro.pcm_split.SplitPCMDevice {
+		Name "mbox3_mono_in"
+		Direction Capture
+		HWChannels 4
+		Channels 1
+		Channel0 0
+		ChannelPos0 MONO
+	}
+}
+
+SectionDevice."mic2" {
+	Comment "Mic/Line 2"
+
+	Value {
+		CapturePriority 200
+	}
+	Macro.pcm_split.SplitPCMDevice {
+		Name "mbox3_mono_in"
+		Direction Capture
+		HWChannels 4
+		Channels 1
+		Channel0 1
+		ChannelPos0 MONO
+	}
+}
+
+SectionDevice."mic3SPDIF" {
+	Comment "SPDIF In"
+
+	Value {
+		CapturePriority 100
+	}
+	Macro.pcm_split.SplitPCMDevice {
+		Name "mbox3_stereo_in"
+		Direction Capture
+		HWChannels 4
+		Channels 2
+		Channel0 2
+		Channel1 3
+		ChannelPos0 FL
+		ChannelPos1 FR
+	}
+}
diff --git a/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf b/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf
new file mode 100644
index 0000000..d6e19f9
--- /dev/null
+++ b/ucm2/USB-Audio/Digidesign/Digidesign-Mbox-3.conf
@@ -0,0 +1,11 @@
+Comment "Digidesign Mbox 3"
+
+SectionUseCase."Mixer" {
+	Comment "Stereo Duplex"
+	File "/USB-Audio/Digidesign/Digidesign-Mbox-3-HiFi.conf"
+}
+
+Define.DirectPlaybackChannels 4
+Define.DirectCaptureChannels 4
+
+Include.dhw.File "/common/direct.conf"
diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index 3479ba1..d1d70d8 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -126,6 +126,15 @@ If.dell-desktop-rear {
 	True.Define.ProfileName "Dell/Desktop-Rear"
 }
 
+If.mbox3 {
+	Condition {
+		Type String
+		Haystack "${CardComponents}"
+		Needle "USB0dba:5000"
+	}
+	True.Define.ProfileName "Digidesign/Digidesign-Mbox-3"
+}
+
 If.goxlr {
 	Condition {
 		Type RegexMatch
-- 
2.39.0


From 88f232dffd54e1b9222ea76c7885445efebaa74d Mon Sep 17 00:00:00 2001
From: "Ben Scholzen (DASPRiD)" <mail@dasprids.de>
Date: Mon, 31 Oct 2022 17:41:02 +0100
Subject: [PATCH 05/21] ucm2: Alc4080 - add support for ASUS ROG Strix Z790-E
 Gaming Wifi

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/235
Signed-off-by: Ben Scholzen (DASPRiD) <mail@dasprids.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf | 2 +-
 ucm2/USB-Audio/USB-Audio.conf            | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf b/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
index 519f3b0..fa8d445 100644
--- a/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
+++ b/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
@@ -68,7 +68,7 @@ If.spdif_dev2 {
 	Condition {
 		Type RegexMatch
 		String "${CardComponents}"
-		Regex "USB(0b05:1996|0db0:1feb)"
+		Regex "USB(0b05:1996|0b05:1a52|0db0:1feb)"
 	}
 	True.Define.SpdifPCM "hw:${CardId},2"
 }
diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index d1d70d8..e30dc2b 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -41,6 +41,7 @@ If.realtek-alc4080 {
 		# 0b05:1a16 ASUS ROG Strix B660-F Gaming WiFi
 		# 0b05:1a20 ASUS ROG STRIX Z690-I Gaming Wifi
 		# 0b05:1a27 ALC4082 on ASUS ROG Maximus Z690 Hero
+		# 0b05:1a52 ASUS ROG Strix Z790-E Gaming Wifi
 		# 0db0:005a MSI MPG Z690 CARBON WIFI
 		# 0db0:151f MSI X570S EDGE MAX WIFI
 		# 0db0:1feb MSI Edge Wifi Z690
@@ -50,7 +51,7 @@ If.realtek-alc4080 {
 		# 0db0:a47c MSI MEG X570S Ace Max
 		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
 		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
-		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07])))|(0db0:(005a|151f|1feb|419c|82c7|a073|a47c|b202|d6e7)))"
+		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|52)))|(0db0:(005a|151f|1feb|419c|82c7|a073|a47c|b202|d6e7)))"
 	}
 	True.Define.ProfileName "Realtek/ALC4080"
 }
-- 
2.39.0


From b121b63f30c24e89beec506ae1d2bac9ebb3cc61 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Tue, 15 Nov 2022 17:49:13 +0100
Subject: [PATCH 06/21] USB-Audio: ALC4080 - add 0db0:6cc9 MSI MPG Z590 Gaming
 Plus device

BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/241
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/USB-Audio.conf | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index e30dc2b..89482cb 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -46,12 +46,13 @@ If.realtek-alc4080 {
 		# 0db0:151f MSI X570S EDGE MAX WIFI
 		# 0db0:1feb MSI Edge Wifi Z690
 		# 0db0:419c MSI MPG X570S Carbon Max Wifi
+		# 0db0:6cc9 MSI MPG Z590 Gaming Plus
 		# 0db0:82c7 MSI MEG Z690I Unify
 		# 0db0:a073 MSI MAG X570S Torpedo Max
 		# 0db0:a47c MSI MEG X570S Ace Max
 		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
 		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
-		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|52)))|(0db0:(005a|151f|1feb|419c|82c7|a073|a47c|b202|d6e7)))"
+		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|52)))|(0db0:(005a|151f|1feb|419c|6cc9|82c7|a073|a47c|b202|d6e7)))"
 	}
 	True.Define.ProfileName "Realtek/ALC4080"
 }
-- 
2.39.0


From c82c400fb653292bbf0570e278d60e1ba14cc341 Mon Sep 17 00:00:00 2001
From: Shuming Fan <shumingf@realtek.com>
Date: Wed, 16 Nov 2022 17:36:51 +0800
Subject: [PATCH 07/21] ucm2: sof-soundwire: add basic settings for RT1318 SDCA
 device

Add support for rt1318 amplifier

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/242
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/sof-soundwire/rt1318-1.conf | 20 ++++++++++++++++++++
 ucm2/sof-soundwire/rt1318-2.conf | 25 +++++++++++++++++++++++++
 2 files changed, 45 insertions(+)
 create mode 100644 ucm2/sof-soundwire/rt1318-1.conf
 create mode 100644 ucm2/sof-soundwire/rt1318-2.conf

diff --git a/ucm2/sof-soundwire/rt1318-1.conf b/ucm2/sof-soundwire/rt1318-1.conf
new file mode 100644
index 0000000..13d77e1
--- /dev/null
+++ b/ucm2/sof-soundwire/rt1318-1.conf
@@ -0,0 +1,20 @@
+# Use case Configuration for sof-soundwire card
+
+SectionDevice."Speaker" {
+	Comment	"Speaker"
+
+	EnableSequence [
+		cset "name='rt1318-1 DAC Switch' 1"
+		cset "name='Speaker Switch' on"
+	]
+
+	DisableSequence [
+		cset "name='rt1318-1 DAC Switch' 0"
+		cset "name='Speaker Switch' off"
+	]
+
+	Value {
+	      PlaybackPriority 100
+	      PlaybackPCM "hw:${CardId},2"
+	}
+}
diff --git a/ucm2/sof-soundwire/rt1318-2.conf b/ucm2/sof-soundwire/rt1318-2.conf
new file mode 100644
index 0000000..5602470
--- /dev/null
+++ b/ucm2/sof-soundwire/rt1318-2.conf
@@ -0,0 +1,25 @@
+# Use case Configuration for sof-soundwire card
+
+SectionDevice."Speaker" {
+	Comment	"Speaker"
+
+	EnableSequence [
+		cset "name='rt1318-1 RX Channel Select' L,L"
+		cset "name='rt1318-2 RX Channel Select' R,R"
+
+		cset "name='rt1318-1 DAC Switch' 1"
+		cset "name='rt1318-2 DAC Switch' 1"
+		cset "name='Speaker Switch' on"
+	]
+
+	DisableSequence [
+		cset "name='rt1318-1 DAC Switch' 0"
+		cset "name='rt1318-2 DAC Switch' 0"
+		cset "name='Speaker Switch' off"
+	]
+
+	Value {
+	      PlaybackPriority 100
+	      PlaybackPCM "hw:${CardId},2"
+	}
+}
-- 
2.39.0


From 998849d9510754960d808e20dad4c440adaf87ef Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Wed, 29 Jun 2022 15:23:23 -0700
Subject: [PATCH 08/21] ucm2: add profile for the Librem 5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/181
Tested-by: Guido Günther <agx@sigxcpu.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/NXP/iMX8/Librem_5/HiFi.conf      | 151 ++++++++++++++++++++++++++
 ucm2/NXP/iMX8/Librem_5/Librem 5.conf  |  25 +++++
 ucm2/conf.d/simple-card/Librem 5.conf |   1 +
 3 files changed, 177 insertions(+)
 create mode 100644 ucm2/NXP/iMX8/Librem_5/HiFi.conf
 create mode 100644 ucm2/NXP/iMX8/Librem_5/Librem 5.conf
 create mode 120000 ucm2/conf.d/simple-card/Librem 5.conf

diff --git a/ucm2/NXP/iMX8/Librem_5/HiFi.conf b/ucm2/NXP/iMX8/Librem_5/HiFi.conf
new file mode 100644
index 0000000..55eabe3
--- /dev/null
+++ b/ucm2/NXP/iMX8/Librem_5/HiFi.conf
@@ -0,0 +1,151 @@
+SectionVerb {
+	EnableSequence [
+		disdevall ""
+	]
+
+	Value.TQ "HiFi"
+}
+
+SectionDevice."Handset" {
+	Comment "Handset"
+
+	ConflictingDevice [
+		"Headphones"
+		"Speaker"
+	]
+
+	EnableSequence [
+		cset "name='Speaker Switch' off,on"
+		cset "name='DAC L/R Swap Switch' on"
+		cset "name='DAC Monomix Switch' on"
+		cset "name='SPKOUTR PGA' DAC"
+		cset "name='Speaker Boost Volume' 2"
+	]
+
+	DisableSequence [
+		cset "name='Speaker Switch' off,off"
+		cset "name='DAC L/R Swap Switch' off"
+		cset "name='DAC Monomix Switch' off"
+		cset "name='SPKOUTR PGA' Mixer"
+	]
+
+	Value {
+		PlaybackPriority "100"
+		PlaybackVolume "name='Speaker Volume'"
+		PlaybackSwitch "name='Speaker Switch'"
+		PlaybackMixerElem "Speaker"
+		PlaybackPCM "hw:${CardId}"
+	}
+}
+
+SectionDevice."Speaker" {
+	Comment "Speaker"
+
+	ConflictingDevice [
+		"Handset"
+		"Headphones"
+	]
+
+	EnableSequence [
+		cset "name='Speaker Switch' on,off"
+		cset "name='DAC Monomix Switch' on"
+		cset "name='SPKOUTL PGA' DAC"
+		cset "name='Speaker Boost Volume' 6"
+	]
+
+	DisableSequence [
+		cset "name='Speaker Switch' off,off"
+		cset "name='DAC Monomix Switch' off"
+		cset "name='SPKOUTL PGA' Mixer"
+	]
+
+	Value {
+		PlaybackPriority "500"
+		PlaybackVolume "name='Speaker Volume'"
+		PlaybackSwitch "name='Speaker Switch'"
+		PlaybackMixerElem "Speaker"
+		PlaybackPCM "hw:${CardId}"
+	}
+}
+
+SectionDevice."Headphones" {
+	Comment "Headphones"
+
+	ConflictingDevice [
+		"Handset"
+		"Speaker"
+	]
+
+	EnableSequence [
+		cset "name='Headphone Switch' on,on"
+		cset "name='HPOUTL PGA' 0 unmute"
+		cset "name='HPOUTR PGA' 0 unmute"
+	]
+
+	DisableSequence [
+		cset "name='Headphone Switch' off off"
+		cset "name='HPOUTL PGA' 0 mute"
+		cset "name='HPOUTR PGA' 0 mute"
+	]
+
+	Value {
+		PlaybackPriority "1000"
+		PlaybackVolume "name='Headphone Volume'"
+		PlaybackSwitch "name='Headphone Switch'"
+		PlaybackMixerElem "Headphone"
+		PlaybackPCM "hw:${CardId}"
+		JackControl "Headphones Jack"
+	}
+}
+
+SectionDevice."Mic" {
+	Comment "Internal Microphone"
+
+	ConflictingDevice [
+		"Headset"
+	]
+
+	EnableSequence [
+		cset "name='ADC L/R Swap Switch' on"
+		cset "name='Input Mode' Digital"
+	]
+
+	DisableSequence [
+		cset "name='ADC L/R Swap Switch' off"
+	]
+
+	Value {
+		CapturePriority "500"
+		CaptureVolume "name='Digital Capture Volume'"
+		CaptureMixerElem "Digital"
+		CapturePCM "hw:${CardId}"
+	}
+}
+
+SectionDevice."Headset" {
+	Comment "Headset Microphone"
+
+	ConflictingDevice [
+		"Mic"
+	]
+
+	EnableSequence [
+		cset "name='Input Mode' Analog"
+		cset "name='MIXINR PGA Switch' on,on"
+		cset "name='Capture Switch' on,on"
+	]
+
+	DisableSequence [
+		cset "name='Capture Switch' off,off"
+		cset "name='MIXINR PGA Switch' off,off"
+		cset "name='Input Mode' Digital"
+	]
+
+	Value {
+		CapturePriority "100"
+		CaptureVolume "name='Capture Volume'"
+		CaptureMixerElem "Capture"
+		CapturePCM "hw:${CardId}"
+		JackControl "Headphones Jack"
+	}
+}
diff --git a/ucm2/NXP/iMX8/Librem_5/Librem 5.conf b/ucm2/NXP/iMX8/Librem_5/Librem 5.conf
new file mode 100644
index 0000000..4d7dbd6
--- /dev/null
+++ b/ucm2/NXP/iMX8/Librem_5/Librem 5.conf	
@@ -0,0 +1,25 @@
+Syntax 2
+
+SectionUseCase."HiFi" {
+	File "HiFi.conf"
+	Comment "Default"
+}
+
+BootSequence [
+	cset "name='Digital Playback Volume' 100,100"
+	cset "name='MIXINL IN2L Switch' off"
+	cset "name='MIXINL IN3L Switch' off"
+	cset "name='MIXINR IN2R Switch' off"
+	cset "name='MIXINR IN3R Switch' off"
+	cset "name='INPGAR IN1R Switch' off"
+	cset "name='INPGAR IN2R Switch' off"
+	cset "name='INPGAR IN3R Switch' on"
+	cset "name='INPGAR IN4R Switch' off"
+	cset "name='INPGAL IN1L Switch' off"
+	cset "name='INPGAL IN2L Switch' off"
+	cset "name='INPGAL IN3L Switch' off"
+	cset "name='INPGAL IN4L Switch' off"
+	cset "name='Input Mixer Switch' off,on"
+	cset "name='SPKOUTL PGA' Mixer"
+	cset "name='SPKOUTR PGA' Mixer"
+]
diff --git a/ucm2/conf.d/simple-card/Librem 5.conf b/ucm2/conf.d/simple-card/Librem 5.conf
new file mode 120000
index 0000000..c687942
--- /dev/null
+++ b/ucm2/conf.d/simple-card/Librem 5.conf	
@@ -0,0 +1 @@
+../../NXP/iMX8/Librem_5/Librem 5.conf
\ No newline at end of file
-- 
2.39.0


From 71ff24cdd2e0fecb71c2fcf8a45a1ae50233c34b Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 21 Nov 2022 09:51:54 +0100
Subject: [PATCH 09/21] USB-Audio: allow to configure period size for PCM split
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The environment variable UCM_USB_PERIOD_TIME (microseconds / μs)
can define the period size for the PCM channel split over
the default value 10000μs.

BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240
Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/238
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/USB-Audio.conf | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index 89482cb..fdc29ec 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -4,6 +4,14 @@ Define.ProfileName ""
 Define.MixerRemap ""
 Define.SplitPCMPeriodTime 10000		# 10ms
 
+If.env1 {
+	Condition {
+		Type String
+		Empty "${env:UCM_USB_PERIOD_TIME}"
+	}
+	False.Define.SplitPCMPeriodTime "${env:UCM_USB_PERIOD_TIME}"
+}
+
 If.linked {
 	Condition {
 		Type RegexMatch
-- 
2.39.0


From 445c079665979802d50b237fe5a55be82ffd0bd9 Mon Sep 17 00:00:00 2001
From: Fadwa Chiby <fchiby@baylibre.com>
Date: Fri, 22 Jul 2022 09:45:07 +0000
Subject: [PATCH 10/21] mt8195-demo: fix soundcard initialization

The previous initialization in Bootsequence set all Switch
to off after boot.

So remove the setting off of the Switch in the BootSequence
and define Enable/DisableSequence in verb section for
a proper setting.

Note that the controls enable access to the PCM devices
(controls routes between Front End and Back End in ASoC).

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/211
Signed-off-by: Fadwa Chiby <fchiby@baylibre.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/MediaTek/mt8195_demo/HiFi.conf        | 57 ++++++++++++++++++++++
 ucm2/MediaTek/mt8195_demo/mt8195_demo.conf | 36 ++++----------
 2 files changed, 66 insertions(+), 27 deletions(-)

diff --git a/ucm2/MediaTek/mt8195_demo/HiFi.conf b/ucm2/MediaTek/mt8195_demo/HiFi.conf
index 95f2b51..660b4ad 100644
--- a/ucm2/MediaTek/mt8195_demo/HiFi.conf
+++ b/ucm2/MediaTek/mt8195_demo/HiFi.conf
@@ -1,3 +1,60 @@
+SectionVerb {
+
+	EnableSequence [
+		cset "name='HDMI_OUT_MUX' Connect"
+		cset "name='DPTX_OUT_MUX' Connect"
+		cset "name='O176 I070 Switch' on"
+		cset "name='O177 I071 Switch' on"
+		cset "name='O034 I168 Switch' on"
+		cset "name='O035 I169 Switch' on"
+		cset "name='O036 I012 Switch' on"
+		cset "name='O037 I013 Switch' on"
+		cset "name='O072 I022 Switch' on"
+		cset "name='O073 I023 Switch' on"
+		cset "name='O074 I024 Switch' on"
+		cset "name='O075 I025 Switch' on"
+		cset "name='O076 I026 Switch' on"
+		cset "name='O077 I027 Switch' on"
+		cset "name='O078 I028 Switch' on"
+		cset "name='O079 I029 Switch' on"
+		cset "name='O002 I004 Switch' on"
+		cset "name='O003 I005 Switch' on"
+		cset "name='O004 I006 Switch' on"
+		cset "name='O005 I007 Switch' on"
+		cset "name='O006 I008 Switch' on"
+		cset "name='O007 I009 Switch' on"
+		cset "name='O008 I010 Switch' on"
+		cset "name='O009 I011 Switch' on"
+	]
+
+	DisableSequence [
+		cset "name='HDMI_OUT_MUX' Disconnect"
+		cset "name='DPTX_OUT_MUX' Disconnect"
+		cset "name='O176 I070 Switch' off"
+		cset "name='O177 I071 Switch' off"
+		cset "name='O034 I168 Switch' off"
+		cset "name='O035 I169 Switch' off"
+		cset "name='O036 I012 Switch' off"
+		cset "name='O037 I013 Switch' off"
+		cset "name='O072 I022 Switch' off"
+		cset "name='O073 I023 Switch' off"
+		cset "name='O074 I024 Switch' off"
+		cset "name='O075 I025 Switch' off"
+		cset "name='O076 I026 Switch' off"
+		cset "name='O077 I027 Switch' off"
+		cset "name='O078 I028 Switch' off"
+		cset "name='O079 I029 Switch' off"
+		cset "name='O002 I004 Switch' off"
+		cset "name='O003 I005 Switch' off"
+		cset "name='O004 I006 Switch' off"
+		cset "name='O005 I007 Switch' off"
+		cset "name='O006 I008 Switch' off"
+		cset "name='O007 I009 Switch' off"
+		cset "name='O008 I010 Switch' off"
+		cset "name='O009 I011 Switch' off"
+	]
+}
+
 SectionDevice."HDMI" {
 	Comment "Hdmi/DP output"
 
diff --git a/ucm2/MediaTek/mt8195_demo/mt8195_demo.conf b/ucm2/MediaTek/mt8195_demo/mt8195_demo.conf
index c23dc37..896b6dc 100644
--- a/ucm2/MediaTek/mt8195_demo/mt8195_demo.conf
+++ b/ucm2/MediaTek/mt8195_demo/mt8195_demo.conf
@@ -1,4 +1,4 @@
-Syntax 3
+Syntax 2
 
 SectionUseCase."HiFi" {
 	File "/MediaTek/mt8195_demo/HiFi.conf"
@@ -16,12 +16,12 @@ BootSequence [
 	cset "name='PGA_L_Mux' AIN1"
 	cset "name='HDMI_OUT_MUX' Connect"
 	cset "name='DPTX_OUT_MUX' Connect"
+	# we need to enable all devices before starting PA.
+	# In our driver we use PCM, which means that we have
+	# to route Front End to a BackEnd and then only we can
+	# open a device. Without linking to BE it will fail.
 	cset "name='O176 I070 Switch' on"
 	cset "name='O177 I071 Switch' on"
-	cset "name='O034 I168 Switch' on"
-	cset "name='O035 I169 Switch' on"
-	cset "name='O036 I012 Switch' on"
-	cset "name='O037 I013 Switch' on"
 	cset "name='O072 I022 Switch' on"
 	cset "name='O073 I023 Switch' on"
 	cset "name='O074 I024 Switch' on"
@@ -30,6 +30,10 @@ BootSequence [
 	cset "name='O077 I027 Switch' on"
 	cset "name='O078 I028 Switch' on"
 	cset "name='O079 I029 Switch' on"
+	cset "name='O034 I168 Switch' on"
+	cset "name='O035 I169 Switch' on"
+	cset "name='O036 I012 Switch' on"
+	cset "name='O037 I013 Switch' on"
 	cset "name='O002 I004 Switch' on"
 	cset "name='O003 I005 Switch' on"
 	cset "name='O004 I006 Switch' on"
@@ -38,26 +42,4 @@ BootSequence [
 	cset "name='O007 I009 Switch' on"
 	cset "name='O008 I010 Switch' on"
 	cset "name='O009 I011 Switch' on"
-	cset "name='O176 I070 Switch' off"
-	cset "name='O177 I071 Switch' off"
-	cset "name='O034 I168 Switch' off"
-	cset "name='O035 I169 Switch' off"
-	cset "name='O036 I012 Switch' off"
-	cset "name='O037 I013 Switch' off"
-	cset "name='O072 I022 Switch' off"
-	cset "name='O073 I023 Switch' off"
-	cset "name='O074 I024 Switch' off"
-	cset "name='O075 I025 Switch' off"
-	cset "name='O076 I026 Switch' off"
-	cset "name='O077 I027 Switch' off"
-	cset "name='O078 I028 Switch' off"
-	cset "name='O079 I029 Switch' off"
-	cset "name='O002 I004 Switch' off"
-	cset "name='O003 I005 Switch' off"
-	cset "name='O004 I006 Switch' off"
-	cset "name='O005 I007 Switch' off"
-	cset "name='O006 I008 Switch' off"
-	cset "name='O007 I009 Switch' off"
-	cset "name='O008 I010 Switch' off"
-	cset "name='O009 I011 Switch' off"
 ]
-- 
2.39.0


From 5c865236e8de9fd75c741892fd3bd2cff62d4f3f Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Tue, 22 Nov 2022 09:54:22 +0100
Subject: [PATCH 11/21] USB-Audio: the environment variable UCM_USB_PERIOD_TIME
 may be undefined

Fixes: 71ff24c ("USB-Audio: allow to configure period size for PCM split")
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/USB-Audio.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index fdc29ec..1c11da9 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -7,7 +7,7 @@ Define.SplitPCMPeriodTime 10000		# 10ms
 If.env1 {
 	Condition {
 		Type String
-		Empty "${env:UCM_USB_PERIOD_TIME}"
+		Empty "$${env:UCM_USB_PERIOD_TIME}"
 	}
 	False.Define.SplitPCMPeriodTime "${env:UCM_USB_PERIOD_TIME}"
 }
-- 
2.39.0


From 01e37f4fb7aab57e3f0051d81f5f6e5b2f15c831 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 21 Nov 2022 10:16:57 +0100
Subject: [PATCH 12/21] HDA: DualCodecs - handle S/PDIF without analog
 connections

When no analog wires are connected, the S/PDIF output cannot be
selected in pipewire. Handle this for motherboards without Speaker
UCM device.

Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/239
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/HDA/DualCodecs/HiFi.conf | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/ucm2/HDA/DualCodecs/HiFi.conf b/ucm2/HDA/DualCodecs/HiFi.conf
index 10c9162..8c0f403 100644
--- a/ucm2/HDA/DualCodecs/HiFi.conf
+++ b/ucm2/HDA/DualCodecs/HiFi.conf
@@ -66,13 +66,20 @@ SectionDevice."Line1" {
 		}
 		True.Value.PlaybackMixerElem "Front"
 	}
-	If.1 {
+	# make S/PDIF output working when no analog jacks are connected
+	If.speaker {
 		Condition {
 			Type ControlExists
-			Control "iface=CARD,name='Line Out Front Jack'"
+			Control "name='Speaker Playback Switch'"
+		}
+		True.If.1 {
+			Condition {
+				Type ControlExists
+				Control "iface=CARD,name='Line Out Front Jack'"
+			}
+			True.Value.JackControl "Line Out Front Jack"
+			False.Value.JackControl "Line Out Jack"
 		}
-		True.Value.JackControl "Line Out Front Jack"
-		False.Value.JackControl "Line Out Jack"
 	}
 }
 
-- 
2.39.0


From 79a8ec44d3dcf097f4a4492c506cbcf338324175 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Wed, 7 Dec 2022 10:18:04 +0100
Subject: [PATCH 13/21] ucm2: sof-hda-dsp: Update Mic LED settings

Users expect to turn the LED on when only internal mic is off, but
it makes sense to turn this LED when all internal inputs are off.

This configuration may be changed when the affected applications
are updated.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf b/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
index e6a8a15..9e85914 100644
--- a/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
+++ b/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
@@ -9,7 +9,17 @@ If.devdmic {
 		Haystack "${CardComponents}"
 		Needle "cfg-dmics:"
 	}
-	True.Define.DeviceDmic "Mic1"
+	True {
+		Define.DeviceDmic "Mic1"
+		FixedBootSequence [
+			#
+			# users expect to turn the LED on when only internal
+			# mic is off, but it makes sense to turn this LED
+			# when all internal inputs are off
+			#
+			sysw "-/class/sound/ctl-led/mic/card${CardNumber}/detach:Capture Switch"
+		]
+	}
 	True.Define.DeviceMic "Mic2"
 }
 
-- 
2.39.0


From 9ce9ddb4a84fb467602b716575ea1d8f2bab0c39 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Wed, 7 Dec 2022 15:00:35 +0100
Subject: [PATCH 14/21] ucm2: HDA: Update Mic LED settings for ACP DMIC

Users expect to turn the LED on when only internal mic is off, but
it makes sense to turn this LED when all internal inputs are off.

This configuration may be changed when the affected applications
are updated.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/HDA/HDA.conf | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ucm2/HDA/HDA.conf b/ucm2/HDA/HDA.conf
index 64ffe83..47dfc05 100644
--- a/ucm2/HDA/HDA.conf
+++ b/ucm2/HDA/HDA.conf
@@ -55,6 +55,7 @@ If.use {
 					cset-new "name='Mic ACP LED Capture Switch' type=bool,count=1 off"
 					exec "-/sbin/modprobe snd_ctl_led"
 					sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:Mic ACP LED Capture Switch"
+					sysw "-/class/sound/ctl-led/mic/card${CardNumber}/detach:Capture Switch"
 				]
 			}
 		}
-- 
2.39.0


From 3984514b25a5b2a2a09d29ad8ddbc1ad78c6a1e4 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Wed, 7 Dec 2022 15:48:05 +0100
Subject: [PATCH 15/21] ucm2: sof-hda-dsp - If.devdmic cleanup

Simplify the If.devdmic block.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf b/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
index 9e85914..7ef4f24 100644
--- a/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
+++ b/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
@@ -11,6 +11,7 @@ If.devdmic {
 	}
 	True {
 		Define.DeviceDmic "Mic1"
+		Define.DeviceMic "Mic2"
 		FixedBootSequence [
 			#
 			# users expect to turn the LED on when only internal
@@ -20,7 +21,6 @@ If.devdmic {
 			sysw "-/class/sound/ctl-led/mic/card${CardNumber}/detach:Capture Switch"
 		]
 	}
-	True.Define.DeviceMic "Mic2"
 }
 
 SectionUseCase."HiFi" {
-- 
2.39.0


From e395d7b743584cba60876b6356fb3bc7834992aa Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Mon, 26 Dec 2022 09:20:51 +0100
Subject: [PATCH 16/21] sof-soundwire: set PGA capture switch for rt715 mic in
 BootSequence

Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/255
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/sof-soundwire/sof-soundwire.conf | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf
index 03df16c..bdc48ff 100644
--- a/ucm2/sof-soundwire/sof-soundwire.conf
+++ b/ucm2/sof-soundwire/sof-soundwire.conf
@@ -61,3 +61,14 @@ If.mic_init {
 	}
 	True.Include.mic_init.File "/codecs/${var:MicCodec1}/init.conf"
 }
+
+If.mic_init_rt715 {
+	Condition {
+		Type String
+		Needle "rt715"
+		Haystack "${var:MicCodec1}"
+	}
+	True.BootSequence [
+		cset "name='PGA5.0 5 Master Capture Switch' 1"
+	]
+}
-- 
2.39.0


From c0b9d6fb207d533d348942e02ecdc57984eb5fc3 Mon Sep 17 00:00:00 2001
From: Kai-Chuan Hsieh <kaichuan.hsieh@canonical.com>
Date: Mon, 26 Dec 2022 10:24:20 +0800
Subject: [PATCH 17/21] sof-hda-dsp: Set Dmic0 Capture Switch on

Internal micrphone default is off after fresh installation.
Add operation to set the control on to align with other architecture.

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/259
Signed-off-by: Kai-Chuan Hsieh <kaichuan.hsieh@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf b/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
index 7ef4f24..6887938 100644
--- a/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
+++ b/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
@@ -83,6 +83,7 @@ If.dmic {
 		}
 		True.BootSequence [
 			cset "name='Dmic0 Capture Volume' 70%"
+			cset "name='Dmic0 Capture Switch' on"
 		]
 	}
 }
-- 
2.39.0


From 1923bd19c0bef947c085e2941dd8ed2d1310731e Mon Sep 17 00:00:00 2001
From: 13r0ck <brock@szu.email>
Date: Mon, 19 Dec 2022 18:08:38 -0700
Subject: [PATCH 18/21] USB-Audio: alc4080 - add MSI MAG B650I Edge WiFi (ID
 0db0:36e7)

This motherboard is recognized as the thelio-r3 by System76

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/254
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/USB-Audio.conf | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index 1c11da9..6e48f98 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -53,6 +53,7 @@ If.realtek-alc4080 {
 		# 0db0:005a MSI MPG Z690 CARBON WIFI
 		# 0db0:151f MSI X570S EDGE MAX WIFI
 		# 0db0:1feb MSI Edge Wifi Z690
+		# 0db0:36e7 MSI MAG B650I Edge WiFi
 		# 0db0:419c MSI MPG X570S Carbon Max Wifi
 		# 0db0:6cc9 MSI MPG Z590 Gaming Plus
 		# 0db0:82c7 MSI MEG Z690I Unify
@@ -60,7 +61,7 @@ If.realtek-alc4080 {
 		# 0db0:a47c MSI MEG X570S Ace Max
 		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
 		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
-		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|52)))|(0db0:(005a|151f|1feb|419c|6cc9|82c7|a073|a47c|b202|d6e7)))"
+		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|52)))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d6e7)))"
 	}
 	True.Define.ProfileName "Realtek/ALC4080"
 }
-- 
2.39.0


From fea43c9342dd32ab93fa71b419abb97778def5c9 Mon Sep 17 00:00:00 2001
From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
Date: Sun, 11 Dec 2022 18:30:40 +1300
Subject: [PATCH 19/21] USB-Audio: ALC4080 - Add support for ASUS ROG Crosshair
 X670 Extreme (ID 0b05:1a53)

- Confirmed working.

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/249
Signed-off-by: Samuel Williams <samuel.williams@oriontransfer.co.nz>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/USB-Audio.conf | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index 6e48f98..041db9d 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -50,6 +50,7 @@ If.realtek-alc4080 {
 		# 0b05:1a20 ASUS ROG STRIX Z690-I Gaming Wifi
 		# 0b05:1a27 ALC4082 on ASUS ROG Maximus Z690 Hero
 		# 0b05:1a52 ASUS ROG Strix Z790-E Gaming Wifi
+		# 0b05:1a53 ALC4082 on ASUS ROG Crosshair X670E Extreme
 		# 0db0:005a MSI MPG Z690 CARBON WIFI
 		# 0db0:151f MSI X570S EDGE MAX WIFI
 		# 0db0:1feb MSI Edge Wifi Z690
@@ -61,7 +62,7 @@ If.realtek-alc4080 {
 		# 0db0:a47c MSI MEG X570S Ace Max
 		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
 		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
-		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|52)))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d6e7)))"
+		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|5[23])))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d6e7)))"
 	}
 	True.Define.ProfileName "Realtek/ALC4080"
 }
-- 
2.39.0


From 12db78292676441dfea39c2d0e5db448ec740e2a Mon Sep 17 00:00:00 2001
From: Adrian Rudnik <adrian@klonmaschine.de>
Date: Thu, 8 Dec 2022 00:49:13 +0100
Subject: [PATCH 20/21] ucm2: alc4080 - add support for MSI PRO Z790-A WIFI (ID
 0db0:d1d7)

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/248
Signed-off-by: Adrian Rudnik <adrian@klonmaschine.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/USB-Audio.conf | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index 041db9d..da9acd0 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -61,8 +61,9 @@ If.realtek-alc4080 {
 		# 0db0:a073 MSI MAG X570S Torpedo Max
 		# 0db0:a47c MSI MEG X570S Ace Max
 		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
+		# 0db0:d1d7 MSI PRO Z790-A WIFI
 		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
-		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|5[23])))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d6e7)))"
+		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|5[23])))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d1d7|d6e7)))"
 	}
 	True.Define.ProfileName "Realtek/ALC4080"
 }
-- 
2.39.0


From d771df0333e70cd474389bade0f52a804de7b5ea Mon Sep 17 00:00:00 2001
From: 13r0ck <bnr@tuta.io>
Date: Tue, 22 Nov 2022 15:40:50 -0700
Subject: [PATCH 21/21] Add: 0b05:1999 ASUS ROG Strix Z590-A Gaming WiFi

This model is recognized as a thelio-mira-b1 by system76

Fixes: https://github.com/alsa-project/alsa-ucm-conf/pull/247/
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
 ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf | 13 +++++++++++++
 ucm2/USB-Audio/USB-Audio.conf            |  3 ++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf b/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
index fa8d445..868e267 100644
--- a/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
+++ b/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
@@ -100,6 +100,19 @@ If.msi-meg-unify {
 	}
 }
 
+If.asus-rog-strix {
+	Condition {
+		Type RegexMatch
+		String "${CardComponents}"
+		Regex "USB(0b05:1999)"
+	}
+	True.Define {
+		Line1PCM "hw:${CardId},3"
+		HeadphonesName ""
+		SpdifName ""
+	}
+}
+
 SectionVerb {
 	EnableSequence [
 		disdevall ""
diff --git a/ucm2/USB-Audio/USB-Audio.conf b/ucm2/USB-Audio/USB-Audio.conf
index da9acd0..2a27b89 100644
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -46,6 +46,7 @@ If.realtek-alc4080 {
 		String "${CardComponents}"
 		# 0414:a00e Gigabyte Z590 Aorus Pro AX
 		# 0b05:1996 ASUS on multiple boards (including ASUS ROG Maximus XIII)
+		# 0b05:1999 ASUS ROG Strix Z590-A Gaming WiFi
 		# 0b05:1a16 ASUS ROG Strix B660-F Gaming WiFi
 		# 0b05:1a20 ASUS ROG STRIX Z690-I Gaming Wifi
 		# 0b05:1a27 ALC4082 on ASUS ROG Maximus Z690 Hero
@@ -63,7 +64,7 @@ If.realtek-alc4080 {
 		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
 		# 0db0:d1d7 MSI PRO Z790-A WIFI
 		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
-		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07]|5[23])))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d1d7|d6e7)))"
+		Regex "USB((0414:a00e)|(0b05:(199[69]|1a(16|2[07]|5[23])))|(0db0:(005a|151f|1feb|36e7|419c|6cc9|82c7|a073|a47c|b202|d1d7|d6e7)))"
 	}
 	True.Define.ProfileName "Realtek/ALC4080"
 }
-- 
2.39.0