HDA: Fix internal mic availability for HDA codecs with phantom jack
GitHub pull_request - opened <[email protected]> Tue, 16 Jun 2026 05:16:44 +0200 (CEST)
| Newsgroups | org.alsa-project.alsa-devel |
|---|---|
| Message-ID | <[email protected]> |
alsa-project/alsa-ucm-conf pull request #792 was opened from rwekyes: ## Problem On HDA codecs that have both a `Mic Jack` (external, unplugged) and an `Internal Mic Phantom Jack` (fixed, always-on) control, the internal microphone gets assigned `Mic Jack` as its JackControl. PipeWire monitors this control for availability and marks the internal mic as "not available" since the external jack is unplugged, making it invisible to browsers and applications. Confirmed on: Lenovo IdeaPad Slim 5 16AKP10 with Conexant SN6140 codec (PCI SSID 17aa:38b6). ## Fix Add a block immediately before the `HDACaptureDevice` macro call that overrides `DeviceMicJack` to use `Internal Mic Phantom Jack` when that control exists. Since phantom jacks always report as connected, PipeWire correctly marks the internal mic as available. The condition is safe for other hardware — if no `Internal Mic Phantom Jack` control exists, the block has no effect. ## Known limitation This fix requires UCM to be loaded for the card. On non-ACP HDA cards, `HDA-Intel.conf` does not currently activate UCM, requiring a machine-specific workaround. A companion fix to `HDA-Intel.conf` is needed but has not been tested broadly enough to include here — input from maintainers on the right approach would be welcome. ## Related A companion kernel patch adding a pin config quirk for the SN6140 on this hardware has been submitted to [email protected]. Request URL : https://github.com/alsa-project/alsa-ucm-conf/pull/792 Patch URL : https://github.com/alsa-project/alsa-ucm-conf/pull/792.patch Repository URL: https://github.com/alsa-project/alsa-ucm-conf