* sof-hda-dsp / HUAWEI MACHD-WXX9 (CX11880): Speaker profile mutes the Headphone amp, which is what drives the internal speakers
[not found] <18da7cd96a94b800-webhooks-bot@alsa-project.org>
@ 2026-10-01 18:57 ` GitHub issues - opened
0 siblings, 0 replies; only message in thread
From: GitHub issues - opened @ 2026-10-01 18:57 UTC (permalink / raw)
To: alsa-devel
alsa-project/alsa-ucm-conf issue #863 was opened from mistercyb3r:
## Summary
On a HUAWEI **MACHD-WXX9** (MateBook X, Conexant **CX11880**), the internal speakers are wired to the **headphone** amplifier. The generated `HiFi (..., Speaker)` profile switches on `Speaker Playback Switch`, which controls nothing audible on this board, while the `Headphones` device's `DisableSequence` mutes `Headphone Playback Switch` — the amplifier that actually drives the internal speakers.
Result: with the jack empty the internal speakers are nearly silent, while with the jack inserted the headphones and the internal speakers both play at full level.
## Environment
| | |
|---|---|
| Machine | HUAWEI MACHD-WXX9 (product_family `MateBook X`, board `MACHD-WXX9-PCB-B1`) |
| Codec | Conexant CX11880 (`0x14f11f86`) |
| Driver | `sof-hda-dsp` / `skl_hda_dsp_generic` |
| Distro | Arch Linux / Omarchy, kernel `7.2.5-3-omarchy` |
| alsa-ucm-conf | `1.2.16.1-1` |
| alsa-lib | `1.2.16.1-1` |
| sof-firmware | `2025.12.2-1` |
Kernel autoconfig:
```
snd_hda_codec_conexant ehdaudio0D0: autoconfig for CX11880: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
snd_hda_codec_conexant ehdaudio0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
snd_hda_codec_conexant ehdaudio0D0: hp_outs=1 (0x16/0x0/0x0/0x0/0x0)
```
## Measured state transitions (1 s sampling across plug/unplug)
| jack | pin 0x16 (HP) Pin-ctls | pin 0x17 (spk) Pin-ctls | `Speaker` ctl | `Headphone` ctl | active profile |
|---|---|---|---|---|---|
| plugged | `0xc0` (OUT HP) | `0x00` (off) | off | **on** | Headphones |
| unplugged | `0xc0` | `0x40` (OUT) | **on** | **off** | Speaker |
## Evidence that the internal speakers are not on the `Speaker` path
- Toggling `Speaker Playback Switch` provably mutes the amplifier it owns — the codec amp register flips `0x4a` (unmuted) to `0xca` (mute bit set) — yet the internal speakers keep playing.
- All codec GPIOs are unconfigured: `GET_GPIO_MASK`, `GET_GPIO_DIRECTION`, `GET_GPIO_DATA` and the sticky/wake masks all return `0x0`. There is no GPIO-based external-amplifier mute to fall back on.
- This matches reports for other Huawei boards with the same codec/wiring: https://github.com/pop-os/pop/issues/4064 and https://github.com/thesofproject/linux/issues/3350 ("Headphones and speakers play simultaneously when headphones are plugged in").
## Why this is a UCM issue and not a codec one
The jack is detected correctly (`Headphone Jack` toggles on/off, the port reports `available`, and WirePlumber switches profiles correctly). The only wrong part is *which* amplifier the Speaker profile toggles for this board.
## Suggested fix
`HiFi-spk.conf`'s `Speaker` device is generic, so the change needs a machine condition, e.g. in the Speaker `EnableSequence`:
```
If.huawei-machd {
Condition { Type String ... "${sys:devices/virtual/dmi/id/product_name}" ... }
True { cset "name='Headphone Playback Switch' on" }
}
```
(Comment: it would be worth guarding on `product_name == "MACHD-WXX9"`, possibly also `sys_vendor == "HUAWEI"`.)
## Interim workaround
A user service re-asserts `amixer -c0 sset Headphone on` whenever the jack switches, which restores full speaker level when unplugged. Headphones-only playback while plugged is not achievable on this board in software — the speakers and the jack share one amplifier and there is no mute line.
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/863
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-10-01 18:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <18da7cd96a94b800-webhooks-bot@alsa-project.org>
2026-10-01 18:57 ` sof-hda-dsp / HUAWEI MACHD-WXX9 (CX11880): Speaker profile mutes the Headphone amp, which is what drives the internal speakers 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.