Repository navigation
Description
Summary
On a Lenovo Yoga 7 2-in-1 14IML9 (Meteor Lake, ALC287), the internal speakers give an audible click/pop when audio starts after the device has runtime-suspended. It is most noticeable when only the DMIC is opened (e.g. starting voice dictation), with nothing playing: opening a DMIC capture resumes the controller, which also resumes the ALC287 codec and powers up the speaker path.
The click is intermittent from the user's point of view only because it requires the device to be runtime-suspended first. If audio was used within the last couple of seconds, there is no click.
The codec has no model-specific quirk for this subsystem ID: the driver logs ALC287: picked fixup (pin match) with an empty fixup name, so the generic power-up sequencing is used.
Hardware / software
| Machine | Lenovo Yoga 7 2-in-1 14IML9 (83DJ), BIOS NWCN24WW, board LNVNB161216 |
| CPU | Intel Core Ultra 7 155H (Meteor Lake-P) |
| Codec | Realtek ALC287, vendor 0x10ec0287, subsystem 0x17aa38db, rev 0x100002 |
| Driver | sof-audio-pci-intel-mtl, machine driver skl_hda_dsp_generic, DMIC x2 (NHLT) |
| Firmware | intel/sof-ipc4/mtl/sof-mtl.ri, booted version 2.15.0.1 (sof-firmware 2026.09.2) |
| Topology | intel/sof-ipc4-tplg/sof-hda-generic-2ch.tplg (ABI 3:29:1, kernel ABI 3:23:1) |
| Kernel | 7.2.15 (Arch-based distro kernel) |
| Userspace | PipeWire / WirePlumber 1.6.9, alsa-ucm-conf 1.2.16.1 |
Runtime PM is at defaults: PCI device 0000:00:1f.3 control=auto, autosuspend_delay_ms=2000; codec ehdaudio0D0 control=auto, autosuspend_delay_ms=1000.
Boot log:
snd_hda_codec_alc269 ehdaudio0D0: ALC287: picked fixup (pin match)
snd_hda_codec_alc269 ehdaudio0D0: autoconfig for ALC287: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
snd_hda_codec_alc269 ehdaudio0D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
snd_hda_codec_alc269 ehdaudio0D0: Mic=0x19
Steps to reproduce
- Leave audio idle until both the PCI device and
ehdaudio0D0aresuspended. - Open a capture on the DMIC only, nothing playing:
pw-record --target alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source out.wav - A click is heard from the internal speakers.
Polling runtime_status every 50 ms during a 2 s DMIC-only capture:
t=0ms pci=suspended alc287=suspended
t=100ms pci=resuming alc287=suspended
t=200ms pci=active alc287=active <- speaker codec resumed, though only DMIC is in use
t=1250ms pci=active alc287=suspended
Nothing is logged in the kernel log during the transition.
Expected
No audible click from the speakers when the device resumes, and ideally the ALC287 codec should not need to resume at all for a DMIC-only capture.
Notes
- I haven't yet separated whether the click is on codec resume, codec suspend, or both. The resume at ~200 ms matches when it is heard.
- Setting
ehdaudio0D0/power/controltoonis the obvious workaround, but it keeps the DSP and controller out of runtime suspend permanently. That is a poor trade on a laptop, so I'd prefer a sequencing fix (e.g. a model quirk for17aa:38db), or avoiding the codec resume for DMIC-only streams. - Happy to test patches or gather
alsa-info.shoutput / SOF debug logs.
Activity