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
This commit is contained in:
Tomáš Chvátal 2018-05-02 17:22:09 +00:00 committed by Git OBS Bridge
parent 5829d30c53
commit c45adc86c9
10 changed files with 1529 additions and 0 deletions

View File

@ -0,0 +1,52 @@
From 181f8e251bc05832f9c9401544e680ea0572a2e3 Mon Sep 17 00:00:00 2001
From: Hui Wang <hui.wang@canonical.com>
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 <hui.wang@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
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

View File

@ -0,0 +1,29 @@
From 81db276f8c2235adc83e9698b0174265f6482655 Mon Sep 17 00:00:00 2001
From: Hui Wang <hui.wang@canonical.com>
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 <hui.wang@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
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

View File

@ -0,0 +1,239 @@
From f7c38c29d1be8bab9dd4f406aea3b0e9151c1c06 Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
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 <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
[hdegoede@redhat.com: Modify commit msg and paths for merging into alsa-lib]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
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

View File

@ -0,0 +1,118 @@
From 4c0d983d7b4402e7275455ac43f39049b45037ea Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
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 <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
[hdegoede@redhat.com: Drop non generic DMIC changes]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
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

View File

@ -0,0 +1,109 @@
From 76bc53e69a12163a86e6746fd3011de6b1652043 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
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

View File

@ -0,0 +1,423 @@
From c22a7f423ddef2a1376bc84f2aafc0a167192ab6 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
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

View File

@ -0,0 +1,429 @@
From 5a2df9449d0b17e3579bde60ba48244ba24ea604 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
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

View File

@ -0,0 +1,101 @@
From 7d68016387137edecb0b06057b39361e5fc0fe84 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
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 <tiwai@suse.de>
---
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

View File

@ -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

View File

@ -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}"