
At Sun, 3 May 2015 23:27:46 +0200, Simon Derr wrote:
Hello,
I have made some progress.
First I may have been mistaken when I thought that the external mic was working. Further testing makes me think that it was actually the internal mic picking up sound while the headset was connected. But that's not really an issue for me, since I am mostly interested in the internal mic.
Now, I have used ftrace to trace what was going on when I plugged the headset while using dell-headset-multi. This allowed me to write a patchfile that I can load using
modprobe snd-hda-intel patch=,my-hda-patch.fw
With the contents of /lib/firmware/my-hda-patch.fw being as follows:
[codec] 0x10ec0233 0x1043124f 0
[verb] 0x20 0x500 0x45 0x20 0x4c4 0x29 0x20 0x500 0x35 0x20 0xc00 0x00 0x20 0x500 0x35 0x20 0x46f 0x3e 0x20 0x500 0x06 0x20 0x421 0x00 0x20 0x500 0x1a 0x20 0x400 0x21 0x20 0x500 0x26 0x20 0x400 0x8c
Using this, my internal mic works, and keeps working after suspend/resume.
Maybe the pin setup for Dell multi headset doesn't match with yours. There are a few other headset quirks, but they aren't exposed as selectable via model option. You need to patch the kernel.
For example, below is to use ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC for your device. Does it work better?
Takashi
--- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2542b15ae343..955bb7710c14 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5139,6 +5139,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x1043, 0x124f, "ASUS S551", ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),