EDIT: Kernels 5.14-rc5 onwards, 5.13.10 onwards, 5.10.58 onwards have the following fix already applied, enjoy :D
So! Just made my headset microphone work on my Acer SF314-56 on Ubuntu 21.04. Happy happy happy :)
Looks like when you are using SOF driver the options snd-hda-intel ...
over at /etc/modprobe.d/*
have no effect. Thus (from my understanding) why HDAJackRetask won't help.
Also! Checkout this out! As 5.14-rc1 there is no patch for our lovely SF314-56.. hmmm...
So based on these findings here is the fix...
For custom-kernel people that is easy: Just add the following line and compile.
SND_PCI_QUIRK(0x1025, 0x1300, "Acer SWIFT SF314-56", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
over at struct snd_pci_quirk alc269_fixup_tbl[]
at sound/pci/hda/patch_realtek.c
. For the brave ones that don't know how-to compile a custom kernel but willing to here is a cool guide. If you are using secureboot then you gotta also sign it. If you are using ZFS then iirc you also need zfs-dkms.
For people who aren't willing to compile a custom-kernel nor have a time machine or just want to experiment fast on some other device
Then you gotta disable SOF and rollback to legacy driver in order to make options snd-hda-intel ...
have effect, however! this results with disabling DMIC. So add options snd-intel-dspcfg dsp_driver=1
to /etc/modprobe.d/alsa-base.conf
.
Afterwards you gotta create a patch over at /lib/firmware/
, lets name it alc256-sound-patch.fw
. Based on this documentation and the observation over at /sound/pci/hda/patch_realtek.c
that device Acer TravelMate B311R-3
has the patch we need we paste the following code. If you are using some other device this is a place for some experimentation.
[codec]
0x10ec0256 0x10251300 0
[subsystem_id]
0x10251430
Finally enable the patch by also adding options snd-hda-intel patch=alc256-sound-patch.fw
to /etc/modprobe.d/alsa-base.conf
. Then restart.
If you want also add options snd-hda-codec dyndbg=+p
in order to have some more info over at dmesg.
If anyone know how to use options snd-hda-intel
with SOF please let us know how-to!