1019 lines
26 KiB
Diff
1019 lines
26 KiB
Diff
From 46222753fdddc86d6a0b92c465875f71c628a779 Mon Sep 17 00:00:00 2001
|
|
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
|
Date: Thu, 27 Feb 2020 12:40:20 -0600
|
|
Subject: [PATCH 01/10] sof-bdw-rt5677: initial port to UCM2
|
|
|
|
Tested on Pixel 2015/SAMUS Chromebook.
|
|
|
|
Known limitations:
|
|
Left/Right confusion (probably a firmware issue)
|
|
PulseAudio does not switch capture devices on headset plug
|
|
|
|
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/sof-bdw-rt5677/HiFi.conf | 194 ++++++++++++++++++++++++
|
|
ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf | 6 +
|
|
2 files changed, 200 insertions(+)
|
|
create mode 100644 ucm2/sof-bdw-rt5677/HiFi.conf
|
|
create mode 100644 ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf
|
|
|
|
diff --git a/ucm2/sof-bdw-rt5677/HiFi.conf b/ucm2/sof-bdw-rt5677/HiFi.conf
|
|
new file mode 100644
|
|
index 0000000..f4b1449
|
|
--- /dev/null
|
|
+++ b/ucm2/sof-bdw-rt5677/HiFi.conf
|
|
@@ -0,0 +1,194 @@
|
|
+# Use case Configuration for sof-bdw-rt5677
|
|
+# command-line sequence to switch playback/capture
|
|
+# alsaucm -c sof-bdw-rt5677 set _verb HiFi
|
|
+# alsaucm -c sof-bdw-rt5677 set _verb HiFi set _enadev Headphones
|
|
+
|
|
+
|
|
+SectionVerb {
|
|
+
|
|
+ EnableSequence [
|
|
+
|
|
+ cset "name='PDM1 L Mux' STO1 DAC MIX"
|
|
+ cset "name='PDM1 R Mux' STO1 DAC MIX"
|
|
+
|
|
+ # Adjust Master Playback volume if needed
|
|
+ # cset "name='Master Playback Volume' 30"
|
|
+
|
|
+ cset "name='OUT1 Playback Switch' off"
|
|
+ cset "name='OUT2 Playback Switch' off"
|
|
+
|
|
+ cset "name='DAC1 Playback Volume' 175"
|
|
+ cset "name='DAC2 Playback Volume' 175"
|
|
+ cset "name='DAC12 SRC Mux' STO1 DAC MIX"
|
|
+
|
|
+ cset "name='Stereo DAC MIXL ST L Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC1 L Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC2 L Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC1 R Switch' on"
|
|
+
|
|
+ cset "name='Stereo DAC MIXR ST R Switch' off"
|
|
+ cset "name='Stereo DAC MIXR DAC1 R Switch' off"
|
|
+ cset "name='Stereo DAC MIXR DAC2 R Switch' off"
|
|
+ cset "name='Stereo DAC MIXR DAC1 L Switch' on"
|
|
+
|
|
+ cset "name='DAC1 MIXL Stereo ADC Switch' off"
|
|
+ cset "name='DAC1 MIXL DAC1 Switch' on"
|
|
+
|
|
+ cset "name='DAC1 MIXR Stereo ADC Switch' off"
|
|
+ cset "name='DAC1 MIXR DAC1 Switch' on"
|
|
+
|
|
+ cset "name='DAC1 Mux' IF1 DAC 01"
|
|
+
|
|
+ cset "name='Stereo1 DMIC Mux' DMIC1"
|
|
+ cset "name='Stereo1 ADC2 Mux' DMIC"
|
|
+ cset "name='Stereo1 ADC1 Mux' ADC1/2"
|
|
+
|
|
+ cset "name='Sto1 ADC MIXL ADC1 Switch' off"
|
|
+ cset "name='Sto1 ADC MIXL ADC2 Switch' off"
|
|
+ cset "name='Sto1 ADC MIXL ADC2 Switch' on"
|
|
+
|
|
+ cset "name='Sto1 ADC MIXR ADC1 Switch' off"
|
|
+ cset "name='Sto1 ADC MIXR ADC2 Switch' off"
|
|
+ cset "name='Sto1 ADC MIXR ADC2 Switch' on"
|
|
+
|
|
+ cset "name='IF1 ADC1 Mux' STO1 ADC MIX"
|
|
+ cset "name='IF1 ADC1 Swap Mux' L/R"
|
|
+
|
|
+ # Adjust Mic Capture Volume if needed
|
|
+ # cset "name='Mic Capture Volume' 30"
|
|
+
|
|
+ cset "name='ADC1 Capture Switch' on"
|
|
+ cset "name='ADC1 Capture Volume' 31"
|
|
+ cset "name='STO1 ADC Boost Volume' 2"
|
|
+
|
|
+ cset "name='Headphone Switch' off"
|
|
+ cset "name='Speaker Switch' on"
|
|
+
|
|
+ cset "name='Remote DMICs Switch' on"
|
|
+ cset "name='Mono DMIC L Mux' DMIC1"
|
|
+ cset "name='Mono ADC2 L Mux' DMIC"
|
|
+ cset "name='Mono ADC MIXL ADC1 Switch' off"
|
|
+ cset "name='Mono ADC MIXL ADC2 Switch' on"
|
|
+ cset "name='VAD ADC Mux' MONO ADC MIX L"
|
|
+ cset "name='IB01 Mux' VAD ADC/DAC1 FS"
|
|
+ cset "name='IB01 Bypass Mux' Bypass"
|
|
+ cset "name='Mono ADC Boost Volume' 2"
|
|
+ ]
|
|
+
|
|
+ DisableSequence [
|
|
+ ]
|
|
+}
|
|
+
|
|
+SectionDevice."Speaker" {
|
|
+ Comment "Speakers"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Headphones"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ ]
|
|
+
|
|
+ DisableSequence [
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ PlaybackPriority 100
|
|
+ PlaybackPCM "hw:${CardId}"
|
|
+ }
|
|
+}
|
|
+
|
|
+
|
|
+SectionDevice."Headphones" {
|
|
+ Comment "Headphones"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Speaker"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='Speaker Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC1 R Switch' off"
|
|
+ cset "name='Stereo DAC MIXR DAC1 L Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC1 L Switch' on"
|
|
+ cset "name='Stereo DAC MIXR DAC1 R Switch' on"
|
|
+ cset "name='OUT1 Playback Switch' on"
|
|
+ cset "name='OUT2 Playback Switch' on"
|
|
+ cset "name='Headphone Switch' on"
|
|
+ ]
|
|
+
|
|
+ DisableSequence [
|
|
+ cset "name='Headphone Switch' off"
|
|
+ cset "name='OUT1 Playback Switch' off"
|
|
+ cset "name='OUT2 Playback Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC1 L Switch' off"
|
|
+ cset "name='Stereo DAC MIXR DAC1 R Switch' off"
|
|
+ cset "name='Stereo DAC MIXL DAC1 R Switch' on"
|
|
+ cset "name='Stereo DAC MIXR DAC1 L Switch' on"
|
|
+ cset "name='Speaker Switch' on"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ PlaybackPriority 300
|
|
+ PlaybackPCM "hw:${CardId}"
|
|
+ JackControl "Headphone Jack"
|
|
+ JackHWMute "Speakers"
|
|
+ }
|
|
+}
|
|
+
|
|
+SectionDevice."Mic" {
|
|
+ Comment "Internal Microphone"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Headset"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ ]
|
|
+
|
|
+ DisableSequence [
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ CapturePriority 100
|
|
+ CapturePCM "hw:${CardId}"
|
|
+ }
|
|
+}
|
|
+
|
|
+SectionDevice."Headset" {
|
|
+ Comment "Headset Microphone"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Mic"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='Sto1 ADC MIXL ADC2 Switch' off"
|
|
+ cset "name='Sto1 ADC MIXR ADC2 Switch' off"
|
|
+ cset "name='Local DMICs Switch' off"
|
|
+
|
|
+ cset "name='IF1 ADC1 Swap Mux' L/L"
|
|
+
|
|
+ cset "name='Sto1 ADC MIXL ADC1 Switch' on"
|
|
+ cset "name='Sto1 ADC MIXR ADC1 Switch' on"
|
|
+ cset "name='Headset Mic Switch' on"
|
|
+ ]
|
|
+
|
|
+ DisableSequence [
|
|
+ cset "name='Sto1 ADC MIXL ADC1 Switch' off"
|
|
+ cset "name='Sto1 ADC MIXR ADC1 Switch' off"
|
|
+ cset "name='Headset Mic Switch' off"
|
|
+
|
|
+ cset "name='IF1 ADC1 Swap Mux' L/R"
|
|
+
|
|
+ cset "name='Sto1 ADC MIXL ADC2 Switch' on"
|
|
+ cset "name='Sto1 ADC MIXR ADC2 Switch' on"
|
|
+ cset "name='Local DMICs Switch' on"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ CapturePriority 300
|
|
+ CapturePCM "hw:${CardId}"
|
|
+ JackControl "Mic Jack"
|
|
+ }
|
|
+}
|
|
diff --git a/ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf b/ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf
|
|
new file mode 100644
|
|
index 0000000..d672df2
|
|
--- /dev/null
|
|
+++ b/ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf
|
|
@@ -0,0 +1,6 @@
|
|
+Syntax 2
|
|
+
|
|
+SectionUseCase."HiFi" {
|
|
+ File "HiFi.conf"
|
|
+ Comment "Default"
|
|
+}
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From da45a07c756308b57facf1a97c4842274ff04fe3 Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Sun, 1 Mar 2020 16:12:28 +0100
|
|
Subject: [PATCH 02/10] ucm2: treewide - JackHWMute fixes
|
|
|
|
Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/14
|
|
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/HDA-Intel/HiFi-dual.conf | 1 +
|
|
ucm2/broxton-rt298/HiFi.conf | 1 -
|
|
ucm2/chtrt5645/HiFi-dmic2.conf | 2 +-
|
|
ucm2/skylake-rt286/HiFi.conf | 1 -
|
|
ucm2/sof-bdw-rt5677/HiFi.conf | 2 +-
|
|
5 files changed, 3 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/ucm2/HDA-Intel/HiFi-dual.conf b/ucm2/HDA-Intel/HiFi-dual.conf
|
|
index 174fef4..277894a 100644
|
|
--- a/ucm2/HDA-Intel/HiFi-dual.conf
|
|
+++ b/ucm2/HDA-Intel/HiFi-dual.conf
|
|
@@ -93,6 +93,7 @@ SectionDevice."Mic2" {
|
|
CapturePriority 300
|
|
CapturePCM "hw:${CardId}"
|
|
JackHWMute "Line2"
|
|
+ JackControl "Mic Jack"
|
|
}
|
|
|
|
ConflictingDevice [
|
|
diff --git a/ucm2/broxton-rt298/HiFi.conf b/ucm2/broxton-rt298/HiFi.conf
|
|
index 6f5b9a5..f7e561f 100644
|
|
--- a/ucm2/broxton-rt298/HiFi.conf
|
|
+++ b/ucm2/broxton-rt298/HiFi.conf
|
|
@@ -30,7 +30,6 @@ SectionDevice."Speaker" {
|
|
Value {
|
|
PlaybackPriority 100
|
|
PlaybackPCM "hw:${CardId}"
|
|
- JackHWMute "Headphones"
|
|
}
|
|
}
|
|
|
|
diff --git a/ucm2/chtrt5645/HiFi-dmic2.conf b/ucm2/chtrt5645/HiFi-dmic2.conf
|
|
index c9fdd79..d3f880a 100644
|
|
--- a/ucm2/chtrt5645/HiFi-dmic2.conf
|
|
+++ b/ucm2/chtrt5645/HiFi-dmic2.conf
|
|
@@ -98,7 +98,7 @@ SectionDevice."Headset" {
|
|
CapturePriority 200
|
|
CapturePCM "hw:${CardId}"
|
|
JackControl "Headset Mic Jack"
|
|
- JackHWMute "DMic"
|
|
+ JackHWMute "Mic"
|
|
}
|
|
|
|
EnableSequence [
|
|
diff --git a/ucm2/skylake-rt286/HiFi.conf b/ucm2/skylake-rt286/HiFi.conf
|
|
index 9e94a1b..ed4bfa7 100644
|
|
--- a/ucm2/skylake-rt286/HiFi.conf
|
|
+++ b/ucm2/skylake-rt286/HiFi.conf
|
|
@@ -51,7 +51,6 @@ SectionDevice."Speaker" {
|
|
Value {
|
|
PlaybackPriority 100
|
|
PlaybackPCM "hw:${CardId}"
|
|
- JackHWMute "Headphones"
|
|
}
|
|
}
|
|
|
|
diff --git a/ucm2/sof-bdw-rt5677/HiFi.conf b/ucm2/sof-bdw-rt5677/HiFi.conf
|
|
index f4b1449..724a1cc 100644
|
|
--- a/ucm2/sof-bdw-rt5677/HiFi.conf
|
|
+++ b/ucm2/sof-bdw-rt5677/HiFi.conf
|
|
@@ -132,7 +132,7 @@ SectionDevice."Headphones" {
|
|
PlaybackPriority 300
|
|
PlaybackPCM "hw:${CardId}"
|
|
JackControl "Headphone Jack"
|
|
- JackHWMute "Speakers"
|
|
+ JackHWMute "Speaker"
|
|
}
|
|
}
|
|
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From 4722f5b3859903521ba0f92a64d86af31083ca50 Mon Sep 17 00:00:00 2001
|
|
From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
|
|
Date: Thu, 5 Mar 2020 14:59:56 +0200
|
|
Subject: [PATCH 03/10] sof-hda-dsp: Support systems without integrated
|
|
graphics audio
|
|
|
|
On systems where integrated graphics audio is not present
|
|
or is disabled, the HDMI PCM nodes are disabled. Add rules to
|
|
detect these systems by checking presence of HDMI jack controls
|
|
with UCM2 rules.
|
|
|
|
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/sof-hda-dsp/Hdmi.conf | 96 ++++++++++++++++++++++++--------------
|
|
1 file changed, 60 insertions(+), 36 deletions(-)
|
|
|
|
diff --git a/ucm2/sof-hda-dsp/Hdmi.conf b/ucm2/sof-hda-dsp/Hdmi.conf
|
|
index be6cb39..6f2c4aa 100644
|
|
--- a/ucm2/sof-hda-dsp/Hdmi.conf
|
|
+++ b/ucm2/sof-hda-dsp/Hdmi.conf
|
|
@@ -1,55 +1,79 @@
|
|
# Use case Configuration for sof-hda-dsp
|
|
|
|
-SectionDevice."HDMI1" {
|
|
- Comment "HDMI1/DP1 Output"
|
|
+If.hdmi1 {
|
|
+ Condition {
|
|
+ Type ControlExists
|
|
+ Control "iface=CARD,name='HDMI/DP,pcm=3 Jack'"
|
|
+ }
|
|
+ True {
|
|
+ SectionDevice."HDMI1" {
|
|
+ Comment "HDMI1/DP1 Output"
|
|
|
|
- EnableSequence [
|
|
- cset "name='IEC958 Playback Switch' on"
|
|
- ]
|
|
+ EnableSequence [
|
|
+ cset "name='IEC958 Playback Switch' on"
|
|
+ ]
|
|
|
|
- DisableSequence [
|
|
- cset "name='IEC958 Playback Switch' off"
|
|
- ]
|
|
+ DisableSequence [
|
|
+ cset "name='IEC958 Playback Switch' off"
|
|
+ ]
|
|
|
|
- Value {
|
|
- PlaybackPriority 500
|
|
- PlaybackPCM "hw:${CardId},3"
|
|
- JackControl "HDMI/DP,pcm=3 Jack"
|
|
+ Value {
|
|
+ PlaybackPriority 500
|
|
+ PlaybackPCM "hw:${CardId},3"
|
|
+ JackControl "HDMI/DP,pcm=3 Jack"
|
|
+ }
|
|
+ }
|
|
}
|
|
}
|
|
|
|
-SectionDevice."HDMI2" {
|
|
- Comment "HDMI2/DP2 Output"
|
|
+If.hdmi2 {
|
|
+ Condition {
|
|
+ Type ControlExists
|
|
+ Control "iface=CARD,name='HDMI/DP,pcm=4 Jack'"
|
|
+ }
|
|
+ True {
|
|
+ SectionDevice."HDMI2" {
|
|
+ Comment "HDMI2/DP2 Output"
|
|
|
|
- EnableSequence [
|
|
- cset "name='IEC958 Playback Switch',index=1 on"
|
|
- ]
|
|
+ EnableSequence [
|
|
+ cset "name='IEC958 Playback Switch',index=1 on"
|
|
+ ]
|
|
|
|
- DisableSequence [
|
|
- cset "name='IEC958 Playback Switch',index=1 off"
|
|
- ]
|
|
+ DisableSequence [
|
|
+ cset "name='IEC958 Playback Switch',index=1 off"
|
|
+ ]
|
|
|
|
- Value {
|
|
- PlaybackPriority 600
|
|
- PlaybackPCM "hw:${CardId},4"
|
|
- JackControl "HDMI/DP,pcm=4 Jack"
|
|
+ Value {
|
|
+ PlaybackPriority 600
|
|
+ PlaybackPCM "hw:${CardId},4"
|
|
+ JackControl "HDMI/DP,pcm=4 Jack"
|
|
+ }
|
|
+ }
|
|
}
|
|
}
|
|
|
|
-SectionDevice."HDMI3" {
|
|
- Comment "HDMI3/DP3 Output"
|
|
+If.hdmi3 {
|
|
+ Condition {
|
|
+ Type ControlExists
|
|
+ Control "iface=CARD,name='HDMI/DP,pcm=5 Jack'"
|
|
+ }
|
|
+ True {
|
|
+ SectionDevice."HDMI3" {
|
|
+ Comment "HDMI3/DP3 Output"
|
|
|
|
- EnableSequence [
|
|
- cset "name='IEC958 Playback Switch',index=2 on"
|
|
- ]
|
|
+ EnableSequence [
|
|
+ cset "name='IEC958 Playback Switch',index=2 on"
|
|
+ ]
|
|
|
|
- DisableSequence [
|
|
- cset "name='IEC958 Playback Switch',index=2 off"
|
|
- ]
|
|
+ DisableSequence [
|
|
+ cset "name='IEC958 Playback Switch',index=2 off"
|
|
+ ]
|
|
|
|
- Value {
|
|
- PlaybackPriority 700
|
|
- PlaybackPCM "hw:${CardId},5"
|
|
- JackControl "HDMI/DP,pcm=5 Jack"
|
|
+ Value {
|
|
+ PlaybackPriority 700
|
|
+ PlaybackPCM "hw:${CardId},5"
|
|
+ JackControl "HDMI/DP,pcm=5 Jack"
|
|
+ }
|
|
+ }
|
|
}
|
|
}
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From 76df616aa2fcae1cca1f948dac24c98a211c2593 Mon Sep 17 00:00:00 2001
|
|
From: Mateusz Gorski <mateusz.gorski@linux.intel.com>
|
|
Date: Wed, 18 Mar 2020 11:26:05 +0100
|
|
Subject: [PATCH 04/10] hda-dsp: add basic ucm config
|
|
|
|
Basic UCM configuration for Intel Skylake SST with HDA DSP generic
|
|
machine driver enabling codec playback and capture on both HDA codec
|
|
and DMIC ports.
|
|
|
|
Signed-off-by: Mateusz Gorski <mateusz.gorski@linux.intel.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/hda-dsp/Hdmi1.conf | 24 ++++++++++
|
|
ucm2/hda-dsp/Hdmi2.conf | 23 ++++++++++
|
|
ucm2/hda-dsp/HiFi.conf | 96 +++++++++++++++++++++++++++++++++++++++
|
|
ucm2/hda-dsp/hda-dsp.conf | 16 +++++++
|
|
4 files changed, 159 insertions(+)
|
|
create mode 100644 ucm2/hda-dsp/Hdmi1.conf
|
|
create mode 100644 ucm2/hda-dsp/Hdmi2.conf
|
|
create mode 100644 ucm2/hda-dsp/HiFi.conf
|
|
create mode 100644 ucm2/hda-dsp/hda-dsp.conf
|
|
|
|
diff --git a/ucm2/hda-dsp/Hdmi1.conf b/ucm2/hda-dsp/Hdmi1.conf
|
|
new file mode 100644
|
|
index 0000000..08fa5dd
|
|
--- /dev/null
|
|
+++ b/ucm2/hda-dsp/Hdmi1.conf
|
|
@@ -0,0 +1,24 @@
|
|
+# Usecase for device HDMI1/Display Port stereo playback on Intel cAVS platforms
|
|
+# For Audio in HDA mode
|
|
+
|
|
+SectionDevice."HDMI1" {
|
|
+ Comment "HDMI/Display Port 1 Stereo"
|
|
+
|
|
+ Value {
|
|
+ PlaybackPriority 300
|
|
+ PlaybackPCM "hw:${CardId},10"
|
|
+ If.1 {
|
|
+ Condition {
|
|
+ Type ControlExists
|
|
+ Control "iface=CARD,name='HDMI/DP,pcm=17 Jack'"
|
|
+ }
|
|
+ True {
|
|
+ JackControl "HDMI/DP,pcm=17 Jack"
|
|
+ }
|
|
+ False {
|
|
+ JackControl "HDMI/DP, pcm=17 Jack"
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
diff --git a/ucm2/hda-dsp/Hdmi2.conf b/ucm2/hda-dsp/Hdmi2.conf
|
|
new file mode 100644
|
|
index 0000000..eb168ea
|
|
--- /dev/null
|
|
+++ b/ucm2/hda-dsp/Hdmi2.conf
|
|
@@ -0,0 +1,23 @@
|
|
+# Usecase for device HDMI2/Display Port stereo playback on Intel cAVS platforms
|
|
+# For Audio in HDA mode
|
|
+
|
|
+SectionDevice."HDMI2" {
|
|
+ Comment "HDMI/Display Port 2 Stereo"
|
|
+
|
|
+ Value {
|
|
+ PlaybackPriority 400
|
|
+ PlaybackPCM "hw:${CardId},11"
|
|
+ If.1 {
|
|
+ Condition {
|
|
+ Type ControlExists
|
|
+ Control "iface=CARD,name='HDMI/DP,pcm=18 Jack'"
|
|
+ }
|
|
+ True {
|
|
+ JackControl "HDMI/DP,pcm=18 Jack"
|
|
+ }
|
|
+ False {
|
|
+ JackControl "HDMI/DP, pcm=18 Jack"
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff --git a/ucm2/hda-dsp/HiFi.conf b/ucm2/hda-dsp/HiFi.conf
|
|
new file mode 100644
|
|
index 0000000..cdeb215
|
|
--- /dev/null
|
|
+++ b/ucm2/hda-dsp/HiFi.conf
|
|
@@ -0,0 +1,96 @@
|
|
+# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC.
|
|
+# For Audio in HDA mode on Intel cAVS platforms
|
|
+
|
|
+SectionVerb {
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='mch_cap_out mo mch_cap_in mi Switch' 1"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ TQ "HiFi"
|
|
+ }
|
|
+}
|
|
+
|
|
+SectionDevice."Headphones" {
|
|
+ Comment "Headphones"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Speaker"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='Headphone Playback Switch' 1,1"
|
|
+ cset "name='Speaker Playback Switch' 0,0"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ PlaybackPriority 200
|
|
+ PlaybackPCM "hw:${CardId},7"
|
|
+ PlaybackMixerElem "Headphone"
|
|
+ PlaybackMasterElem "Master"
|
|
+ PlaybackVolume "Headphone Playback Volume"
|
|
+ PlaybackSwitch "Headphone Playback Switch"
|
|
+ JackControl "Front Headphone Jack"
|
|
+ JackHWMute "Speaker"
|
|
+ }
|
|
+}
|
|
+
|
|
+SectionDevice."Speaker" {
|
|
+ Comment "Speaker"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Headphones"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='Headphone Playback Switch' 0,0"
|
|
+ cset "name='Speaker Playback Switch' 1,1"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ PlaybackPriority 100
|
|
+ PlaybackPCM "hw:${CardId},7"
|
|
+ PlaybackMixerElem "Speaker"
|
|
+ PlaybackMasterElem "Master"
|
|
+ PlaybackVolume "Speaker Playback Volume"
|
|
+ PlaybackSwitch "Speaker Playback Switch"
|
|
+ }
|
|
+}
|
|
+
|
|
+SectionDevice."Headset" {
|
|
+ Comment "Headset Microphone"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Mic"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='media0_out mo codec0_in mi Switch' 1"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ CapturePriority 200
|
|
+ CapturePCM "hw:${CardId},7"
|
|
+ }
|
|
+}
|
|
+
|
|
+SectionDevice."Mic" {
|
|
+ Comment "Digital Microphone"
|
|
+
|
|
+ ConflictingDevice [
|
|
+ "Headset"
|
|
+ ]
|
|
+
|
|
+ EnableSequence [
|
|
+ cset "name='mch_cap_out mo mch_cap_in mi Switch' 1"
|
|
+ ]
|
|
+
|
|
+ Value {
|
|
+ CapturePriority 100
|
|
+ CapturePCM "hw:${CardId},13"
|
|
+ }
|
|
+}
|
|
+
|
|
+<hda-dsp/Hdmi1.conf>
|
|
+<hda-dsp/Hdmi2.conf>
|
|
diff --git a/ucm2/hda-dsp/hda-dsp.conf b/ucm2/hda-dsp/hda-dsp.conf
|
|
new file mode 100644
|
|
index 0000000..bf80b09
|
|
--- /dev/null
|
|
+++ b/ucm2/hda-dsp/hda-dsp.conf
|
|
@@ -0,0 +1,16 @@
|
|
+# UCM for Intel CAVS platforms
|
|
+# For Audio in HDA and DMIC mode
|
|
+
|
|
+Syntax 2
|
|
+
|
|
+SectionUseCase."HiFi" {
|
|
+ File "HiFi.conf"
|
|
+ Comment "Play HiFi quality Music"
|
|
+}
|
|
+
|
|
+SectionDefaults [
|
|
+ cset "name='Master Playback Switch' 1"
|
|
+ cset "name='codec0_out mo media0_in mi Switch' 1"
|
|
+ cset "name='media0_out mo codec0_in mi Switch' 1"
|
|
+ cset "name='mch_cap_out mo mch_cap_in mi Switch' 1"
|
|
+]
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From 340b8a1d6aaa164bc27bdb8811cc00d729ca2e45 Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Mon, 30 Mar 2020 16:51:45 +0200
|
|
Subject: [PATCH 05/10] update README files
|
|
|
|
- UCM validator
|
|
- UCM paths for ucm2/
|
|
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
README.md | 6 ++++++
|
|
ucm2/README.md | 34 +++++++++++++++++++++++++++++++---
|
|
2 files changed, 37 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/README.md b/README.md
|
|
index 574c93c..c5afd96 100644
|
|
--- a/README.md
|
|
+++ b/README.md
|
|
@@ -2,3 +2,9 @@
|
|
## ALSA Use Case Manager configuration
|
|
|
|
![Validate UCM configuration](https://github.com/alsa-project/alsa-ucm-conf/workflows/Validate%20UCM%20configuration/badge.svg?branch=master)
|
|
+
|
|
+The UCM configurations are automatically valited using the UCM validator
|
|
+available at https://github.com/alsa-project/alsa-tests/tree/master/python/ucm-validator .
|
|
+
|
|
+If you create a pull request for new hardware, please, add also the
|
|
+alsa-info.sh output to emulate this hardware in the UCM validator.
|
|
diff --git a/ucm2/README.md b/ucm2/README.md
|
|
index 3aefdf7..fc2a178 100644
|
|
--- a/ucm2/README.md
|
|
+++ b/ucm2/README.md
|
|
@@ -7,9 +7,37 @@ Library directories:
|
|
codecs/
|
|
dsps/
|
|
|
|
-Those directories are not inspected for the list of
|
|
-available UCM configurations. They contain files
|
|
-included from other UCMs.
|
|
+Those directories are not inspected for the list of available UCM
|
|
+configurations. They contain files included from other UCMs.
|
|
+
|
|
+UCM master configuration path lookup (by priority):
|
|
+
|
|
+- {ucm_card_name}/{long_card_name}.conf
|
|
+- {ucm_card_name}/{ucm_card_name}.conf
|
|
+- {driver_name}/{long_card_name}.conf
|
|
+- {driver_name}/{driver_name}.conf
|
|
+
|
|
+For example:
|
|
+
|
|
+- USB-Audio/Dell-WD15-Dock.conf
|
|
+-- special configuration for the Dell docking station with USB soundcard
|
|
+- TwoCardsMix/TwoCardsMix.conf
|
|
+-- virtual UCM from two soundcards
|
|
+
|
|
+Note: For the driver configurations, use always the real driver name
|
|
+not the ucm card name configuration paths!
|
|
+
|
|
+The driver name can be obtained using procfs like:
|
|
+
|
|
+````
|
|
+ cat /proc/asound/cards
|
|
+ 1 [NVidia ]: HDA-Intel - HDA NVidia
|
|
+ HDA NVidia at 0xb5080000 irq 17
|
|
+
|
|
+ driver name: HDA-Intel
|
|
+ card short name: HDA NVidia
|
|
+ card long name: HDA NVidia at 0xb5080000 irq 17
|
|
+````
|
|
|
|
Syntax, value names
|
|
-------------------
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From 85ca26a4f2b73888dbce3437a402df13faf628fa Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Sun, 5 Apr 2020 20:34:50 +0200
|
|
Subject: [PATCH 06/10] bytcr-rt5651: Fix dmic check in HiFi-Components.conf
|
|
|
|
The kernel sets cfg-mic:dmic not cfg-mic:dmic1 when a digital mic is
|
|
used. The wrong check for cfg-mic:dmic1 causes there to be no "Mic"
|
|
device at all, which causes the check for the ConflictingDevices section
|
|
of the HeadSet (mic) device to fail like e.g. so:
|
|
|
|
[hans@localhost ~]$ alsaucm -c bytcr-rt5651 set _verb HiFi set _enadev Speaker
|
|
ALSA lib parser.c:1138:(verb_dev_list_add) error: unable to find device 'Mic'
|
|
ALSA lib parser.c:1433:(parse_verb_file) error: device management error in verb 'HiFi'
|
|
ALSA lib main.c:962:(snd_use_case_mgr_open) error: failed to import bytcr-rt5651 use case configuration -2
|
|
alsaucm: error failed to open sound card bytcr-rt5651: No such file or directory
|
|
|
|
This commit fixes this.
|
|
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/bytcr-rt5651/HiFi-Components.conf | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/ucm2/bytcr-rt5651/HiFi-Components.conf b/ucm2/bytcr-rt5651/HiFi-Components.conf
|
|
index 53ebcbe..d0a573e 100644
|
|
--- a/ucm2/bytcr-rt5651/HiFi-Components.conf
|
|
+++ b/ucm2/bytcr-rt5651/HiFi-Components.conf
|
|
@@ -34,11 +34,11 @@ If.headphones {
|
|
}
|
|
}
|
|
|
|
-If.dmic1 {
|
|
+If.dmic {
|
|
Condition {
|
|
Type String
|
|
Haystack "${CardComponents}"
|
|
- Needle "cfg-mic:dmic1"
|
|
+ Needle "cfg-mic:dmic"
|
|
}
|
|
True {
|
|
<codecs/rt5651/DigitalMic.conf>
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From aaa86069ab721683afcf978b9291219855db42f1 Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Sun, 5 Apr 2020 20:34:51 +0200
|
|
Subject: [PATCH 07/10] chtrt5645: Add ASUSTeKCOMPUTERINC.-T100HAN-1.0 symlink
|
|
to chtrt5645-dmic1.conf
|
|
|
|
We already have a ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN symlink to
|
|
chtrt5645-dmic1.conf, but since kernel commit 39870b0dec68 ("ASoC: DMI long
|
|
name - avoid to add board name if matches with product name"), the kernel
|
|
omits the (second) -T100HAN. So with newer kernels that no longer works.
|
|
|
|
Arguably this is a kernel regressions, but chances are we already have
|
|
some configs depending on the new behavior, so lets fix this on the
|
|
UCM2 side by adding a second symlink using the new long name.
|
|
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/chtrt5645/ASUSTeKCOMPUTERINC.-T100HAN-1.0.conf | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
create mode 120000 ucm2/chtrt5645/ASUSTeKCOMPUTERINC.-T100HAN-1.0.conf
|
|
|
|
diff --git a/ucm2/chtrt5645/ASUSTeKCOMPUTERINC.-T100HAN-1.0.conf b/ucm2/chtrt5645/ASUSTeKCOMPUTERINC.-T100HAN-1.0.conf
|
|
new file mode 120000
|
|
index 0000000..b4d2816
|
|
--- /dev/null
|
|
+++ b/ucm2/chtrt5645/ASUSTeKCOMPUTERINC.-T100HAN-1.0.conf
|
|
@@ -0,0 +1 @@
|
|
+chtrt5645-dmic1.conf
|
|
\ No newline at end of file
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From 5ba4fd1dfca593248a603e5621bf2f53a4e2ddcc Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Sun, 5 Apr 2020 20:34:52 +0200
|
|
Subject: [PATCH 08/10] chtrt5645: Add MEDION-E1239TMD60568-0.1-Wingman.conf
|
|
symlink to chtrt5645-dmic2.conf
|
|
|
|
The Medion Akoya E1239T 2-in-1 uses a digital mic connected to the
|
|
dmic2 pin, rather then the default analog mic on in2.
|
|
|
|
Add a long name symlink to chtrt5645-dmic2.conf for this, so that
|
|
the right config is used.
|
|
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/chtrt5645/MEDION-E1239TMD60568-0.1-Wingman.conf | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
create mode 120000 ucm2/chtrt5645/MEDION-E1239TMD60568-0.1-Wingman.conf
|
|
|
|
diff --git a/ucm2/chtrt5645/MEDION-E1239TMD60568-0.1-Wingman.conf b/ucm2/chtrt5645/MEDION-E1239TMD60568-0.1-Wingman.conf
|
|
new file mode 120000
|
|
index 0000000..7823e31
|
|
--- /dev/null
|
|
+++ b/ucm2/chtrt5645/MEDION-E1239TMD60568-0.1-Wingman.conf
|
|
@@ -0,0 +1 @@
|
|
+chtrt5645-dmic2.conf
|
|
\ No newline at end of file
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From d0b1a426ba7cbfb34355a4101bb314ba288a6679 Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Sun, 5 Apr 2020 20:34:53 +0200
|
|
Subject: [PATCH 09/10] chtrt5645: Remove bogus JackHWMute settings
|
|
|
|
There is no reason why the internal microphone or speakers cannot
|
|
be used when a headset is plugged in.
|
|
|
|
The jack does not physically disconnect these, so the JackHWMute settings
|
|
are wrong, remove them.
|
|
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/chtrt5645/HiFi-dmic1.conf | 2 --
|
|
ucm2/chtrt5645/HiFi-dmic2.conf | 2 --
|
|
ucm2/chtrt5645/HiFi-mono-speaker-analog-mic.conf | 2 --
|
|
ucm2/chtrt5645/HiFi.conf | 2 --
|
|
4 files changed, 8 deletions(-)
|
|
|
|
diff --git a/ucm2/chtrt5645/HiFi-dmic1.conf b/ucm2/chtrt5645/HiFi-dmic1.conf
|
|
index 1a8ee0a..c7e12c9 100644
|
|
--- a/ucm2/chtrt5645/HiFi-dmic1.conf
|
|
+++ b/ucm2/chtrt5645/HiFi-dmic1.conf
|
|
@@ -50,7 +50,6 @@ SectionDevice."Headphones" {
|
|
PlaybackPriority 200
|
|
PlaybackPCM "hw:${CardId}"
|
|
JackControl "Headphone Jack"
|
|
- JackHWMute "Speaker"
|
|
}
|
|
|
|
ConflictingDevice [
|
|
@@ -96,7 +95,6 @@ SectionDevice."Headset" {
|
|
CapturePriority 200
|
|
CapturePCM "hw:${CardId}"
|
|
JackControl "Headset Mic Jack"
|
|
- JackHWMute "Mic"
|
|
}
|
|
|
|
EnableSequence [
|
|
diff --git a/ucm2/chtrt5645/HiFi-dmic2.conf b/ucm2/chtrt5645/HiFi-dmic2.conf
|
|
index d3f880a..95fedb3 100644
|
|
--- a/ucm2/chtrt5645/HiFi-dmic2.conf
|
|
+++ b/ucm2/chtrt5645/HiFi-dmic2.conf
|
|
@@ -50,7 +50,6 @@ SectionDevice."Headphones" {
|
|
PlaybackPriority 200
|
|
PlaybackPCM "hw:${CardId}"
|
|
JackControl "Headphone Jack"
|
|
- JackHWMute "Speaker"
|
|
}
|
|
|
|
ConflictingDevice [
|
|
@@ -98,7 +97,6 @@ SectionDevice."Headset" {
|
|
CapturePriority 200
|
|
CapturePCM "hw:${CardId}"
|
|
JackControl "Headset Mic Jack"
|
|
- JackHWMute "Mic"
|
|
}
|
|
|
|
EnableSequence [
|
|
diff --git a/ucm2/chtrt5645/HiFi-mono-speaker-analog-mic.conf b/ucm2/chtrt5645/HiFi-mono-speaker-analog-mic.conf
|
|
index db866cd..f6180a4 100644
|
|
--- a/ucm2/chtrt5645/HiFi-mono-speaker-analog-mic.conf
|
|
+++ b/ucm2/chtrt5645/HiFi-mono-speaker-analog-mic.conf
|
|
@@ -54,7 +54,6 @@ SectionDevice."Headphones" {
|
|
PlaybackPriority 200
|
|
PlaybackPCM "hw:${CardId}"
|
|
JackControl "Headphone Jack"
|
|
- JackHWMute "Speaker"
|
|
}
|
|
|
|
ConflictingDevice [
|
|
@@ -84,7 +83,6 @@ SectionDevice."Headset" {
|
|
CapturePriority 200
|
|
CapturePCM "hw:${CardId}"
|
|
JackControl "Headset Mic Jack"
|
|
- JackHWMute "Mic"
|
|
}
|
|
|
|
EnableSequence [
|
|
diff --git a/ucm2/chtrt5645/HiFi.conf b/ucm2/chtrt5645/HiFi.conf
|
|
index 58468a8..116d456 100644
|
|
--- a/ucm2/chtrt5645/HiFi.conf
|
|
+++ b/ucm2/chtrt5645/HiFi.conf
|
|
@@ -50,7 +50,6 @@ SectionDevice."Headphones" {
|
|
PlaybackPriority 200
|
|
PlaybackPCM "hw:${CardId}"
|
|
JackControl "Headphone Jack"
|
|
- JackHWMute "Speaker"
|
|
}
|
|
|
|
ConflictingDevice [
|
|
@@ -76,7 +75,6 @@ SectionDevice."Headset" {
|
|
CapturePriority 200
|
|
CapturePCM "hw:${CardId}"
|
|
JackControl "Headset Mic Jack"
|
|
- JackHWMute "Mic"
|
|
}
|
|
|
|
EnableSequence [
|
|
--
|
|
2.25.1
|
|
|
|
|
|
From 907c8309b2ee671e1b36630b0d29db1bc3124990 Mon Sep 17 00:00:00 2001
|
|
From: Jaroslav Kysela <perex@perex.cz>
|
|
Date: Mon, 6 Apr 2020 17:37:20 +0200
|
|
Subject: [PATCH 10/10] sof-hda-dsp: change Headphones2 to Mic2
|
|
|
|
Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/19
|
|
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
ucm2/sof-hda-dsp/HiFi.conf | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/ucm2/sof-hda-dsp/HiFi.conf b/ucm2/sof-hda-dsp/HiFi.conf
|
|
index 60a8693..9a82930 100644
|
|
--- a/ucm2/sof-hda-dsp/HiFi.conf
|
|
+++ b/ucm2/sof-hda-dsp/HiFi.conf
|
|
@@ -6,7 +6,7 @@ SectionVerb {
|
|
]
|
|
}
|
|
|
|
-SectionDevice."Headphones1" {
|
|
+SectionDevice."Headphones" {
|
|
Comment "Headphones"
|
|
|
|
EnableSequence [
|
|
@@ -85,9 +85,9 @@ If.monomic {
|
|
Control "name='Input Source'"
|
|
ControlEnum "Headphone Mic"
|
|
}
|
|
- After.SectionDevice "Mic"
|
|
+ After.SectionDevice "Mic1"
|
|
True {
|
|
- SectionDevice."Headphones2" {
|
|
+ SectionDevice."Mic2" {
|
|
Comment "Headphones Stereo Microphone"
|
|
|
|
ConflictingDevice [
|
|
@@ -120,7 +120,7 @@ If.monomic {
|
|
}
|
|
}
|
|
False {
|
|
- SectionDevice."Headphones2" {
|
|
+ SectionDevice."Mic2" {
|
|
Comment "Headphones Stereo Microphone"
|
|
|
|
Value {
|
|
@@ -132,7 +132,7 @@ If.monomic {
|
|
}
|
|
}
|
|
|
|
-SectionDevice."Mic" {
|
|
+SectionDevice."Mic1" {
|
|
Comment "Digital Microphone"
|
|
|
|
Value {
|
|
--
|
|
2.25.1
|
|
|