From: Takashi Iwai <tiwai@suse.de>
To: "Jérémy Bethmont" <jeremy.bethmont@gmail.com>
Cc: Kailang Yang <kailang@realtek.com>,
alsa-devel@alsa-project.org, regressions@lists.linux.dev,
regressions@leemhuis.info
Subject: Re: [REGRESSION] Audio popping on ThinkPad X1 Carbon Gen 12 (ALC287) after commit d2e01e0c5e94
Date: Tue, 10 Mar 2026 07:47:46 +0100 [thread overview]
Message-ID: <87a4wgrxil.wl-tiwai@suse.de> (raw)
In-Reply-To: <CAC88DfsHrhyhy0Pn1O-z9egBvMYu=6NYgcvcC6KCgwh_-Ldkxg@mail.gmail.com>
On Tue, 10 Mar 2026 01:01:11 +0100,
Jérémy Bethmont wrote:
>
> Hi Takashi, Kailang,
>
> I am reporting an audio regression introduced in kernel 6.18.13 on the
> Lenovo ThinkPad X1 Carbon Gen 12 (Meteor Lake, Realtek ALC287 codec,
> SSID: 0x17aa231e).
>
> Since this update, the laptop emits a short, noticeable hardware
> pop/blip from the speakers exactly when an audio stream closes and the
> PCM state suspends. It happens consistently a few seconds after
> playback finishes (e.g., after a system notification or terminal
> bell).
>
> I have tracked the regression down to the following commit:
> d2e01e0c5e947da0b5005ca89efa82baeb232adc ("ALSA: hda/realtek - fixed
> speaker no sound")
>
> #regzbot introduced: d2e01e0c5e947da0b5005ca89efa82baeb232adc
>
> Root cause analysis:
> The commit modifies the `alc287_alc1318_playback_pcm_hook` function,
> adding raw COEF writes to disable/enable AMP silence detection on
> HDA_GEN_PCM_ACT_OPEN and HDA_GEN_PCM_ACT_CLOSE.
>
> Because `alc287_alc1318_playback_pcm_hook` is a shared hook used by
> multiple Lenovo ALC287/ALC1318 devices, these unconditional
> `WRITE_COEF` instructions are being sent to hardware that does not
> need the silence detection fix. On the X1 Carbon Gen 12, executing
> `alc_process_coef_fw(codec, en_coefs)` upon stream close triggers an
> immediate electrical pop. Monitoring with `pw-mon` confirms the
> hardware pop coincides perfectly with the monitor_FR / monitor_FL
> ports going idle/suspended.
>
> Proposed solution:
> Could we revert this commit, or alternatively, wrap these specific
> silence-detection COEF writes in a targeted `ALC287_FIXUP` quirk
> matched via SSID/DMI, rather than executing them globally in the
> shared playback hook?
Could you give alsa-info.sh output? Run the script with --no-upload
option and attach the output.
I guess the bug might not be specific to your device but happening in
general with all matching ones. As a workaround for such a pop noise,
we often need to reorder verbs or put some delay between verbs.
Takashi
next prev parent reply other threads:[~2026-03-10 6:48 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 0:01 [REGRESSION] Audio popping on ThinkPad X1 Carbon Gen 12 (ALC287) after commit d2e01e0c5e94 Jérémy Bethmont
2026-03-10 6:47 ` Takashi Iwai [this message]
2026-03-10 8:24 ` Jérémy Bethmont
2026-03-10 8:32 ` Takashi Iwai
2026-03-10 9:40 ` Jérémy Bethmont
2026-04-13 9:16 ` Kailang
2026-04-14 6:37 ` Jérémy Bethmont
2026-04-14 6:43 ` Kailang
2026-04-14 7:23 ` Jérémy Bethmont
2026-04-14 7:39 ` Takashi Iwai
2026-04-14 7:57 ` Kailang
2026-04-14 8:14 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a4wgrxil.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=jeremy.bethmont@gmail.com \
--cc=kailang@realtek.com \
--cc=regressions@leemhuis.info \
--cc=regressions@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.