File 0004-conf-ucm-Add-Gigabyte-mobo-UCM-profile-with-dual-HD-.patch of Package alsa.9226

From d1e08d2db3517e8430ffa570f23b53987ba78cc3 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Tue, 5 Dec 2017 15:08:01 +0100
Subject: [PATCH] conf/ucm: Add Gigabyte mobo UCM profile with dual HD-audio
 codecs

Like the previous Lenovo laptops, some Gigabyte mobos have dual
HD-audio codecs and need to switch dynamically via UCM profile.
Reuse the same profile as Lenovo dual codecs, so far.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 configure.ac                                       |   1 +
 .../HDAudio-Gigabyte-ALC1220DualCodecs.conf        |   5 +
 .../HDAudio-Gigabyte-ALC1220DualCodecs/HiFi.conf   | 145 +++++++++++++++++++++
 .../HDAudio-Gigabyte-ALC1220DualCodecs/Makefile.am |   4 +
 src/conf/ucm/Makefile.am                           |   1 +
 5 files changed, 156 insertions(+)
 create mode 100644 src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HDAudio-Gigabyte-ALC1220DualCodecs.conf
 create mode 100644 src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HiFi.conf
 create mode 100644 src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile.am

diff --git a/configure.ac b/configure.ac
index 8d95a8b17f0c..47c50fcf89b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -716,6 +716,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
 	  src/conf/ucm/DAISY-I2S/Makefile \
 	  src/conf/ucm/DB410c/Makefile \
 	  src/conf/ucm/GoogleNyan/Makefile \
+	  src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile \
 	  src/conf/ucm/HDAudio-Lenovo-DualCodecs/Makefile \
 	  src/conf/ucm/PandaBoard/Makefile \
 	  src/conf/ucm/PandaBoardES/Makefile \
diff --git a/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HDAudio-Gigabyte-ALC1220DualCodecs.conf b/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HDAudio-Gigabyte-ALC1220DualCodecs.conf
new file mode 100644
index 000000000000..492eebf01aa9
--- /dev/null
+++ b/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HDAudio-Gigabyte-ALC1220DualCodecs.conf
@@ -0,0 +1,5 @@
+Comment "Gigabyte mobo with dual HD-audio codecs"
+SectionUseCase."HiFi" {
+	File "HiFi.conf"
+	Comment "Default"
+}
diff --git a/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HiFi.conf b/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HiFi.conf
new file mode 100644
index 000000000000..509678964f3f
--- /dev/null
+++ b/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/HiFi.conf
@@ -0,0 +1,145 @@
+SectionVerb {
+	Value {
+		TQ "HiFi"
+	}
+
+	EnableSequence [
+		cdev "hw:PCH"
+		cset "name='Front Playback Volume' 100%"
+		cset "name='Front Playback Switch' on"
+		cset "name='Rear-Panel Capture Volume' 100%"
+		cset "name='Rear-Panel Capture Switch' on"
+	]
+
+	DisableSequence [
+		cdev "hw:PCH"
+		cset "name='Front Playback Volume' 0"
+		cset "name='Front Playback Switch' off"
+		cset "name='Rear-Panel Capture Volume' 0"
+		cset "name='Rear-Panel Capture Switch' off"
+	]
+}
+
+SectionDevice."Speaker" {
+	Comment "Speaker"
+
+	Value {
+		PlaybackChannels "2"
+		PlaybackPCM "hw:PCH,4"
+	}
+
+	ConflictingDevice [
+		"Headphone"
+	]
+
+	EnableSequence [
+		cdev "hw:PCH"
+		cset "name='Speaker Playback Switch' on"
+		cset "name='Speaker Playback Volume' 100%"
+	]
+
+	DisableSequence [
+		cdev "hw:PCH"
+		cset "name='Speaker Playback Volume' 0"
+		cset "name='Speaker Playback Switch' off"
+	]
+}
+
+SectionDevice."LineOut" {
+	Comment "Line Out"
+
+	Value {
+		PlaybackChannels "2"
+		PlaybackPCM "hw:PCH,0"
+		JackControl "Line Out Jack"
+		JackHWMute "Speaker"
+	}
+}
+
+SectionDevice."Headphone" {
+	Comment "Headphone"
+
+	Value {
+		PlaybackChannels "2"
+		PlaybackPCM "hw:PCH,4"
+		JackControl "Front Headphone Jack"
+		JackHWMute "Speaker"
+	}
+
+	ConflictingDevice [
+		"Speaker"
+	]
+
+	EnableSequence [
+		cdev "hw:PCH"
+		cset "name='Headphone Playback Switch' on"
+		cset "name='Headphone Playback Volume' 100%"
+	]
+
+	DisableSequence [
+		cdev "hw:PCH"
+		cset "name='Headphone Playback Volume' 0"
+		cset "name='Headphone Playback Switch' off"
+	]
+}
+
+SectionDevice."LineIn" {
+	Comment "Rear Line In"
+
+	Value {
+		CaptureChannels "2"
+		CapturePCM "hw:PCH,0"
+		JackControl "Line Jack"
+	}
+
+	ConflictingDevice [
+		"RearMic"
+	]
+
+	EnableSequence [
+		cdev "hw:PCH"
+		cset "name='Input Source' Line"
+	]
+}
+
+SectionDevice."RearMic" {
+	Comment "Rear Microphone"
+
+	Value {
+		CaptureChannels "2"
+		CapturePCM "hw:PCH,0"
+		# CapturePriority "150"
+		JackHWMute "LineIn"
+	}
+
+	ConflictingDevice [
+		"LineIn"
+	]
+
+	EnableSequence [
+		cdev "hw:PCH"
+		cset "name='Input Source' Rear Mic"
+	]
+}
+
+SectionDevice."FrontMic" {
+	Comment "Front Microphone"
+
+	Value {
+		CaptureChannels "2"
+		CapturePCM "hw:PCH,4"
+		JackControl "Front Mic Jack"
+	}
+
+	EnableSequence [
+		cdev "hw:PCH"
+		cset "name='Front-Panel Capture Volume' 100%"
+		cset "name='Front-Panel Capture Switch' on"
+	]
+
+	DisableSequence [
+		cdev "hw:PCH"
+		cset "name='Front-Panel Capture Volume' 0"
+		cset "name='Front-Panel Capture Switch' off"
+	]
+}
diff --git a/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile.am b/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile.am
new file mode 100644
index 000000000000..728fd19b9251
--- /dev/null
+++ b/src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile.am
@@ -0,0 +1,4 @@
+alsaconfigdir = @ALSA_CONFIG_DIR@
+ucmdir = $(alsaconfigdir)/ucm/HDAudio-Gigabyte-ALC1220DualCodecs
+ucm_DATA = HDAudio-Gigabyte-ALC1220DualCodecs.conf HiFi.conf
+EXTRA_DIST = $(ucm_DATA)
diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am
index 1d81beeb4ddf..954e32b8f0c8 100644
--- a/src/conf/ucm/Makefile.am
+++ b/src/conf/ucm/Makefile.am
@@ -6,6 +6,7 @@ chtrt5645 \
 DAISY-I2S \
 DB410c \
 GoogleNyan \
+HDAudio-Gigabyte-ALC1220DualCodecs \
 HDAudio-Lenovo-DualCodecs \
 PandaBoard \
 PandaBoardES \
-- 
2.15.1
openSUSE Build Service is sponsored by