@@ -16,6 +16,15 @@ If.mono {
True.Define.HaveSpeaker "1"
}
+If.hp2 {
+ Condition {
+ Type String
+ Haystack "${CardComponents}"
+ Needle "cfg-hp2:lineout"
+ }
+ True.Define.HaveHeadPhones2 "yes"
+}
+
If.dmic1 {
Condition {
Type String
@@ -2,6 +2,7 @@
Define.HaveAif ""
Define.HaveSpeaker ""
+Define.HaveHeadPhones2 ""
Define.HaveInternalMic ""
Define.HaveHeadsetMic "yes"
Define.StereoADC2Mux "DMIC1"
@@ -116,6 +117,23 @@ If.hp {
}
}
+If.hp2 {
+ Condition { Type String Empty "${var:HaveHeadPhones2}" }
+ False {
+ Include.hs.File "/codecs/rt5640/HeadPhones2.conf"
+
+ SectionDevice."Headphones2" {
+ EnableSequence [
+ cset "name='Line Out Switch' on"
+ ]
+
+ DisableSequence [
+ cset "name='Line Out Switch' off"
+ ]
+ }
+ }
+}
+
If.dmic {
Condition {
Type String
new file mode 100644
@@ -0,0 +1,46 @@
+# The 2nd headset jack uses lineout with an external HP-amp
+
+SectionDevice."Headphones2" {
+ Comment "Headphones 2"
+
+ ConflictingDevice [
+ "Speaker"
+ "Headphones"
+ ]
+
+ EnableSequence [
+ cset "name='LOUT MIX OUTVOL L Switch' on"
+ cset "name='LOUT MIX OUTVOL R Switch' on"
+ cset "name='OUT Channel Switch' on"
+ ]
+
+ DisableSequence [
+ cset "name='LOUT MIX OUTVOL L Switch' off"
+ cset "name='LOUT MIX OUTVOL R Switch' off"
+ cset "name='OUT Channel Switch' off"
+ ]
+
+ Value {
+ PlaybackPriority 400
+ PlaybackPCM "hw:${CardId}"
+ JackControl "Line Out Jack"
+ PlaybackMixerElem "OUT"
+ PlaybackVolume "OUT Playback Volume"
+ If.HpAif1 {
+ Condition {
+ Type String
+ String1 "${var:HaveAif}"
+ String2 "1"
+ }
+ True.PlaybackMasterElem "DAC1"
+ }
+ If.HpAif2 {
+ Condition {
+ Type String
+ String1 "${var:HaveAif}"
+ String2 "2"
+ }
+ True.PlaybackMasterElem "DAC2"
+ }
+ }
+}
Some devices (HP Elitepad 1000 G2) have a second headphones output (1 on the dock, 2nd on the tablet itself) which is implemented through the line-out output of the codec combined with an external hp-amp. The kernel has recently gotten support for this setup and will advertise this to userspace by adding cfg-hp2:lineout to the components string, add support for this. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- ucm2/bytcr-rt5640/HiFi-Components.conf | 9 +++++ ucm2/bytcr-rt5640/HiFi.conf | 18 ++++++++++ ucm2/codecs/rt5640/HeadPhones2.conf | 46 ++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 ucm2/codecs/rt5640/HeadPhones2.conf