Bug 198611 - Realtek ALC3232 codec glitches on X1 Carbon 3rd Gen headphone output
Summary: Realtek ALC3232 codec glitches on X1 Carbon 3rd Gen headphone output
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Sound(ALSA) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Jaroslav Kysela
Depends on:
Reported: 2018-01-30 12:24 UTC by Benjamin Berg
Modified: 2018-06-13 09:33 UTC (History)
1 user (show)

See Also:
Kernel Version: 4.15.0
Regression: No
Bisected commit-id:

alsa-info from X1 Carbon 3rd gen (43.93 KB, text/plain)
2018-06-13 09:33 UTC, Benjamin Berg

Description Benjamin Berg 2018-01-30 12:24:14 UTC
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.
Comment 1 Hans de Goede 2018-02-08 10:02:29 UTC
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.
Comment 2 Hans de Goede 2018-02-08 10:59:32 UTC

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.


Comment 3 Hans de Goede 2018-02-08 11:00:57 UTC
Note looking closer, this looks like a promising fix.
Comment 4 Benjamin Berg 2018-02-13 09:49:30 UTC
Unfortunately the fixup doesn't work. I did verify that the fixup is being applied.
Comment 5 Hans de Goede 2018-02-13 14:10:31 UTC
Bummer, can you try the ALC292_FIXUP_TPT460 quirk instead?
Comment 6 Hans de Goede 2018-02-13 14:20:22 UTC
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...
Comment 7 Hans de Goede 2018-02-13 14:22:17 UTC
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.
Comment 8 Benjamin Berg 2018-02-13 17:31:32 UTC
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.
Comment 9 Hans de Goede 2018-02-22 12:03:47 UTC
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:

alsa-info.sh --no-upload

And attach the generated file here?
Comment 10 Benjamin Berg 2018-06-13 09:33:57 UTC
Created attachment 276527 [details]
alsa-info from X1 Carbon 3rd gen

Note You need to log in before you can comment on or make changes to this bug.