On the Lenovo Yoga Tab 3 YT3-X90 the speaker amplifiers are connected
to the HPOUT2 output pins instead of the the SPK output pins.
Check for "cfg-spk:hpout2" in the components string which indicates
this setup and add a ucm2/codecs/wm5102/HPOut2-Speaker.conf file
for this setup.
Link: https://lore.kernel.org/alsa-devel/20231021211614.115152-1-hdegoede@redhat.com/
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
}
}
-Include.spk.File "/codecs/wm5102/Speaker.conf"
+If.spk {
+ Condition {
+ Type String
+ Haystack "${CardComponents}"
+ Needle "cfg-spk:hpout2"
+ }
+ True.Include.hpout2.File "/codecs/wm5102/HPOut2-Speaker.conf"
+ False.Include.spk.File "/codecs/wm5102/Speaker.conf"
+}
+
Include.hp.File "/codecs/wm5102/HeadPhones.conf"
Include.mic.File "/codecs/wm5102/IN3-InternalMic.conf"
Include.headset.File "/codecs/wm5102/IN1-HeadsetMic.conf"
cset "name='SPKOUTR Input 1' AIF1RX2"
cset "name='HPOUT1L Input 1' AIF1RX1"
cset "name='HPOUT1R Input 1' AIF1RX2"
+ cset "name='HPOUT2L Input 1' AIF1RX1"
+ cset "name='HPOUT2R Input 1' AIF1RX2"
# Both mics are quite soft by default, boost then
cset "name='IN1L Volume' 28"
--- /dev/null
+SectionDevice."Speaker" {
+ Comment "Speakers"
+
+ Value {
+ PlaybackPriority 100
+ PlaybackPCM "hw:${CardId}"
+ }
+
+ ConflictingDevice [
+ "Headphones"
+ ]
+
+ EnableSequence [
+ cset "name='HPOUT2 Digital Switch' on"
+ cset "name='Speaker Switch' on"
+ ]
+
+ DisableSequence [
+ cset "name='HPOUT2 Digital Switch' off"
+ cset "name='Speaker Switch' off"
+ ]
+}