ALC257 wrong fixup applied for Lenovo LOQ 15APH8 (17aa:3bfa) - headset mic not working

Vadym <[email protected]>
Newsgroups org.alsa-project.alsa-devel
Message-ID <CAO8kHO0eS2AoJvLEE0i_Yt5aorh4zY8t+awQ7c4d-ZSs7Saf7A@mail.gmail.com>
Subject: ALC257 wrong fixup applied for Lenovo LOQ 15APH8 (17aa:3bfa) -
headset mic not working

== Hardware ==
Machine: Lenovo LOQ 15APH8 (82XT)
CPU: AMD Ryzen 5 7640HS
Audio codec: Realtek ALC257
PCI controller subsystem ID: 17aa:3870
ALSA info:
http://alsa-project.org/db/?f=223997898c37b6e25310ef0f10ff6b857e732cb3

== Problem ==
The headset microphone (3.5mm combo jack) does not work on Linux.
The internal microphone works correctly.

== Root cause ==
The kernel applies the wrong fixup for this machine:

  snd_hda_codec_alc269: ALC257: picked fixup for PCI SSID 17aa:3870

The PCI controller subsystem ID 17aa:3870 matches "Lenovo Yoga 7 14ARB7"
(ALC287_FIXUP_YOGA7_14ARB7_I2C) which is a completely different machine.
This fixup configures the codec incorrectly for LOQ 15APH8.

As a result, pin 0x1a (which carries the headset microphone signal on this
machine) is initialized as [N/A] with Pin-ctls: 0x00 VREF_HIZ, making it
invisible to userspace audio servers (PipeWire/WirePlumber).

== Expected behavior ==
Pin 0x1a should be exposed as a microphone input (Line In / Headset Mic).
On Ubuntu 24.04 / 25.10 with older kernels this pin was accessible as
"Line In" and the headset microphone worked correctly when selected
manually.

== Codec pin details ==
Node 0x19 [Pin Complex]: Mic at Ext Right (Jack, Black, 1/8")
  Pin-ctls: 0x24 IN VREF_80
  → correctly initialized, but captures only noise (no signal)

Node 0x1a [Pin Complex]: marked as [N/A] Speaker at Ext Rear
  Pin Default 0x411111f0 — kernel treats as N/A
  Pin-ctls: 0x00 VREF_HIZ  ← should be active input
  → this pin actually carries headset mic signal on this hardware

== Requested fix ==
Add a quirk for this machine with the correct subsystem ID:

  SND_PCI_QUIRK(0x17aa, 0x3bfa, "Lenovo LOQ 15APH8",
ALC257_FIXUP_HEADSET_MIC),

or equivalent fixup that enables pin 0x1a as headset microphone input
and applies ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC or similar.

== Kernel versions tested ==
- Linux 7.0.4-200.fc44.x86_64 (Fedora 44) — broken
- Linux 6.x (Kubuntu 26.04) — broken
- Ubuntu 24.04 / 25.10 (older kernels) — worked

== Contact ==
Please reply to this bug report with any additional information needed.

With regards
Vadym
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.