* HDA/HiFi-mic.conf: Internal mic incorrectly gated by external Mic Jack on ALC287 without Input Source enum
[not found] <18b857154c001f00-webhooks-bot@alsa-project.org>
@ 2026-06-12 13:03 ` GitHub issues - opened
0 siblings, 0 replies; only message in thread
From: GitHub issues - opened @ 2026-06-12 13:03 UTC (permalink / raw)
To: alsa-devel
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-12 13:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <18b857154c001f00-webhooks-bot@alsa-project.org>
2026-06-12 13:03 ` HDA/HiFi-mic.conf: Internal mic incorrectly gated by external Mic Jack on ALC287 without Input Source enum GitHub issues - opened
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.