From c45adc86c944929311ba985cb57aedeee4d785ee5ca88b9c2f2ec03a0601bbc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Wed, 2 May 2018 17:22:09 +0000 Subject: [PATCH] Accepting request 603189 from home:tiwai:branches:multimedia:libs - 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 OBS-URL: https://build.opensuse.org/request/show/603189 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=233 --- ...older-of-card_long_name-when-finding.patch | 52 +++ ...increase-the-input-volume-for-LineIn.patch | 29 ++ ...chtrt5645-Cleanup-and-playback-fixes.patch | 239 ++++++++++ ...chtrt5645-Microphone-recording-fixes.patch | 118 +++++ ...45-Fix-recording-from-internal-analo.patch | 109 +++++ ...rt5645-At-config-for-the-Asus-T100HA.patch | 423 +++++++++++++++++ ...45-At-config-for-the-Lenovo-Ideapad-.patch | 429 ++++++++++++++++++ ...CM-profile-for-Dell-WD15-Dock-USB-au.patch | 101 +++++ alsa.changes | 13 + alsa.spec | 16 + 10 files changed, 1529 insertions(+) create mode 100644 0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch create mode 100644 0002-conf-ucm-increase-the-input-volume-for-LineIn.patch create mode 100644 0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch create mode 100644 0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch create mode 100644 0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch create mode 100644 0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch create mode 100644 0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch create mode 100644 0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch diff --git a/0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch b/0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch new file mode 100644 index 0000000..f35b8fb --- /dev/null +++ b/0001-ucm-adding-the-folder-of-card_long_name-when-finding.patch @@ -0,0 +1,52 @@ +From 181f8e251bc05832f9c9401544e680ea0572a2e3 Mon Sep 17 00:00:00 2001 +From: Hui Wang +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 +Signed-off-by: Jaroslav Kysela +--- + 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 + diff --git a/0002-conf-ucm-increase-the-input-volume-for-LineIn.patch b/0002-conf-ucm-increase-the-input-volume-for-LineIn.patch new file mode 100644 index 0000000..fb087c5 --- /dev/null +++ b/0002-conf-ucm-increase-the-input-volume-for-LineIn.patch @@ -0,0 +1,29 @@ +From 81db276f8c2235adc83e9698b0174265f6482655 Mon Sep 17 00:00:00 2001 +From: Hui Wang +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 +Signed-off-by: Jaroslav Kysela +--- + 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 + diff --git a/0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch b/0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch new file mode 100644 index 0000000..b81b5d3 --- /dev/null +++ b/0003-conf-ucm-chtrt5645-Cleanup-and-playback-fixes.patch @@ -0,0 +1,239 @@ +From f7c38c29d1be8bab9dd4f406aea3b0e9151c1c06 Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +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 +Signed-off-by: Pierre-Louis Bossart +[hdegoede@redhat.com: Modify commit msg and paths for merging into alsa-lib] +Signed-off-by: Hans de Goede +Signed-off-by: Takashi Iwai +--- + 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 + diff --git a/0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch b/0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch new file mode 100644 index 0000000..9fb906b --- /dev/null +++ b/0004-conf-ucm-chtrt5645-Microphone-recording-fixes.patch @@ -0,0 +1,118 @@ +From 4c0d983d7b4402e7275455ac43f39049b45037ea Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +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 +Signed-off-by: Pierre-Louis Bossart +[hdegoede@redhat.com: Drop non generic DMIC changes] +Signed-off-by: Hans de Goede +Signed-off-by: Takashi Iwai +--- + 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 + diff --git a/0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch b/0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch new file mode 100644 index 0000000..1e6d845 --- /dev/null +++ b/0005-conf-ucm-chtrt5645-Fix-recording-from-internal-analo.patch @@ -0,0 +1,109 @@ +From 76bc53e69a12163a86e6746fd3011de6b1652043 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +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 +Signed-off-by: Takashi Iwai +--- + 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 + diff --git a/0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch b/0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch new file mode 100644 index 0000000..9728307 --- /dev/null +++ b/0006-conf-ucm-chtrt5645-At-config-for-the-Asus-T100HA.patch @@ -0,0 +1,423 @@ +From c22a7f423ddef2a1376bc84f2aafc0a167192ab6 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +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 +Signed-off-by: Takashi Iwai +--- + 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 + diff --git a/0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch b/0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch new file mode 100644 index 0000000..d673201 --- /dev/null +++ b/0007-conf-ucm-chtrt5645-At-config-for-the-Lenovo-Ideapad-.patch @@ -0,0 +1,429 @@ +From 5a2df9449d0b17e3579bde60ba48244ba24ea604 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +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 +Signed-off-by: Takashi Iwai +--- + 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 + diff --git a/0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch b/0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch new file mode 100644 index 0000000..42e70bd --- /dev/null +++ b/0008-conf-ucm-Add-a-UCM-profile-for-Dell-WD15-Dock-USB-au.patch @@ -0,0 +1,101 @@ +From 7d68016387137edecb0b06057b39361e5fc0fe84 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +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 +--- + 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 + diff --git a/alsa.changes b/alsa.changes index 0cba57e..76d58c0 100644 --- a/alsa.changes +++ b/alsa.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Wed May 2 17:11:29 CEST 2018 - tiwai@suse.de + +- 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 + ------------------------------------------------------------------- Wed Apr 4 14:14:10 CEST 2018 - tiwai@suse.de diff --git a/alsa.spec b/alsa.spec index 24a68ee..4f510c6 100644 --- a/alsa.spec +++ b/alsa.spec @@ -50,6 +50,14 @@ Source34: alsa-init.sh 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 @@ Architecture. %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}"