Skip to content

Internal microphone not working on Xiaomi RedmiBook 16 2025 (AMD, Ryzen 7 7735H) #5860

Description

Summary

The internal microphone does not produce any audio input on Linux. The laptop
uses an AMD Ryzen 7 7735H (Rembrandt/Rembrandt-R) SoC with a Conexant SN6140
HD-Audio codec and an AMD ACP6x audio coprocessor. On the same hardware, the
internal microphone works correctly under Windows (OEM driver), which
suggests this is a Linux driver/quirk gap rather than a hardware fault.

System information

  • Laptop model: Xiaomi RedmiBook 16 2025 (AMD)
  • dmidecode -s system-product-name: REDMI Book 16 2025(AMD)
  • dmidecode -s baseboard-product-name: TM2423
  • dmidecode -s baseboard-manufacturer: XIAOMI
  • CPU/APU: AMD Ryzen 7 7735H
  • Kernel tested: 7.0.14-zen1 (mainline-based, linux-zen), also reproduced on linux-cachyos (both the "stable" 6.6.x line and the latest 7.1.5-1-cachyos)
  • Distro: Arch Linux
  • Audio stack: PipeWire

Hardware / PCI topology

03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Radeon High Definition Audio Controller
03:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Audio Coprocessor (rev 60)
03:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Ryzen HD Audio Controller

Two HDA cards are enumerated (card 0 = HDMI/DP via 03:00.1, card 1 =
Conexant SN6140 analog codec via 03:00.6). The ACP coprocessor
(03:00.5, snd_pci_acp6x) is powered on but never registers a sound
card
. No error is logged for it — the trail simply goes cold after the
PCI enable message.

Codec details (card 1, Conexant SN6140)

Codec: Conexant SN6140
Vendor Id: 0x14f11f87
Subsystem Id: 0x1d722423

Relevant pin complex nodes (/proc/asound/card1/codec#0):

Node 0x19 [Pin Complex]  -- external 3.5mm mic jack, works as expected
  Pin Default 0x03a11030: [Jack] Mic at Ext Left
  Pincap: IN Detect, Vref caps: HIZ 50 80
 
Node 0x1a [Pin Complex]  -- candidate "internal mic" pin
  Pincap 0x00000024: IN Detect        (no Vref caps at all)
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00

DefAssociation = 0xf on node 0x1a indicates the BIOS pin config
intentionally leaves this pin unclassified/unused. It also lacks Vref
capability, which is atypical for an analog electret mic input. This is
consistent with the physical mic array not being wired to the SN6140
codec at all, and instead being wired through the AMD ACP PDM/DMIC path
(the usual arrangement for Rembrandt/Phoenix-class AMD laptops).

What we tried on node 0x1a

Using hdajackretask, pin 0x1a was overridden to Internal Mic / Fixed /
Internal, and the boot override was installed successfully
(/etc/modprobe.d/hda-jack-retask.conf + firmware patch). After reboot,
dmesg correctly reports:

snd_hda_codec_conexant hdaudioC1D0: autoconfig for SN6140:
    inputs:
      Mic=0x19
      Internal Mic=0x1a

ADC node 0x13 connection list confirms 0x1a is selected:

Node 0x13 [Audio Input]
  Connection: 4
     0x18 0x19 0x1a* 0x15

The amp is unmuted (Amp-In vals: [0x03 0x03]), Capture Switch: on,on,
volume at max. Despite this, arecord/parecord from this pin produces
only a single loud transient click on stream open, followed by silence —
consistent with an electrically unconnected/floating pin rather than a
software mute or gain issue.

ACP DMIC path (suspected correct path)

$ lsmod | grep -E "snd_sof_amd_acp|snd_pci_acp6x|snd_acp_legacy"
snd_sof_amd_acp70
snd_sof_amd_acp63
snd_sof_amd_acp        (+ snd_sof_amd_rembrandt, snd_sof_amd_vangogh, snd_sof_amd_acp63, snd_sof_amd_renoir)
snd_sof_pci
snd_soc_acpi_amd_match
snd_acp_legacy_common
snd_pci_acp6x
$ dmesg | grep -i acp
[    7.339317] snd_pci_acp6x 0000:03:00.5: enabling device (0000 -> 0002)

No further ACP-related log lines follow (no machine driver probe, no DMI
match attempt/failure, no SOF firmware load, no error). /proc/asound/cards
never shows a third (ACP/DMIC) card.

Blacklisting snd_pci_acp6x (to let the SOF/Rembrandt stack own the
device exclusively) and rebuilding initramfs did not change this behavior.

This strongly suggests the ACP machine driver (snd_soc_acp6x_mach /
equivalent SOF machine driver) never finds a DMI match for this board and
therefore never attempts to probe, rather than failing after an attempt.

Reproduction steps

arecord -l
sudo dmesg | grep -A20 "autoconfig for SN6140"
cat /proc/asound/card1/codec#0
sudo dmesg | grep -i acp
cat /proc/asound/cards

Expected behavior

Internal microphone should be exposed as a working capture device and
record audio, as it does under the Windows OEM driver on identical
hardware.

Actual behavior

No working capture device is exposed for the internal microphone array.
The SN6140 pin 0x1a (candidate internal-mic pin) is electrically silent
even after correct pin-config override. The AMD ACP coprocessor never
registers a sound card at all.

Suspected root cause

Missing DMI quirk / machine-driver entry for this specific OEM board
(XIAOMI / TM2423 — Xiaomi RedmiBook 16 2025, AMD) in the AMD ACP6x
machine driver (sound/soc/amd/yc/acp6x-mach.c or the corresponding
ACP6.3/7.0 machine driver used for Rembrandt-R), similar to the DMI
quirks that already exist for Lenovo/ASUS/HP platforms on the same
silicon family.

Additional notes

  • This appears to affect other very recent (2025) laptops with the same
    SN6140 codec — a similar unresolved report exists for a Lenovo IdeaPad
    Slim 5 16AKP10 (Arch Linux Forums, thread id 309624, Oct-Dec 2025),
    where the internal mic pin is likewise enumerated but silent.
  • Happy to provide additional debug output (SOF topology/firmware logs,
    hda-verb probing, ACPI DSDT dump for the HDAS/ACP power-resource
    block) on request — I don't have kernel driver development experience
    but I'm willing to test patches.

Attachments

Full diagnostic archive collected and attached: mic_debug_report.tar.gz, containing:

  • Full dmesg and journalctl -k -b
  • Full dmidecode
  • Codec dump (/proc/asound/card*/codec#*)
  • lspci -vvv (audio devices)
  • Loaded sound modules (lsmod)
  • Full DSDT disassembly (dsdt_only.dsl, extracted via /sys/firmware/acpi/tables/DSDT) — confirms an ACPI Device (ACP) node exists alongside Device (AZAL) (the HDA controller hosting the SN6140 codec)
  • arecord -l / aplay -l / /proc/asound/cards output

mic_debug_report.tar.gz

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions