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
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.
0x10ec0256 0x10251300 0
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!