Hello community,

here is the log from the commit of package alsa for openSUSE:Factory checked in 
at 2018-05-07 14:52:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alsa (Old)
 and      /work/SRC/openSUSE:Factory/.alsa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "alsa"

Mon May  7 14:52:42 2018 rev:184 rq:603200 version:1.1.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/alsa/alsa.changes        2018-04-10 
09:51:12.374996259 +0200
+++ /work/SRC/openSUSE:Factory/.alsa.new/alsa.changes   2018-05-07 
14:52:50.411609352 +0200
@@ -1,0 +2,13 @@
+Wed May  2 17:11:29 CEST 2018 - [email protected]
+
+- Backport UCM fix and new profiles from upstream (bsc#1091678):
+  0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch
+  0002-conf-ucm-increase-the-input-volume-for-LineIn.patch
+  0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch
+  0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch
+  0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch
+  0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch
+  0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch
+  0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch
+
+-------------------------------------------------------------------

New:
----
  0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch
  0002-conf-ucm-increase-the-input-volume-for-LineIn.patch
  0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch
  0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch
  0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch
  0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch
  0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch
  0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ alsa.spec ++++++
--- /var/tmp/diff_new_pack.nR4tEN/_old  2018-05-07 14:52:51.627571402 +0200
+++ /var/tmp/diff_new_pack.nR4tEN/_new  2018-05-07 14:52:51.627571402 +0200
@@ -50,6 +50,14 @@
 Source40:       50-alsa.conf
 Source41:       install-snd-module
 # upstream fixes
+Patch1:         0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch
+Patch2:         0002-conf-ucm-increase-the-input-volume-for-LineIn.patch
+Patch3:         0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch
+Patch4:         0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch
+Patch5:         0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch
+Patch6:         0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch
+Patch7:         0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch
+Patch8:         0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch
 # rest suse fixes
 Source101:      chtcx2072x.conf
 Source102:      chtcx2072x-HiFi.conf
@@ -117,6 +125,14 @@
 
 %prep
 %setup -q -n alsa-lib-%{package_version}
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 %build
 export AUTOMAKE_JOBS="%{?_smp_mflags}"

++++++ 0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch ++++++
>From 181f8e251bc05832f9c9401544e680ea0572a2e3 Mon Sep 17 00:00:00 2001
From: Hui Wang <[email protected]>
Date: Wed, 2 May 2018 14:08:05 +0800
Subject: [PATCH] ucm: adding the folder of card_long_name when finding verb
 conf file

The board configuration file and verb conf file are allowed to be
in the folder named of card_long_name, so when finding the verb conf
file, we need to check if it is in the folder of card_long_name or
card_name.

Signed-off-by: Hui Wang <[email protected]>
Signed-off-by: Jaroslav Kysela <[email protected]>
---
 src/ucm/parser.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/ucm/parser.c b/src/ucm/parser.c
index 2d76152ff6e1..219edb9691a6 100644
--- a/src/ucm/parser.c
+++ b/src/ucm/parser.c
@@ -1056,6 +1056,7 @@ static int parse_verb_file(snd_use_case_mgr_t *uc_mgr,
        char filename[MAX_FILE];
        char *env = getenv(ALSA_CONFIG_UCM_VAR);
        int err;
+       char *folder_name;
 
        /* allocate verb */
        verb = calloc(1, sizeof(struct use_case_verb));
@@ -1082,12 +1083,17 @@ static int parse_verb_file(snd_use_case_mgr_t *uc_mgr,
        }
 
        /* open Verb file for reading */
+       if (!strncmp(uc_mgr->conf_file_name, uc_mgr->card_long_name, 
MAX_CARD_LONG_NAME))
+               folder_name = uc_mgr->card_long_name;
+       else
+               folder_name = uc_mgr->card_name;
+
        if (env)
                snprintf(filename, sizeof(filename), "%s/%s/%s",
-                        env, uc_mgr->card_name, file);
+                        env, folder_name, file);
        else
                snprintf(filename, sizeof(filename), "%s/ucm/%s/%s",
-                        snd_config_topdir(), uc_mgr->card_name, file);
+                        snd_config_topdir(), folder_name, file);
        filename[sizeof(filename)-1] = '\0';
        
        err = uc_mgr_config_load(filename, &cfg);
-- 
2.16.3

++++++ 0002-conf-ucm-increase-the-input-volume-for-LineIn.patch ++++++
>From 81db276f8c2235adc83e9698b0174265f6482655 Mon Sep 17 00:00:00 2001
From: Hui Wang <[email protected]>
Date: Wed, 2 May 2018 14:08:06 +0800
Subject: [PATCH] conf/ucm: increase the input volume for LineIn

Otherwise, the boost value is 0, and the sound captured from that
LineIn jack is too weak for users.

Signed-off-by: Hui Wang <[email protected]>
Signed-off-by: Jaroslav Kysela <[email protected]>
---
 src/conf/ucm/HDAudio-Lenovo-DualCodecs/HiFi.conf | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/conf/ucm/HDAudio-Lenovo-DualCodecs/HiFi.conf 
b/src/conf/ucm/HDAudio-Lenovo-DualCodecs/HiFi.conf
index 509678964f3f..ece780da146d 100644
--- a/src/conf/ucm/HDAudio-Lenovo-DualCodecs/HiFi.conf
+++ b/src/conf/ucm/HDAudio-Lenovo-DualCodecs/HiFi.conf
@@ -99,6 +99,7 @@ SectionDevice."LineIn" {
        EnableSequence [
                cdev "hw:PCH"
                cset "name='Input Source' Line"
+               cset "name='Line Boost Volume' 3"
        ]
 }
 
-- 
2.16.3

++++++ 0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch ++++++
>From f7c38c29d1be8bab9dd4f406aea3b0e9151c1c06 Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <[email protected]>
Date: Sat, 28 Apr 2018 21:51:56 +0200
Subject: [PATCH] conf/ucm: chtrt5645: Cleanup and playback fixes

Apply cleanup and playback fixes changes from:
https://github.com/plbossart/UCM.git

Cc: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
[[email protected]: Modify commit msg and paths for merging into alsa-lib]
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
---
 src/conf/ucm/chtrt5645/HiFi.conf | 157 ++++++++++++++++++++++++++++++++-------
 1 file changed, 129 insertions(+), 28 deletions(-)

diff --git a/src/conf/ucm/chtrt5645/HiFi.conf b/src/conf/ucm/chtrt5645/HiFi.conf
index 0c2c83cc72b1..f63392d476ed 100644
--- a/src/conf/ucm/chtrt5645/HiFi.conf
+++ b/src/conf/ucm/chtrt5645/HiFi.conf
@@ -11,51 +11,146 @@ SectionVerb {
        EnableSequence [
                cdev "hw:chtrt5645"
 
-               # Enable audio output path
-               cset "name='codec_out1 mix 0 pcm0_in Switch' on"
-               cset "name='media0_out mix 0 media1_in Switch' on"
+               # media mixer settings
+               #   compress
+               cset "name='media0_in Gain 0 Switch' on"
+               cset "name='media0_in Gain 0 Volume' 0"
 
-               cset "name='media1_in Gain 0 Ramp Delay' 50"
+               #   normal
                cset "name='media1_in Gain 0 Switch' on"
-               cset "name='media1_in Gain 0 Volume' 80% 80%"
+               cset "name='media1_in Gain 0 Volume' 0"
+               #   swm loopback
+               cset "name='media2_in Gain 0 Switch' off"
+               cset "name='media2_in Gain 0 Volume' 0%"
+               #   deep buffer
+               cset "name='media3_in Gain 0 Switch' on"
+               cset "name='media3_in Gain 0 Volume' 0"
+
+               cset "name='media0_out mix 0 media0_in Switch' on"
+               cset "name='media0_out mix 0 media1_in Switch' on"
+               cset "name='media0_out mix 0 media2_in Switch' off"
+               cset "name='media0_out mix 0 media3_in Switch' on"
+
+               cset "name='media1_out mix 0 media0_in Switch' off"
+               cset "name='media1_out mix 0 media1_in Switch' off"
+               cset "name='media1_out mix 0 media2_in Switch' off"
+               cset "name='media1_out mix 0 media3_in Switch' off"
 
-               cset "name='pcm0_in Gain 0 Ramp Delay' 50"
                cset "name='pcm0_in Gain 0 Switch' on"
-               cset "name='pcm0_in Gain 0 Volume' 80% 80%"
+               cset "name='pcm0_in Gain 0 Volume' 0"
+
+               cset "name='pcm1_in Gain 0 Switch' off"
+               cset "name='pcm1_in Gain 0 Volume' 0%"
+
+               # codec0_out settings (used if ssp2 is connected to aif1)
+               cset "name='codec_out0 mix 0 codec_in0 Switch' off"
+               cset "name='codec_out0 mix 0 codec_in1 Switch' off"
+               cset "name='codec_out0 mix 0 media_loop1_in Switch' off"
+               cset "name='codec_out0 mix 0 media_loop2_in Switch' off"
+               cset "name='codec_out0 mix 0 pcm0_in Switch' on"
+               cset "name='codec_out0 mix 0 pcm1_in Switch' off"
+               cset "name='codec_out0 mix 0 sprot_loop_in Switch' off"
+               cset "name='codec_out0 Gain 0 Switch' on"
+               cset "name='codec_out0 Gain 0 Volume' 0"
+
+               # modem_out settings (used if ssp0 is connected to aif2)
+               cset "name='modem_out mix 0 codec_in0 Switch' off"
+               cset "name='modem_out mix 0 codec_in1 Switch' off"
+               cset "name='modem_out mix 0 media_loop1_in Switch' off"
+               cset "name='modem_out mix 0 media_loop2_in Switch' off"
+               cset "name='modem_out mix 0 pcm0_in Switch' on"
+               cset "name='modem_out mix 0 pcm1_in Switch' off"
+               cset "name='modem_out mix 0 sprot_loop_in Switch' off"
+               cset "name='modem_out Gain 0 Switch' on"
+               cset "name='modem_out Gain 0 Volume' 0"
+
+               # input settings
+               # pcm1_out settings
+
+               # input used when SSP2 is connected
+               cset "name='codec_in0 Gain 0 Switch' on"
+               cset "name='codec_in0 Gain 0 Volume' 0"
 
-               cset "name='codec_out1 Gain 0 Ramp Delay' 50"
-               cset "name='codec_out1 Gain 0 Switch' on"
-               cset "name='codec_out1 Gain 0 Volume' 70% 70%"
+               # input used when SSP0 is connected
+               cset "name='modem_in Gain 0 Switch' on"
+               cset "name='modem_in Gain 0 Volume' 0"
 
-               # Enable audio input path
-               cset "name='pcm1_out mix 0 media_loop2_in Switch' on"
-               cset "name='media_loop2_out mix 0 codec_in0 Switch' on"
+               cset "name='pcm1_out mix 0 codec_in0 Switch' on"
+               cset "name='pcm1_out mix 0 modem_in Switch' on"
+               cset "name='pcm1_out mix 0 codec_in1 Switch' off"
+               cset "name='pcm1_out mix 0 media_loop1_in Switch' off"
+               cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
+               cset "name='pcm1_out mix 0 pcm0_in Switch' off"
+               cset "name='pcm1_out mix 0 pcm1_in Switch' off"
+               cset "name='pcm1_out mix 0 sprot_loop_in Switch' off"
 
-               cset "name='codec_in0 Gain 0 Ramp Delay' 50"
-               cset "name='codec_in0 Gain 0 Switch' on"
-               cset "name='codec_in0 Gain 0 Volume' 80% 80%"
+               cset "name='pcm1_out Gain 0 Switch' on"
+               cset "name='pcm1_out Gain 0 Volume' 0"
 
-               cset "name='media_loop2_out Gain 0 Ramp Delay' 50"
-               cset "name='media_loop2_out Gain 0 Switch' on"
-               cset "name='media_loop2_out Gain 0 Volume' 80% 80%"
+               # disable codec_out1
+               cset "name='codec_out1 mix 0 codec_in0 Switch' off"
+               cset "name='codec_out1 mix 0 codec_in1 Switch' off"
+               cset "name='codec_out1 mix 0 media_loop1_in Switch' off"
+               cset "name='codec_out1 mix 0 media_loop2_in Switch' off"
+               cset "name='codec_out1 mix 0 pcm0_in Switch' off"
+               cset "name='codec_out1 mix 0 pcm1_in Switch' off"
+               cset "name='codec_out1 mix 0 sprot_loop_in Switch' off"
+               cset "name='codec_out1 Gain 0 Switch' off"
+               cset "name='codec_out1 Gain 0 Volume' 0%"
 
-               cset "name='pcm1_out Gain 0 Ramp Delay' 50"
-               cset "name='pcm1_out Gain 0 Switch' on"
-               cset "name='pcm1_out Gain 0 Volume' 80% 80%"
+               # disable codec_in1
+               cset "name='codec_in1 Gain 0 Switch' off"
+               cset "name='codec_in1 Gain 0 Volume' 0%"
+
+               # disable all loops
+               cset "name='media_loop1_out mix 0 codec_in0 Switch' off"
+               cset "name='media_loop1_out mix 0 codec_in1 Switch' off"
+               cset "name='media_loop1_out mix 0 media_loop1_in Switch' off"
+               cset "name='media_loop1_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop1_out mix 0 pcm0_in Switch' off"
+               cset "name='media_loop1_out mix 0 pcm1_in Switch' off"
+               cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
+               cset "name='media_loop2_out mix 0 codec_in1 Switch' off"
+               cset "name='media_loop2_out mix 0 media_loop1_in Switch' off"
+               cset "name='media_loop2_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop2_out mix 0 pcm0_in Switch' off"
+               cset "name='media_loop2_out mix 0 pcm1_in Switch' off"
+               cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='sprot_loop_out mix 0 codec_in0 Switch' off"
+               cset "name='sprot_loop_out mix 0 codec_in1 Switch' off"
+               cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off"
+               cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off"
+               cset "name='sprot_loop_out mix 0 pcm0_in Switch' off"
+               cset "name='sprot_loop_out mix 0 pcm1_in Switch' off"
+               cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off"
 
                # Output Configuration
-               cset "name='DAC L2 Mux' 'IF1 DAC'"
-               cset "name='DAC R2 Mux' 'IF1 DAC'"
+               cset "name='DAC1 L Mux' IF1 DAC"
+               cset "name='DAC1 R Mux' IF1 DAC"
+               cset "name='DAC1 MIXL DAC1 Switch' 1"
+               cset "name='DAC1 MIXR DAC1 Switch' 1"
+               cset "name='Stereo DAC MIXL DAC L1 Switch' 1"
+               cset "name='Stereo DAC MIXR DAC R1 Switch' 1"
+
+               cset "name='DAC L2 Mux' IF2 DAC"
+               cset "name='DAC R2 Mux' IF2 DAC"
                cset "name='Mono DAC MIXL DAC L2 Switch' on"
                cset "name='Mono DAC MIXR DAC R2 Switch' on"
                cset "name='DAC2 Playback Switch' on"
 
+               cset "name='HPOVOL MIXL DAC1 Switch' on"
+               cset "name='HPOVOL MIXR DAC1 Switch' on"
                cset "name='HPOVOL MIXL DAC2 Switch' on"
                cset "name='HPOVOL MIXR DAC2 Switch' on"
                cset "name='HPO MIX HPVOL Switch' on"
                cset "name='HPOVOL L Switch' on"
                cset "name='HPOVOL R Switch' on"
 
+               cset "name='SPK MIXL DAC L1 Switch' on"
+               cset "name='SPK MIXR DAC R1 Switch' on"
                cset "name='SPK MIXL DAC L2 Switch' on"
                cset "name='SPK MIXR DAC R2 Switch' on"
                cset "name='SPOL MIX SPKVOL L Switch' on"
@@ -105,15 +200,18 @@ SectionDevice."Speaker" {
        }
 
        ConflictingDevice [
-               "Headphone"
+               "Headphones"
        ]
 
        EnableSequence [
                cdev "hw:chtrt5645"
 
+               cset "name='Headphone Switch' off"
+               cset "name='Headphone Channel Switch' off"
+
                cset "name='Ext Spk Switch' on"
                cset "name='Speaker Channel Switch' on"
-               cset "name='Speaker Playback Volume' 39"
+               cset "name='Speaker Playback Volume' 31"
        ]
 
        DisableSequence [
@@ -124,7 +222,7 @@ SectionDevice."Speaker" {
        ]
 }
 
-SectionDevice."Headphone".0 {
+SectionDevice."Headphones" {
        Comment "Headphones"
 
        Value {
@@ -140,9 +238,12 @@ SectionDevice."Headphone".0 {
        EnableSequence [
                cdev "hw:chtrt5645"
 
+               cset "name='Ext Spk Switch' off"
+               cset "name='Speaker Channel Switch' off"
+
                cset "name='Headphone Switch' on"
                cset "name='Headphone Channel Switch' on"
-               cset "name='Headphone Playback Volume' 39"
+               cset "name='Headphone Playback Volume' 31"
        ]
 
        DisableSequence [
-- 
2.16.3

++++++ 0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch ++++++
>From 4c0d983d7b4402e7275455ac43f39049b45037ea Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <[email protected]>
Date: Sat, 28 Apr 2018 21:51:57 +0200
Subject: [PATCH] conf/ucm: chtrt5645: Microphone recording fixes

Apply microphone recording changes from:
https://github.com/plbossart/UCM.git

Cc: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
[[email protected]: Drop non generic DMIC changes]
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
---
 src/conf/ucm/chtrt5645/HiFi.conf | 50 ++++++++++++++++++++++++++++++++--------
 1 file changed, 41 insertions(+), 9 deletions(-)

diff --git a/src/conf/ucm/chtrt5645/HiFi.conf b/src/conf/ucm/chtrt5645/HiFi.conf
index f63392d476ed..b97a9c006065 100644
--- a/src/conf/ucm/chtrt5645/HiFi.conf
+++ b/src/conf/ucm/chtrt5645/HiFi.conf
@@ -4,8 +4,8 @@ SectionVerb {
                TQ "HiFi"
 
                # ALSA PCM device for HiFi
-               PlaybackPCM "hw:chtrt5645,0"
-               CapturePCM "hw:chtrt5645,0"
+               PlaybackPCM "hw:chtrt5645"
+               CapturePCM "hw:chtrt5645"
        }
 
        EnableSequence [
@@ -255,7 +255,7 @@ SectionDevice."Headphones" {
 }
 
 SectionDevice."Mic".0 {
-       Comment "Internal Microphone"
+       Comment "Internal Analog Microphones"
 
        Value {
                CaptureChannels "2"
@@ -266,15 +266,33 @@ SectionDevice."Mic".0 {
                cdev "hw:chtrt5645"
 
                cset "name='Int Mic Switch' on"
-               cset "name='Sto1 ADC MIXL ADC2 Switch' on"
-               cset "name='Sto1 ADC MIXR ADC2 Switch' on"
+
+               cset "name='Sto1 ADC MIXL ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+               cset "name='Mono ADC MIXL ADC2 Switch' off"
+               cset "name='Mono ADC MIXR ADC2 Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' on"
+               cset "name='RECMIXR BST1 Switch' on"
+
        ]
 
        DisableSequence [
                cdev "hw:chtrt5645"
 
-               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
-               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXL ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' off"
+               cset "name='Mono ADC MIXL ADC1 Switch' off"
+               cset "name='Mono ADC MIXR ADC1 Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' off"
+               cset "name='RECMIXR BST1 Switch' off"
+
                cset "name='Int Mic Switch' off"
        ]
 }
@@ -292,19 +310,33 @@ SectionDevice."HSMic".0 {
                cdev "hw:chtrt5645"
 
                cset "name='Headset Mic Switch' on"
-               cset "name='RECMIXL BST1 Switch' on"
-               cset "name='RECMIXR BST1 Switch' on"
+
                cset "name='Sto1 ADC MIXL ADC1 Switch' on"
                cset "name='Sto1 ADC MIXR ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+               cset "name='Mono ADC MIXL ADC2 Switch' off"
+               cset "name='Mono ADC MIXR ADC2 Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' on"
+               cset "name='RECMIXR BST1 Switch' on"
+
        ]
 
        DisableSequence [
                cdev "hw:chtrt5645"
 
                cset "name='Headset Mic Switch' off"
+
                cset "name='RECMIXL BST1 Switch' off"
                cset "name='RECMIXR BST1 Switch' off"
                cset "name='Sto1 ADC MIXL ADC1 Switch' off"
                cset "name='Sto1 ADC MIXR ADC1 Switch' off"
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+
        ]
 }
-- 
2.16.3

++++++ 0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch ++++++
>From 76bc53e69a12163a86e6746fd3011de6b1652043 Mon Sep 17 00:00:00 2001
From: Hans de Goede <[email protected]>
Date: Sat, 28 Apr 2018 21:51:58 +0200
Subject: [PATCH] conf/ucm: chtrt5645: Fix recording from internal analog
 microphone

The internal analog mic switch is called 'Int Analog Mic Switch'
(not 'Int Mic Switch') and is connected to BST2 not BST1.

Also change the analog mic volume levels so that we get better
audio / less noise.

Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
---
 src/conf/ucm/chtrt5645/HiFi.conf | 38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/src/conf/ucm/chtrt5645/HiFi.conf b/src/conf/ucm/chtrt5645/HiFi.conf
index b97a9c006065..e81866cf36fc 100644
--- a/src/conf/ucm/chtrt5645/HiFi.conf
+++ b/src/conf/ucm/chtrt5645/HiFi.conf
@@ -160,15 +160,24 @@ SectionVerb {
 
                # Input Configuration
                cset "name='Stereo1 DMIC Mux' 0"
+               cset "name='Stereo1 ADC1 Mux' 1"
                cset "name='Stereo1 ADC2 Mux' 1"
                cset "name='ADC Capture Switch' on"
-               cset "name='ADC Capture Volume' 31"
-               cset "name='ADC Boost Capture Volume' 3"
-               cset "name='Mono ADC Capture Volume' 63"
-               cset "name='Mono ADC Boost Capture Volume' 2"
-               cset "name='IN Capture Volume' 63"
+               # 55/63
+               cset "name='ADC Capture Volume' 55"
+               # set ADC Boost to 0/3, higher vals cause a lot of white noise
+               cset "name='ADC Boost Capture Volume' 0"
+               # 55/63
+               cset "name='Mono ADC Capture Volume' 55"
+               # 0/3
+               cset "name='Mono ADC Boost Capture Volume' 0"
+               # 27/31
+               cset "name='IN Capture Volume' 27"
                cset "name='I2S2 Func Switch' on"
-
+               # 3/12 the headphone mic tends to be quite loud
+               cset "name='IN1 Boost' 3"
+               # 8/8 the internal analog mic tends to be quite soft
+               cset "name='IN2 Boost' 8"
        ]
 
        DisableSequence [
@@ -243,7 +252,8 @@ SectionDevice."Headphones" {
 
                cset "name='Headphone Switch' on"
                cset "name='Headphone Channel Switch' on"
-               cset "name='Headphone Playback Volume' 31"
+               # 25/39 higher values cause crackling on some boards
+               cset "name='Headphone Playback Volume' 25"
        ]
 
        DisableSequence [
@@ -255,7 +265,7 @@ SectionDevice."Headphones" {
 }
 
 SectionDevice."Mic".0 {
-       Comment "Internal Analog Microphones"
+       Comment "Internal Analog Microphone"
 
        Value {
                CaptureChannels "2"
@@ -265,7 +275,7 @@ SectionDevice."Mic".0 {
        EnableSequence [
                cdev "hw:chtrt5645"
 
-               cset "name='Int Mic Switch' on"
+               cset "name='Int Analog Mic Switch' on"
 
                cset "name='Sto1 ADC MIXL ADC1 Switch' on"
                cset "name='Sto1 ADC MIXR ADC1 Switch' on"
@@ -277,8 +287,8 @@ SectionDevice."Mic".0 {
                cset "name='Mono ADC MIXL ADC2 Switch' off"
                cset "name='Mono ADC MIXR ADC2 Switch' off"
 
-               cset "name='RECMIXL BST1 Switch' on"
-               cset "name='RECMIXR BST1 Switch' on"
+               cset "name='RECMIXL BST2 Switch' on"
+               cset "name='RECMIXR BST2 Switch' on"
 
        ]
 
@@ -290,10 +300,10 @@ SectionDevice."Mic".0 {
                cset "name='Mono ADC MIXL ADC1 Switch' off"
                cset "name='Mono ADC MIXR ADC1 Switch' off"
 
-               cset "name='RECMIXL BST1 Switch' off"
-               cset "name='RECMIXR BST1 Switch' off"
+               cset "name='RECMIXL BST2 Switch' off"
+               cset "name='RECMIXR BST2 Switch' off"
 
-               cset "name='Int Mic Switch' off"
+               cset "name='Int Analog Mic Switch' off"
        ]
 }
 
-- 
2.16.3

++++++ 0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch ++++++
>From c22a7f423ddef2a1376bc84f2aafc0a167192ab6 Mon Sep 17 00:00:00 2001
From: Hans de Goede <[email protected]>
Date: Sat, 28 Apr 2018 21:51:59 +0200
Subject: [PATCH] conf/ucm: chtrt5645: At config for the Asus T100HA

The Asus T100HA uses a digital mic rather then an analog one, add
long-name config specific for the T100HA, which is a copy of the standard
chtrt5645 config with the internal analog mic section replaced with one
for the digital mic found on the Asus T100HA.

Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
---
 configure.ac                                       |   1 +
 .../ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN.conf   |   5 +
 .../HiFi.conf                                      | 348 +++++++++++++++++++++
 .../Makefile.am                                    |   4 +
 src/conf/ucm/Makefile.am                           |   1 +
 5 files changed, 359 insertions(+)
 create mode 100644 
src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN.conf
 create mode 100644 
src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/HiFi.conf
 create mode 100644 
src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/Makefile.am

diff --git a/configure.ac b/configure.ac
index 5bc1994f6d01..94baf0553ab5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -717,6 +717,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile 
doc/doxygen.cfg \
          src/conf/cards/Makefile \
          src/conf/pcm/Makefile \
          src/conf/ucm/Makefile \
+         src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/Makefile \
          src/conf/ucm/broadwell-rt286/Makefile \
          src/conf/ucm/broxton-rt298/Makefile \
          src/conf/ucm/bytcr-rt5651/Makefile \
diff --git 
a/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN.conf
 
b/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN.conf
new file mode 100644
index 000000000000..5afe5f0b8670
--- /dev/null
+++ 
b/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN.conf
@@ -0,0 +1,5 @@
+Comment "Intel SoC Audio Device"
+SectionUseCase."HiFi" {
+       File "../ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/HiFi.conf"
+       Comment "Default"
+}
diff --git a/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/HiFi.conf 
b/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/HiFi.conf
new file mode 100644
index 000000000000..78bf9823cb3b
--- /dev/null
+++ b/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/HiFi.conf
@@ -0,0 +1,348 @@
+SectionVerb {
+       # ALSA PCM
+       Value {
+               TQ "HiFi"
+
+               # ALSA PCM device for HiFi
+               PlaybackPCM "hw:chtrt5645"
+               CapturePCM "hw:chtrt5645"
+       }
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               # media mixer settings
+               #   compress
+               cset "name='media0_in Gain 0 Switch' on"
+               cset "name='media0_in Gain 0 Volume' 0"
+
+               #   normal
+               cset "name='media1_in Gain 0 Switch' on"
+               cset "name='media1_in Gain 0 Volume' 0"
+               #   swm loopback
+               cset "name='media2_in Gain 0 Switch' off"
+               cset "name='media2_in Gain 0 Volume' 0%"
+               #   deep buffer
+               cset "name='media3_in Gain 0 Switch' on"
+               cset "name='media3_in Gain 0 Volume' 0"
+
+               cset "name='media0_out mix 0 media0_in Switch' on"
+               cset "name='media0_out mix 0 media1_in Switch' on"
+               cset "name='media0_out mix 0 media2_in Switch' off"
+               cset "name='media0_out mix 0 media3_in Switch' on"
+
+               cset "name='media1_out mix 0 media0_in Switch' off"
+               cset "name='media1_out mix 0 media1_in Switch' off"
+               cset "name='media1_out mix 0 media2_in Switch' off"
+               cset "name='media1_out mix 0 media3_in Switch' off"
+
+               cset "name='pcm0_in Gain 0 Switch' on"
+               cset "name='pcm0_in Gain 0 Volume' 0"
+
+               cset "name='pcm1_in Gain 0 Switch' off"
+               cset "name='pcm1_in Gain 0 Volume' 0%"
+
+               # codec0_out settings (used if ssp2 is connected to aif1)
+               cset "name='codec_out0 mix 0 codec_in0 Switch' off"
+               cset "name='codec_out0 mix 0 codec_in1 Switch' off"
+               cset "name='codec_out0 mix 0 media_loop1_in Switch' off"
+               cset "name='codec_out0 mix 0 media_loop2_in Switch' off"
+               cset "name='codec_out0 mix 0 pcm0_in Switch' on"
+               cset "name='codec_out0 mix 0 pcm1_in Switch' off"
+               cset "name='codec_out0 mix 0 sprot_loop_in Switch' off"
+               cset "name='codec_out0 Gain 0 Switch' on"
+               cset "name='codec_out0 Gain 0 Volume' 0"
+
+               # modem_out settings (used if ssp0 is connected to aif2)
+               cset "name='modem_out mix 0 codec_in0 Switch' off"
+               cset "name='modem_out mix 0 codec_in1 Switch' off"
+               cset "name='modem_out mix 0 media_loop1_in Switch' off"
+               cset "name='modem_out mix 0 media_loop2_in Switch' off"
+               cset "name='modem_out mix 0 pcm0_in Switch' on"
+               cset "name='modem_out mix 0 pcm1_in Switch' off"
+               cset "name='modem_out mix 0 sprot_loop_in Switch' off"
+               cset "name='modem_out Gain 0 Switch' on"
+               cset "name='modem_out Gain 0 Volume' 0"
+
+               # input settings
+               # pcm1_out settings
+
+               # input used when SSP2 is connected
+               cset "name='codec_in0 Gain 0 Switch' on"
+               cset "name='codec_in0 Gain 0 Volume' 0"
+
+               # input used when SSP0 is connected
+               cset "name='modem_in Gain 0 Switch' on"
+               cset "name='modem_in Gain 0 Volume' 0"
+
+               cset "name='pcm1_out mix 0 codec_in0 Switch' on"
+               cset "name='pcm1_out mix 0 modem_in Switch' on"
+               cset "name='pcm1_out mix 0 codec_in1 Switch' off"
+               cset "name='pcm1_out mix 0 media_loop1_in Switch' off"
+               cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
+               cset "name='pcm1_out mix 0 pcm0_in Switch' off"
+               cset "name='pcm1_out mix 0 pcm1_in Switch' off"
+               cset "name='pcm1_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='pcm1_out Gain 0 Switch' on"
+               cset "name='pcm1_out Gain 0 Volume' 0"
+
+               # disable codec_out1
+               cset "name='codec_out1 mix 0 codec_in0 Switch' off"
+               cset "name='codec_out1 mix 0 codec_in1 Switch' off"
+               cset "name='codec_out1 mix 0 media_loop1_in Switch' off"
+               cset "name='codec_out1 mix 0 media_loop2_in Switch' off"
+               cset "name='codec_out1 mix 0 pcm0_in Switch' off"
+               cset "name='codec_out1 mix 0 pcm1_in Switch' off"
+               cset "name='codec_out1 mix 0 sprot_loop_in Switch' off"
+               cset "name='codec_out1 Gain 0 Switch' off"
+               cset "name='codec_out1 Gain 0 Volume' 0%"
+
+               # disable codec_in1
+               cset "name='codec_in1 Gain 0 Switch' off"
+               cset "name='codec_in1 Gain 0 Volume' 0%"
+
+               # disable all loops
+               cset "name='media_loop1_out mix 0 codec_in0 Switch' off"
+               cset "name='media_loop1_out mix 0 codec_in1 Switch' off"
+               cset "name='media_loop1_out mix 0 media_loop1_in Switch' off"
+               cset "name='media_loop1_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop1_out mix 0 pcm0_in Switch' off"
+               cset "name='media_loop1_out mix 0 pcm1_in Switch' off"
+               cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
+               cset "name='media_loop2_out mix 0 codec_in1 Switch' off"
+               cset "name='media_loop2_out mix 0 media_loop1_in Switch' off"
+               cset "name='media_loop2_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop2_out mix 0 pcm0_in Switch' off"
+               cset "name='media_loop2_out mix 0 pcm1_in Switch' off"
+               cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='sprot_loop_out mix 0 codec_in0 Switch' off"
+               cset "name='sprot_loop_out mix 0 codec_in1 Switch' off"
+               cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off"
+               cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off"
+               cset "name='sprot_loop_out mix 0 pcm0_in Switch' off"
+               cset "name='sprot_loop_out mix 0 pcm1_in Switch' off"
+               cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off"
+
+               # Output Configuration
+               cset "name='DAC1 L Mux' IF1 DAC"
+               cset "name='DAC1 R Mux' IF1 DAC"
+               cset "name='DAC1 MIXL DAC1 Switch' 1"
+               cset "name='DAC1 MIXR DAC1 Switch' 1"
+               cset "name='Stereo DAC MIXL DAC L1 Switch' 1"
+               cset "name='Stereo DAC MIXR DAC R1 Switch' 1"
+
+               cset "name='DAC L2 Mux' IF2 DAC"
+               cset "name='DAC R2 Mux' IF2 DAC"
+               cset "name='Mono DAC MIXL DAC L2 Switch' on"
+               cset "name='Mono DAC MIXR DAC R2 Switch' on"
+               cset "name='DAC2 Playback Switch' on"
+
+               cset "name='HPOVOL MIXL DAC1 Switch' on"
+               cset "name='HPOVOL MIXR DAC1 Switch' on"
+               cset "name='HPOVOL MIXL DAC2 Switch' on"
+               cset "name='HPOVOL MIXR DAC2 Switch' on"
+               cset "name='HPO MIX HPVOL Switch' on"
+               cset "name='HPOVOL L Switch' on"
+               cset "name='HPOVOL R Switch' on"
+
+               cset "name='SPK MIXL DAC L1 Switch' on"
+               cset "name='SPK MIXR DAC R1 Switch' on"
+               cset "name='SPK MIXL DAC L2 Switch' on"
+               cset "name='SPK MIXR DAC R2 Switch' on"
+               cset "name='SPOL MIX SPKVOL L Switch' on"
+               cset "name='SPOR MIX SPKVOL R Switch' on"
+               cset "name='SPKVOL L Switch' on"
+               cset "name='SPKVOL R Switch' on"
+
+               # Input Configuration
+               cset "name='Stereo1 DMIC Mux' 0"
+               cset "name='Stereo1 ADC1 Mux' 1"
+               cset "name='Stereo1 ADC2 Mux' 1"
+               cset "name='ADC Capture Switch' on"
+               # 55/63
+               cset "name='ADC Capture Volume' 55"
+               # set ADC Boost to 0/3, higher vals cause a lot of white noise
+               cset "name='ADC Boost Capture Volume' 0"
+               # 55/63
+               cset "name='Mono ADC Capture Volume' 55"
+               # 0/3
+               cset "name='Mono ADC Boost Capture Volume' 0"
+               # 27/31
+               cset "name='IN Capture Volume' 27"
+               cset "name='I2S2 Func Switch' on"
+               # 3/12 the headphone mic tends to be quite loud
+               cset "name='IN1 Boost' 3"
+               # 8/8 the internal analog mic tends to be quite soft
+               cset "name='IN2 Boost' 8"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               # Disable audio output path
+               cset "name='codec_out1 mix 0 pcm0_in Switch' off"
+               cset "name='media0_out mix 0 media1_in Switch' off"
+
+               cset "name='media1_in Gain 0 Switch' off"
+               cset "name='pcm0_in Gain 0 Switch' off"
+               cset "name='codec_out1 Gain 0 Switch' off"
+
+               # Disable audio input path
+               cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
+
+               cset "name='media_loop2_out Gain 0 Switch' off"
+               cset "name='pcm1_out Gain 0 Switch' off"
+               cset "name='codec_in0 Gain 0 Switch' off"
+       ]
+}
+
+SectionDevice."Speaker" {
+       Comment "Speaker"
+
+       Value {
+               PlaybackChannels "2"
+       }
+
+       ConflictingDevice [
+               "Headphones"
+       ]
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headphone Switch' off"
+               cset "name='Headphone Channel Switch' off"
+
+               cset "name='Ext Spk Switch' on"
+               cset "name='Speaker Channel Switch' on"
+               cset "name='Speaker Playback Volume' 31"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Ext Spk Switch' off"
+               cset "name='Speaker Channel Switch' off"
+       ]
+}
+
+SectionDevice."Headphones" {
+       Comment "Headphones"
+
+       Value {
+               PlaybackChannels "2"
+               JackControl "Headphone Jack"
+               JackHWMute "Speaker"
+       }
+
+       ConflictingDevice [
+               "Speaker"
+       ]
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Ext Spk Switch' off"
+               cset "name='Speaker Channel Switch' off"
+
+               cset "name='Headphone Switch' on"
+               cset "name='Headphone Channel Switch' on"
+               # 25/39 higher values cause crackling on some boards
+               cset "name='Headphone Playback Volume' 25"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headphone Switch' off"
+               cset "name='Headphone Channel Switch' off"
+       ]
+}
+
+SectionDevice."DMic".0 {
+       Comment "Internal Microphone"
+
+       Value {
+               CaptureChannels "2"
+               CapturePriority "150"
+       }
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Int Mic Switch' on"
+
+               cset "name='Stereo1 DMIC Mux' DMIC1"
+               cset "name='Stereo1 ADC2 Mux' DMIC"
+               cset "name='Mono ADC L2 Mux' DMIC"
+               cset "name='Mono ADC R2 Mux' DMIC"
+
+               cset "name='Sto1 ADC MIXL ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXL ADC2 Switch' on"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' on"
+               cset "name='Mono ADC MIXL ADC1 Switch' off"
+               cset "name='Mono ADC MIXR ADC1 Switch' off"
+               cset "name='Mono ADC MIXL ADC2 Switch' on"
+               cset "name='Mono ADC MIXR ADC2 Switch' on"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+               cset "name='Mono ADC MIXL ADC2 Switch' off"
+               cset "name='Mono ADC MIXR ADC2 Switch' off"
+               cset "name='Int Mic Switch' off"
+       ]
+}
+
+SectionDevice."HSMic".0 {
+       Comment "Headset Microphone"
+
+       Value {
+               CaptureChannels "2"
+               JackControl "Headset Mic Jack"
+               JackHWMute "DMic"
+       }
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headset Mic Switch' on"
+
+               cset "name='Sto1 ADC MIXL ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+               cset "name='Mono ADC MIXL ADC2 Switch' off"
+               cset "name='Mono ADC MIXR ADC2 Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' on"
+               cset "name='RECMIXR BST1 Switch' on"
+
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headset Mic Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' off"
+               cset "name='RECMIXR BST1 Switch' off"
+               cset "name='Sto1 ADC MIXL ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' off"
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+
+       ]
+}
diff --git a/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/Makefile.am 
b/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/Makefile.am
new file mode 100644
index 000000000000..dd8b372a2803
--- /dev/null
+++ b/src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/Makefile.am
@@ -0,0 +1,4 @@
+alsaconfigdir = @ALSA_CONFIG_DIR@
+ucmdir = $(alsaconfigdir)/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN
+ucm_DATA = ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN.conf HiFi.conf
+EXTRA_DIST = $(ucm_DATA)
diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am
index 3b4f13a880e6..e496ca894e3e 100644
--- a/src/conf/ucm/Makefile.am
+++ b/src/conf/ucm/Makefile.am
@@ -1,4 +1,5 @@
 SUBDIRS=\
+ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN \
 broadwell-rt286 \
 broxton-rt298 \
 bytcr-rt5651 \
-- 
2.16.3

++++++ 0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch ++++++
>From 5a2df9449d0b17e3579bde60ba48244ba24ea604 Mon Sep 17 00:00:00 2001
From: Hans de Goede <[email protected]>
Date: Sat, 28 Apr 2018 21:52:00 +0200
Subject: [PATCH] conf/ucm: chtrt5645: At config for the Lenovo Ideapad Miix
 320

The Lenovo Ideapad Miix 320 uses a digital mic connected to the DMIC2 input
(unlike the Asus T100HA which has it connected to the DMIC1 input), add a
long-name config specific for the Miix 320, which is a copy of the standard
chtrt5645 config with the internal analog mic section replaced with one
for a digital mic connected to the DMIC2 input.

Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
---
 configure.ac                                       |   1 +
 .../HiFi.conf                                      | 350 +++++++++++++++++++++
 ...ENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216.conf |   5 +
 .../Makefile.am                                    |   4 +
 src/conf/ucm/Makefile.am                           |   1 +
 5 files changed, 361 insertions(+)
 create mode 100644 
src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/HiFi.conf
 create mode 100644 
src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216.conf
 create mode 100644 
src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/Makefile.am

diff --git a/configure.ac b/configure.ac
index 94baf0553ab5..3ee989eb32e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -729,6 +729,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile 
doc/doxygen.cfg \
          src/conf/ucm/gpd-win-pocket-rt5645/Makefile \
          src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile \
          src/conf/ucm/HDAudio-Lenovo-DualCodecs/Makefile \
+         src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/Makefile \
          src/conf/ucm/PandaBoard/Makefile \
          src/conf/ucm/PandaBoardES/Makefile \
          src/conf/ucm/PAZ00/Makefile \
diff --git a/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/HiFi.conf 
b/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/HiFi.conf
new file mode 100644
index 000000000000..8cc9c7f28f0e
--- /dev/null
+++ b/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/HiFi.conf
@@ -0,0 +1,350 @@
+SectionVerb {
+       # ALSA PCM
+       Value {
+               TQ "HiFi"
+
+               # ALSA PCM device for HiFi
+               PlaybackPCM "hw:chtrt5645"
+               CapturePCM "hw:chtrt5645"
+       }
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               # media mixer settings
+               #   compress
+               cset "name='media0_in Gain 0 Switch' on"
+               cset "name='media0_in Gain 0 Volume' 0"
+
+               #   normal
+               cset "name='media1_in Gain 0 Switch' on"
+               cset "name='media1_in Gain 0 Volume' 0"
+               #   swm loopback
+               cset "name='media2_in Gain 0 Switch' off"
+               cset "name='media2_in Gain 0 Volume' 0%"
+               #   deep buffer
+               cset "name='media3_in Gain 0 Switch' on"
+               cset "name='media3_in Gain 0 Volume' 0"
+
+               cset "name='media0_out mix 0 media0_in Switch' on"
+               cset "name='media0_out mix 0 media1_in Switch' on"
+               cset "name='media0_out mix 0 media2_in Switch' off"
+               cset "name='media0_out mix 0 media3_in Switch' on"
+
+               cset "name='media1_out mix 0 media0_in Switch' off"
+               cset "name='media1_out mix 0 media1_in Switch' off"
+               cset "name='media1_out mix 0 media2_in Switch' off"
+               cset "name='media1_out mix 0 media3_in Switch' off"
+
+               cset "name='pcm0_in Gain 0 Switch' on"
+               cset "name='pcm0_in Gain 0 Volume' 0"
+
+               cset "name='pcm1_in Gain 0 Switch' off"
+               cset "name='pcm1_in Gain 0 Volume' 0%"
+
+               # codec0_out settings (used if ssp2 is connected to aif1)
+               cset "name='codec_out0 mix 0 codec_in0 Switch' off"
+               cset "name='codec_out0 mix 0 codec_in1 Switch' off"
+               cset "name='codec_out0 mix 0 media_loop1_in Switch' off"
+               cset "name='codec_out0 mix 0 media_loop2_in Switch' off"
+               cset "name='codec_out0 mix 0 pcm0_in Switch' on"
+               cset "name='codec_out0 mix 0 pcm1_in Switch' off"
+               cset "name='codec_out0 mix 0 sprot_loop_in Switch' off"
+               cset "name='codec_out0 Gain 0 Switch' on"
+               cset "name='codec_out0 Gain 0 Volume' 0"
+
+               # modem_out settings (used if ssp0 is connected to aif2)
+               cset "name='modem_out mix 0 codec_in0 Switch' off"
+               cset "name='modem_out mix 0 codec_in1 Switch' off"
+               cset "name='modem_out mix 0 media_loop1_in Switch' off"
+               cset "name='modem_out mix 0 media_loop2_in Switch' off"
+               cset "name='modem_out mix 0 pcm0_in Switch' on"
+               cset "name='modem_out mix 0 pcm1_in Switch' off"
+               cset "name='modem_out mix 0 sprot_loop_in Switch' off"
+               cset "name='modem_out Gain 0 Switch' on"
+               cset "name='modem_out Gain 0 Volume' 0"
+
+               # input settings
+               # pcm1_out settings
+
+               # input used when SSP2 is connected
+               cset "name='codec_in0 Gain 0 Switch' on"
+               cset "name='codec_in0 Gain 0 Volume' 0"
+
+               # input used when SSP0 is connected
+               cset "name='modem_in Gain 0 Switch' on"
+               cset "name='modem_in Gain 0 Volume' 0"
+
+               cset "name='pcm1_out mix 0 codec_in0 Switch' on"
+               cset "name='pcm1_out mix 0 modem_in Switch' on"
+               cset "name='pcm1_out mix 0 codec_in1 Switch' off"
+               cset "name='pcm1_out mix 0 media_loop1_in Switch' off"
+               cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
+               cset "name='pcm1_out mix 0 pcm0_in Switch' off"
+               cset "name='pcm1_out mix 0 pcm1_in Switch' off"
+               cset "name='pcm1_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='pcm1_out Gain 0 Switch' on"
+               cset "name='pcm1_out Gain 0 Volume' 0"
+
+               # disable codec_out1
+               cset "name='codec_out1 mix 0 codec_in0 Switch' off"
+               cset "name='codec_out1 mix 0 codec_in1 Switch' off"
+               cset "name='codec_out1 mix 0 media_loop1_in Switch' off"
+               cset "name='codec_out1 mix 0 media_loop2_in Switch' off"
+               cset "name='codec_out1 mix 0 pcm0_in Switch' off"
+               cset "name='codec_out1 mix 0 pcm1_in Switch' off"
+               cset "name='codec_out1 mix 0 sprot_loop_in Switch' off"
+               cset "name='codec_out1 Gain 0 Switch' off"
+               cset "name='codec_out1 Gain 0 Volume' 0%"
+
+               # disable codec_in1
+               cset "name='codec_in1 Gain 0 Switch' off"
+               cset "name='codec_in1 Gain 0 Volume' 0%"
+
+               # disable all loops
+               cset "name='media_loop1_out mix 0 codec_in0 Switch' off"
+               cset "name='media_loop1_out mix 0 codec_in1 Switch' off"
+               cset "name='media_loop1_out mix 0 media_loop1_in Switch' off"
+               cset "name='media_loop1_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop1_out mix 0 pcm0_in Switch' off"
+               cset "name='media_loop1_out mix 0 pcm1_in Switch' off"
+               cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
+               cset "name='media_loop2_out mix 0 codec_in1 Switch' off"
+               cset "name='media_loop2_out mix 0 media_loop1_in Switch' off"
+               cset "name='media_loop2_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop2_out mix 0 pcm0_in Switch' off"
+               cset "name='media_loop2_out mix 0 pcm1_in Switch' off"
+               cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off"
+
+               cset "name='sprot_loop_out mix 0 codec_in0 Switch' off"
+               cset "name='sprot_loop_out mix 0 codec_in1 Switch' off"
+               cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off"
+               cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off"
+               cset "name='sprot_loop_out mix 0 pcm0_in Switch' off"
+               cset "name='sprot_loop_out mix 0 pcm1_in Switch' off"
+               cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off"
+
+               # Output Configuration
+               cset "name='DAC1 L Mux' IF1 DAC"
+               cset "name='DAC1 R Mux' IF1 DAC"
+               cset "name='DAC1 MIXL DAC1 Switch' 1"
+               cset "name='DAC1 MIXR DAC1 Switch' 1"
+               cset "name='Stereo DAC MIXL DAC L1 Switch' 1"
+               cset "name='Stereo DAC MIXR DAC R1 Switch' 1"
+
+               cset "name='DAC L2 Mux' IF2 DAC"
+               cset "name='DAC R2 Mux' IF2 DAC"
+               cset "name='Mono DAC MIXL DAC L2 Switch' on"
+               cset "name='Mono DAC MIXR DAC R2 Switch' on"
+               cset "name='DAC2 Playback Switch' on"
+
+               cset "name='HPOVOL MIXL DAC1 Switch' on"
+               cset "name='HPOVOL MIXR DAC1 Switch' on"
+               cset "name='HPOVOL MIXL DAC2 Switch' on"
+               cset "name='HPOVOL MIXR DAC2 Switch' on"
+               cset "name='HPO MIX HPVOL Switch' on"
+               cset "name='HPOVOL L Switch' on"
+               cset "name='HPOVOL R Switch' on"
+
+               cset "name='SPK MIXL DAC L1 Switch' on"
+               cset "name='SPK MIXR DAC R1 Switch' on"
+               cset "name='SPK MIXL DAC L2 Switch' on"
+               cset "name='SPK MIXR DAC R2 Switch' on"
+               cset "name='SPOL MIX SPKVOL L Switch' on"
+               cset "name='SPOR MIX SPKVOL R Switch' on"
+               cset "name='SPKVOL L Switch' on"
+               cset "name='SPKVOL R Switch' on"
+
+               # Input Configuration
+               cset "name='Stereo1 DMIC Mux' 0"
+               cset "name='Stereo1 ADC1 Mux' 1"
+               cset "name='Stereo1 ADC2 Mux' 1"
+               cset "name='ADC Capture Switch' on"
+               # 55/63
+               cset "name='ADC Capture Volume' 55"
+               # set ADC Boost to 0/3, higher vals cause a lot of white noise
+               cset "name='ADC Boost Capture Volume' 0"
+               # 55/63
+               cset "name='Mono ADC Capture Volume' 55"
+               # 0/3
+               cset "name='Mono ADC Boost Capture Volume' 0"
+               # 27/31
+               cset "name='IN Capture Volume' 27"
+               cset "name='I2S2 Func Switch' on"
+               # 3/12 the headphone mic tends to be quite loud
+               cset "name='IN1 Boost' 3"
+               # 8/8 the internal analog mic tends to be quite soft
+               cset "name='IN2 Boost' 8"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               # Disable audio output path
+               cset "name='codec_out1 mix 0 pcm0_in Switch' off"
+               cset "name='media0_out mix 0 media1_in Switch' off"
+
+               cset "name='media1_in Gain 0 Switch' off"
+               cset "name='pcm0_in Gain 0 Switch' off"
+               cset "name='codec_out1 Gain 0 Switch' off"
+
+               # Disable audio input path
+               cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
+               cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
+
+               cset "name='media_loop2_out Gain 0 Switch' off"
+               cset "name='pcm1_out Gain 0 Switch' off"
+               cset "name='codec_in0 Gain 0 Switch' off"
+       ]
+}
+
+SectionDevice."Speaker" {
+       Comment "Speaker"
+
+       Value {
+               PlaybackChannels "2"
+       }
+
+       ConflictingDevice [
+               "Headphones"
+       ]
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headphone Switch' off"
+               cset "name='Headphone Channel Switch' off"
+
+               cset "name='Ext Spk Switch' on"
+               cset "name='Speaker Channel Switch' on"
+               cset "name='Speaker Playback Volume' 31"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Ext Spk Switch' off"
+               cset "name='Speaker Channel Switch' off"
+       ]
+}
+
+SectionDevice."Headphones" {
+       Comment "Headphones"
+
+       Value {
+               PlaybackChannels "2"
+               JackControl "Headphone Jack"
+               JackHWMute "Speaker"
+       }
+
+       ConflictingDevice [
+               "Speaker"
+       ]
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Ext Spk Switch' off"
+               cset "name='Speaker Channel Switch' off"
+
+               cset "name='Headphone Switch' on"
+               cset "name='Headphone Channel Switch' on"
+               # 25/39 higher values cause crackling on some boards
+               cset "name='Headphone Playback Volume' 25"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headphone Switch' off"
+               cset "name='Headphone Channel Switch' off"
+       ]
+}
+
+SectionDevice."DMic".0 {
+       Comment "Internal Microphone"
+
+       Value {
+               CaptureChannels "2"
+               CapturePriority "150"
+       }
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Int Mic Switch' on"
+
+               cset "name='Stereo1 DMIC Mux' DMIC2"
+               cset "name='Stereo1 ADC2 Mux' DMIC"
+               cset "name='Mono DMIC L Mux' DMIC2"
+               cset "name='Mono DMIC R Mux' DMIC2"
+               cset "name='Mono ADC L2 Mux' DMIC"
+               cset "name='Mono ADC R2 Mux' DMIC"
+
+               cset "name='Sto1 ADC MIXL ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXL ADC2 Switch' on"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' on"
+               cset "name='Mono ADC MIXL ADC1 Switch' off"
+               cset "name='Mono ADC MIXR ADC1 Switch' off"
+               cset "name='Mono ADC MIXL ADC2 Switch' on"
+               cset "name='Mono ADC MIXR ADC2 Switch' on"
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+               cset "name='Mono ADC MIXL ADC2 Switch' off"
+               cset "name='Mono ADC MIXR ADC2 Switch' off"
+               cset "name='Int Mic Switch' off"
+       ]
+}
+
+SectionDevice."HSMic".0 {
+       Comment "Headset Microphone"
+
+       Value {
+               CaptureChannels "2"
+               JackControl "Headset Mic Jack"
+               JackHWMute "DMic"
+       }
+
+       EnableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headset Mic Switch' on"
+
+               cset "name='Sto1 ADC MIXL ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' on"
+               cset "name='Sto1 ADC MIXL ADC2 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC2 Switch' off"
+
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+               cset "name='Mono ADC MIXL ADC2 Switch' off"
+               cset "name='Mono ADC MIXR ADC2 Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' on"
+               cset "name='RECMIXR BST1 Switch' on"
+
+       ]
+
+       DisableSequence [
+               cdev "hw:chtrt5645"
+
+               cset "name='Headset Mic Switch' off"
+
+               cset "name='RECMIXL BST1 Switch' off"
+               cset "name='RECMIXR BST1 Switch' off"
+               cset "name='Sto1 ADC MIXL ADC1 Switch' off"
+               cset "name='Sto1 ADC MIXR ADC1 Switch' off"
+               cset "name='Mono ADC MIXL ADC1 Switch' on"
+               cset "name='Mono ADC MIXR ADC1 Switch' on"
+
+       ]
+}
diff --git 
a/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216.conf
 
b/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216.conf
new file mode 100644
index 000000000000..50bda000a8b1
--- /dev/null
+++ 
b/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216.conf
@@ -0,0 +1,5 @@
+Comment "Intel SoC Audio Device"
+SectionUseCase."HiFi" {
+       File "../LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/HiFi.conf"
+       Comment "Default"
+}
diff --git 
a/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/Makefile.am 
b/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/Makefile.am
new file mode 100644
index 000000000000..18963c213b78
--- /dev/null
+++ b/src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/Makefile.am
@@ -0,0 +1,4 @@
+alsaconfigdir = @ALSA_CONFIG_DIR@
+ucmdir = $(alsaconfigdir)/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216
+ucm_DATA = LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216.conf HiFi.conf
+EXTRA_DIST = $(ucm_DATA)
diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am
index e496ca894e3e..02df25f01b25 100644
--- a/src/conf/ucm/Makefile.am
+++ b/src/conf/ucm/Makefile.am
@@ -11,6 +11,7 @@ GoogleNyan \
 gpd-win-pocket-rt5645 \
 HDAudio-Gigabyte-ALC1220DualCodecs \
 HDAudio-Lenovo-DualCodecs \
+LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216 \
 PandaBoard \
 PandaBoardES \
 PAZ00 \
-- 
2.16.3

++++++ 0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch ++++++
>From 7d68016387137edecb0b06057b39361e5fc0fe84 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <[email protected]>
Date: Wed, 2 May 2018 16:23:21 +0200
Subject: [PATCH] conf/ucm: Add a UCM profile for Dell WD15 Dock USB-audio

USB-audio device on Dell WD15 docking station provides two individual
PCM streams, one for headphone and another for line out.  A UCM
profile gives the proper roles for these.

Signed-off-by: Takashi Iwai <[email protected]>
---
 configure.ac                                    |  1 +
 src/conf/ucm/Dell-WD15-Dock/Dell-WD15-Dock.conf |  5 +++++
 src/conf/ucm/Dell-WD15-Dock/HiFi.conf           | 26 +++++++++++++++++++++++++
 src/conf/ucm/Dell-WD15-Dock/Makefile.am         |  4 ++++
 src/conf/ucm/Makefile.am                        |  1 +
 5 files changed, 37 insertions(+)
 create mode 100644 src/conf/ucm/Dell-WD15-Dock/Dell-WD15-Dock.conf
 create mode 100644 src/conf/ucm/Dell-WD15-Dock/HiFi.conf
 create mode 100644 src/conf/ucm/Dell-WD15-Dock/Makefile.am

diff --git a/configure.ac b/configure.ac
index 3ee989eb32e1..693b5d538436 100644
--- a/configure.ac
+++ b/configure.ac
@@ -725,6 +725,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile 
doc/doxygen.cfg \
          src/conf/ucm/chtrt5645-mono-speaker-analog-mic/Makefile \
          src/conf/ucm/DAISY-I2S/Makefile \
          src/conf/ucm/DB410c/Makefile \
+         src/conf/ucm/Dell-WD15-Dock/Makefile \
          src/conf/ucm/GoogleNyan/Makefile \
          src/conf/ucm/gpd-win-pocket-rt5645/Makefile \
          src/conf/ucm/HDAudio-Gigabyte-ALC1220DualCodecs/Makefile \
diff --git a/src/conf/ucm/Dell-WD15-Dock/Dell-WD15-Dock.conf 
b/src/conf/ucm/Dell-WD15-Dock/Dell-WD15-Dock.conf
new file mode 100644
index 000000000000..f4f0a8d97e73
--- /dev/null
+++ b/src/conf/ucm/Dell-WD15-Dock/Dell-WD15-Dock.conf
@@ -0,0 +1,5 @@
+Comment "USB-audio on Dell WD15 docking station"
+SectionUseCase."HiFi" {
+       File "HiFi.conf"
+       Comment "Default"
+}
diff --git a/src/conf/ucm/Dell-WD15-Dock/HiFi.conf 
b/src/conf/ucm/Dell-WD15-Dock/HiFi.conf
new file mode 100644
index 000000000000..b07f34400086
--- /dev/null
+++ b/src/conf/ucm/Dell-WD15-Dock/HiFi.conf
@@ -0,0 +1,26 @@
+SectionDevice."Headphone" {
+       Comment "Headphone"
+
+       Value {
+               PlaybackChannels "2"
+               PlaybackPCM "hw:WD15Dock,0"
+       }
+}
+
+SectionDevice."LineOut" {
+       Comment "Line Out"
+
+       Value {
+               PlaybackChannels "2"
+               PlaybackPCM "hw:WD15Dock,1"
+       }
+}
+
+SectionDevice."Mic" {
+       Comment "Microphone"
+
+       Value {
+               CaptureChannels "2"
+               CapturePCM "hw:WD15Dock,0"
+       }
+}
diff --git a/src/conf/ucm/Dell-WD15-Dock/Makefile.am 
b/src/conf/ucm/Dell-WD15-Dock/Makefile.am
new file mode 100644
index 000000000000..7ab58730dc26
--- /dev/null
+++ b/src/conf/ucm/Dell-WD15-Dock/Makefile.am
@@ -0,0 +1,4 @@
+alsaconfigdir = @ALSA_CONFIG_DIR@
+ucmdir = $(alsaconfigdir)/ucm/Dell-WD15-Dock
+ucm_DATA = Dell-WD15-Dock.conf HiFi.conf
+EXTRA_DIST = $(ucm_DATA)
diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am
index 02df25f01b25..38fc6b252bcb 100644
--- a/src/conf/ucm/Makefile.am
+++ b/src/conf/ucm/Makefile.am
@@ -7,6 +7,7 @@ chtrt5645 \
 chtrt5645-mono-speaker-analog-mic \
 DAISY-I2S \
 DB410c \
+Dell-WD15-Dock \
 GoogleNyan \
 gpd-win-pocket-rt5645 \
 HDAudio-Gigabyte-ALC1220DualCodecs \
-- 
2.16.3





Reply via email to