Good news, everyone! There exists a predefined quirk in the linux kernel that we can as of version 5.15 apply to our laptops that will automatically manage the muting and unmuting of the LFE properly. For older kernel versions you'll have to use the old solution below (or patch and build the kernel driver yourself). We just have to create/edit the following files:
/lib/firmware/hda-jack-retask.fw
/etc/modprobe.d/hda-jack-retask.conf
first off the hda-jack-retask.fw
file should contain the following:
[codec]
0x10ec0235 0x17aa3826 0
[model]
103c:86c7
[pincfg]
0x17 0x90170111
There's a chance your subsystem id is different, the id can be found using cat /sys/class/sound/hwC0D0/subsystem_id
Now we simply have to apply this patch by putting the following in hda-jack-retask.conf
:
options snd-hda-intel patch=hda-jack-retask.fw
DONE! That's it. 2.1 output and no more popping like in the old solution even with power save enabled.
Details on the patch format can be found here https://www.kernel.org/doc/html/latest/sound/hd-audio/notes.html
If you're curious what quirk is applied search for ALC274_FIXUP_HP_ENVY_GPIO
in sound/pci/hda/patch_realtek.c
in the kernel source code.
You might still want to look into any upmixning in PulseAudio/PipeWire or what have you. Using a Stereo profile and EasyEffects as mentioned at the bottom of the old solution is still the simplest solution I've found so far. Check out the comments for EasyEffects configs from other users.
---OLD SOLUTION---
A little while ago I finally figured out how to get the LFE working on my y700 laptop.
If you've already messed with hdajackretask
you just have to slightly modify the following two files:
/lib/firmware/hda-jack-retask.fw
/etc/modprobe.d/hda-jack-retask.conf
first off the hda-jack-retask.fw
file should look something like this:
[codec]
0x10ec0235 0x17aa3826 0
[pincfg]
0x17 0x90170111
[verb]
0x01 0x0716 0x04
0x01 0x0717 0x04
0x01 0x0715 0x04
the pincfg
section assigns LFE to node 0x17. The verb
section enables GPIO pin 2 on the Realtek chip and disables the external mute circuit.
This is enought to get the LFE working BUT because the external mute circuit is permanently off
every time the driver module enters and exits power saving mode there will be a loud pop,
this needs to be fixed in the actual driver module but we can circumvent it for now by disabling
power saving in the hda-jack-retask.conf
file like so:
options snd-hda-intel power_save=0 power_save_controller=N patch=hda-jack-retask.fw
Note that there will still be a pop at boot/shutdown and suspend/resume. That is all I had to do to get everything working, any and all feedback is appreciated.
I'll add my PulseEffects EasyEffects profile below, it improves the sound quality a bit, it's not as good as on windows but it's something.
Just make sure the profile selected for the sound card in PulseAudio is a "Stereo" profile and not a "2.1" one.
It works like a charm ! on my side there were a lot of "pincfg" entry. after some tests if i remove these lines and just add the 0x17 the sound is so weird. So, i've only updated the existing 0x17 0x90170150 line to 0x17 0x90170151 and added the "verb" section and it works perfectly.
Thanks for the trick !