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