You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Internal DMIC dead with default topology; works with PDM1 variant (Xiaomi Redmi Book 16 2025, TM2415) #5894
The internal digital microphones appear as a working capture device
(skl_hda_dsp_generic.HiFi__Mic1__source, PCM6), but capture yields no acoustic data:
a full-scale (32768) pop at stream open, then only a noise floor around ±52 LSB (~-56 dBFS).
Per-second analysis of a 6 s recording from the DMIC source:
sec0: peak=32768 <- stream-open pop
sec1..4: peak<=52 <- noise floor, zero acoustic content
The analog path is a red herring on this machine: the ALC256 autoconfig input
(Mic=0x19) is the external headset-jack mic only; the internal mics are not wired to
any codec pin. Booting legacy HDA (snd_intel_dspcfg.dsp_driver=1) exposes just the
headset jack and confirms there is no codec-side internal microphone.
Workaround (verified)
Selecting the PDM1 variant of the same topology makes the array work immediately:
After this, the same DMIC source captures real audio (speech peaks up to full scale,
healthy RMS in every second of the recording).
Root cause hypothesis
The physical DMIC array on this board is wired to PDM1, while sof-hda-generic-2ch (chosen by the dmic-count heuristic from NHLT) wires its DMIC
pipeline to PDM0. The NHLT blob apparently does not carry usable PDM-port
information for the topology chooser, so the wrong variant is picked.
Possible upstream directions:
honor NHLT DMIC link/PDM details when selecting the generic topology
(e.g., extend the sof_use_tplg_nhlt path), or
add a platform quirk for TM2415 / subsystem 1d72:2415.
Happy to test patches or collect additional debug info (NHLT dump, sof-logger trace,
alsa-info) on request.
Thank you @mpa3b for the report. I think this is first such case with a dmic connected to PDM1 on a HDA product, so we have no existing quirk mechanism in upstream kernel for this. We do have multiple I2S codec based products, but for HDA, some new quirk functionality is needed to Linux kernel side.
UPDATE: edit, actually, not first, there was this #4099
And please provide output of "sudo dmidecode -t system".
You might need to fix the DMI match strings in the patch (they need to match exactly) to match dmidecode output.
Activity
kv2019i commentedon Aug 25, 2026
Thank you @mpa3b for the report. I think this is first such case with a dmic connected to PDM1 on a HDA product, so we have no existing quirk mechanism in upstream kernel for this. We do have multiple I2S codec based products, but for HDA, some new quirk functionality is needed to Linux kernel side.
UPDATE: edit, actually, not first, there was this #4099
kv2019i commentedon Aug 25, 2026
@mpa3b Can you try the patch at #5895 ?
And please provide output of "sudo dmidecode -t system".
You might need to fix the DMI match strings in the patch (they need to match exactly) to match dmidecode output.
ASoC: SOF: Intel: hda: add quirk for Xiaomi Redmi Book 16 with PDM1 dmic
bardliao commentedon Aug 28, 2026
@mpa3b Can you try
options snd_sof feature_topologies=sof-hda-generic-2ch-pdm1.tplg?