With audio codec autosuspend enabled there are frequent glitches on the X1 Carbon 3rd generation headphone output.
I also observe glitches when inserting/removing the headphone. On rare occasions I was also able to trigger a situation where the headphones were playing back noise after being plugged in.
FYI: I've submitted a pull-req to systemd implementing a hwdb based blacklist for models like the X1 3d gen where CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 is causing issues. The initial hwdb-file for this contains an entry for the X1 3d gen:
Note this is meant as a temporary workaround, hopefully we can figure out a proper fix for this.
Can you try building a kernel with: sound/pci/hda/patch_realtek.c
modified to contain an entry for the "Thinkpad X1 Carbon 3th" pointing to the ALC292_FIXUP_TPT440_DOCK quirk, perhaps that will help?
As you know the subsys pci-ids are: 0x17aa, 0x2227.
Note looking closer, this looks like a promising fix.
Unfortunately the fixup doesn't work. I did verify that the fixup is being applied.
Bummer, can you try the ALC292_FIXUP_TPT460 quirk instead?
Hmm, ok so there are 3 candidates:
1) TPT440_DOCK, which you tested
2) TPT440, this is TPT440_DOCK plus a fix for some whitenoise on the speakers
3) TPT460, this is TPT440 minus a fix forthe microphone input having a too hi gain (so quickly distorting I guess)
Note the X1 Carbon 3th gen quite likely needs one of these 3 anyways, even if it does not fix the headphones problem with powersaving. Would be good to figure out which one though...
Thinking more about this, I would try TPT440 and if that works better then TPTP440_DOCK, we want TPT440 or TPTP460. Then try the microphone and if the microphone is a bit soft, try if TPT460 fixes this.
I had actually tried TPT440 after TPT440_DOCK as I was recompiling the module anyway to check that the fixup was being applied. But as I understand, this might just help with the rare whitenoise issue (which is hard to verify).
Looking closer, the TPT440 microphone gain fixup is required on the X1 Carbon 3rd Gen., so TPT460 is useless for this machine.
I am currently testing with
while sleep 1; do echo auto >control ; sleep 1.5; echo on >control ; done
and checking whether I can hear anything.
Benjamin, I've a request from the upstream kernel ALSA maintainers, in order to debug this further they need alsa-info.sh output, can you please run:
And attach the generated file here?
Created attachment 276527 [details]
alsa-info from X1 Carbon 3rd gen