From: GitHub issues - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: HDA/HiFi-mic.conf: Internal mic incorrectly gated by external Mic Jack on ALC287 without Input Source enum
Date: Fri, 12 Jun 2026 15:03:23 +0200 (CEST) [thread overview]
Message-ID: <18b857154c297e00-webhooks-bot@alsa-project.org> (raw)
In-Reply-To: <18b857154c001f00-webhooks-bot@alsa-project.org>
alsa-project/alsa-ucm-conf issue #785 was opened from fabianmartins:
### Machine
- **Model:** Lenovo Legion Pro 7 16IAX10H (DMI product name: 83F5)
- **Codec:** Realtek ALC287 (Vendor Id: 0x10ec0287, Subsystem Id: 0x17aa3906)
- **Driver:** sof-hda-dsp
- **BIOS:** Q7CN44WW
- **alsa-ucm-conf version:** 1.2.16
### Problem
On this machine, the internal microphone (Node 0x12, Pin Default 0x90a60140: `[Fixed] Mic at Int N/A`) is reported as unavailable by PipeWire/WirePlumber because the UCM configuration assigns the wrong `JackControl`.
The codec exposes:
- `Internal Mic Phantom Jack` = on (always-on, internal mic present)
- `Mic Jack` = off (external 3.5mm jack, nothing plugged in)
- **No** `Input Source` or `Capture Source` enum control
### Root Cause
In `ucm2/HDA/HiFi-mic.conf`, the `If.micsetup` condition checks for an `Input Source` / `Capture Source` enum. When neither exists, it enters the `True` branch which unconditionally sets:
```
DeviceMicJack "Mic Jack"
```
This associates the internal mic device with the external jack's availability. Since `Mic Jack` = off (no external mic plugged in), PipeWire's ACP marks the mic route as `available: no`, and GNOME reports no microphone available.
The internal mic hardware works perfectly — direct ALSA recording (`arecord -D hw:1,0`) succeeds.
### Expected Behavior
The internal mic should have no `JackControl` (or use `Internal Mic Phantom Jack`) so its availability is not tied to the external jack state.
### Proposed Fix
In the `True` branch of `If.micsetup` (the "no source selector enum" fallback), add a condition: if `Internal Mic Phantom Jack` exists, don't assign `DeviceMicJack "Mic Jack"`. Something like:
```
True {
Define {
DeviceMicName "Mic"
DeviceMicComment "Stereo Microphone"
DeviceMicJack "Mic Jack"
DeviceMicPriority 200
}
If.internalmic_phantom {
Condition {
Type ControlExists
Control "iface=CARD,name='Internal Mic Phantom Jack'"
}
True.Define.DeviceMicJack ""
}
}
```
This preserves the existing behavior for machines with only an external mic jack, while correctly handling machines where the sole capture device is the internal mic.
### Codec Dump (relevant excerpt)
```
Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
Pincap 0x00000020: IN
Pin Default 0x90a60140: [Fixed] Mic at Int N/A
Conn = Digital, Color = Unknown
DefAssociation = 0x4, Sequence = 0x0
Misc = NO_PRESENCE
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
Pincap 0x00003724: IN Detect
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x03a11030: [Jack] Mic at Ext Left
Conn = 1/8, Color = Black
DefAssociation = 0x3, Sequence = 0x0
```
### ALSA Controls
```
Internal Mic Phantom Jack: values=on
Mic Jack: values=off
(No 'Input Source' or 'Capture Source' control exists)
```
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/785
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
next parent reply other threads:[~2026-06-12 13:04 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <18b857154c001f00-webhooks-bot@alsa-project.org>
2026-06-12 13:03 ` GitHub issues - opened [this message]
[not found] <18b9ac428ea57200-webhooks-bot@alsa-project.org>
2026-06-16 21:15 ` HDA/HiFi-mic.conf: Internal mic incorrectly gated by external Mic Jack on ALC287 without Input Source enum GitHub issues - reopened
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=18b857154c297e00-webhooks-bot@alsa-project.org \
--to=github@alsa-project.org \
--cc=alsa-devel@alsa-project.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox