@@ -26,5 +26,21 @@ SectionDevice."Mic" {
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
+ If.DmicAif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ CaptureMixerElem "ADC"
+ CaptureVolume "ADC Capture Volume"
+ CaptureSwitch "ADC Capture Switch"
+ }
+ }
+ If.DmicAif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ CaptureMixerElem "Mono ADC"
+ CaptureVolume "Mono ADC Capture Volume"
+ CaptureSwitch "Mono ADC Capture Switch"
+ }
+ }
}
}
@@ -37,5 +37,17 @@ SectionDevice."Headphones" {
JackControl "Headphone Jack"
PlaybackMixerElem "HP"
PlaybackVolume "HP Playback Volume"
+ If.HpAif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ PlaybackMasterElem "DAC1"
+ }
+ }
+ If.HpAif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ PlaybackMasterElem "DAC2"
+ }
+ }
}
}
@@ -43,5 +43,17 @@ SectionDevice."Headset" {
JackControl "Headset Mic Jack"
CaptureMixerElem "IN2 Boost"
CaptureVolume "IN2 Boost"
+ If.HSmicAif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ CaptureMasterElem "ADC"
+ }
+ }
+ If.HSmicAif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ CaptureMasterElem "Mono ADC"
+ }
+ }
}
}
@@ -34,5 +34,17 @@ SectionDevice."Mic" {
CapturePCM "hw:${CardId}"
CaptureMixerElem "IN1 Boost"
CaptureVolume "IN1 Boost"
+ If.In1Aif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ CaptureMasterElem "ADC"
+ }
+ }
+ If.In1Aif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ CaptureMasterElem "Mono ADC"
+ }
+ }
}
}
@@ -34,5 +34,17 @@ SectionDevice."Mic" {
CapturePCM "hw:${CardId}"
CaptureMixerElem "IN3 Boost"
CaptureVolume "IN3 Boost"
+ If.In3Aif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ CaptureMasterElem "ADC"
+ }
+ }
+ If.In3Aif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ CaptureMasterElem "Mono ADC"
+ }
+ }
}
}
@@ -31,5 +31,17 @@ SectionDevice."Speaker" {
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Speaker"
PlaybackVolume "Speaker Playback Volume"
+ If.MonoSpkAif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ PlaybackMasterElem "DAC1"
+ }
+ }
+ If.MonoSpkAif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ PlaybackMasterElem "DAC2"
+ }
+ }
}
}
@@ -31,5 +31,17 @@ SectionDevice."Speaker" {
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Speaker"
PlaybackVolume "Speaker Playback Volume"
+ If.SpkAif1 {
+ Condition { Type String Empty "${var:HaveAif1}" }
+ False {
+ PlaybackMasterElem "DAC1"
+ }
+ }
+ If.SpkAif2 {
+ Condition { Type String Empty "${var:HaveAif2}" }
+ False {
+ PlaybackMasterElem "DAC2"
+ }
+ }
}
}
Specify the correct Playback/CaptureMasterElem for HW volume-control, based on which AIF is being used. On older kernels, where there is no "aif:%d" string in the components string, no Playback/CaptureMasterElem is specified. In DigitalMics.conf the master mixer is used as regular CaptureMixerElem instead of as CaptureMasterElem since the DMICs don't have any analog volume control. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- ucm2/codecs/rt5640/DigitalMics.conf | 16 ++++++++++++++++ ucm2/codecs/rt5640/HeadPhones.conf | 12 ++++++++++++ ucm2/codecs/rt5640/HeadsetMic.conf | 12 ++++++++++++ ucm2/codecs/rt5640/IN1-InternalMic.conf | 12 ++++++++++++ ucm2/codecs/rt5640/IN3-InternalMic.conf | 12 ++++++++++++ ucm2/codecs/rt5640/MonoSpeaker.conf | 12 ++++++++++++ ucm2/codecs/rt5640/Speaker.conf | 12 ++++++++++++ 7 files changed, 88 insertions(+)