Hardware
- Laptop: Huawei MateBook X Pro 2024
- Audio Controller: Intel Meteor Lake-P HD Audio Controller (PCI 00:1f.3, ID 8086:7e28)
- Codec: Conexant CX11970 (Vendor ID: 0x14f120d0, Subsystem ID: 0x19e532a3)
- Driver: sof-audio-pci-intel-mtl
- Kernel: 6.18.27-amd64-desktop-rolling
- SOF Firmware: 2.13.0.1
- Topology: sof-hda-generic-ace1-4ch.tplg
Problem Description
The Huawei MateBook X Pro 2024 has 6 physical speakers (2 woofers + 4 tweeters/mids). Under Linux with SOF, only 2 speakers produce sound. The codec exposes 4 speaker-related pins, but only 2 are configured as active speaker outputs by the BIOS/codec auto-probing.
Codec Pin Configuration
Active Pins (working):
- Pin 0x1d → DAC 0x22 (Bass Speaker) -
[Fixed] Speaker at Int Rear (0x91170112)
- Pin 0x26 → DAC 0x23 (Speaker) -
[Fixed] Speaker at Int Rear (0x91170110)
Inactive Pins (not working, default 0x40f001f0):
- Pin 0x16 -
[N/A] Other at Ext N/A - Pincap: OUT HP EAPD Detect
- Pin 0x17 -
[N/A] Other at Ext N/A - Pincap: OUT EAPD
ALSA Controls Exposed
numid=5,iface=MIXER,name='Bass Speaker Playback Volume' (values=2, max=74)
numid=6,iface=MIXER,name='Bass Speaker Playback Switch'
numid=3,iface=MIXER,name='Speaker Playback Volume' (values=2, max=74)
numid=4,iface=MIXER,name='Speaker Playback Switch'
Dmesg Output (relevant)
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-hda-generic-ace1-4ch.tplg
snd_hda_codec_conexant ehdaudio0D0: CX11970: BIOS auto-probing.
snd_hda_codec_conexant ehdaudio0D0: autoconfig for CX11970: line_outs=2 (0x26/0x1d/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=0 (0x0/0x0/0x0/0x0/0x0)
Root Cause Analysis
The Conexant codec driver auto-probing only detects 2 speaker outputs because pins 0x16 and 0x17 have default configuration 0x40f001f0 (disabled/not applicable). The SOF topology sof-hda-generic-ace1-4ch.tplg is loaded but only creates 2 output paths corresponding to the 2 detected speaker pins.
When pins 0x16 and 0x17 are manually enabled via hda-verb (SET_PIN_WIDGET_CONTROL 0x40, SET_CONNECT_SEL), they become active outputs connected to DACs 0x10/0x11, but the SOF DSP topology does not route any audio to these DACs.
Requested Fix
- Add a pin configuration quirk for Conexant CX11970 (vendor 0x14f120d0, subsystem 0x19e532a3) that configures pins 0x16 and 0x17 as internal speakers
- Update the SOF topology for Meteor Lake + Conexant to route audio to all 4 speaker pins (6 physical speakers)
- Alternatively, provide guidance on creating a custom topology file for this hardware
Comparison with Windows
Under Windows 11, all 6 speakers work correctly with proper woofer/tweeter separation and Dolby Atmos processing. The Windows driver correctly initializes all 4 speaker pins.
Additional Notes
- NHLT tables are present and detected by SOF (BT device + 4 DMICs)
sof_use_tplg_nhlt=1 and tplg_filename=sof-hda-generic-ace1-4ch.tplg modprobe options were tried but did not enable additional speakers
- UCM configuration already enables both "Speaker" and "Bass Speaker" switches simultaneously
Hardware
Problem Description
The Huawei MateBook X Pro 2024 has 6 physical speakers (2 woofers + 4 tweeters/mids). Under Linux with SOF, only 2 speakers produce sound. The codec exposes 4 speaker-related pins, but only 2 are configured as active speaker outputs by the BIOS/codec auto-probing.
Codec Pin Configuration
Active Pins (working):
[Fixed] Speaker at Int Rear(0x91170112)[Fixed] Speaker at Int Rear(0x91170110)Inactive Pins (not working, default 0x40f001f0):
[N/A] Other at Ext N/A- Pincap: OUT HP EAPD Detect[N/A] Other at Ext N/A- Pincap: OUT EAPDALSA Controls Exposed
Dmesg Output (relevant)
Root Cause Analysis
The Conexant codec driver auto-probing only detects 2 speaker outputs because pins 0x16 and 0x17 have default configuration
0x40f001f0(disabled/not applicable). The SOF topologysof-hda-generic-ace1-4ch.tplgis loaded but only creates 2 output paths corresponding to the 2 detected speaker pins.When pins 0x16 and 0x17 are manually enabled via
hda-verb(SET_PIN_WIDGET_CONTROL 0x40, SET_CONNECT_SEL), they become active outputs connected to DACs 0x10/0x11, but the SOF DSP topology does not route any audio to these DACs.Requested Fix
Comparison with Windows
Under Windows 11, all 6 speakers work correctly with proper woofer/tweeter separation and Dolby Atmos processing. The Windows driver correctly initializes all 4 speaker pins.
Additional Notes
sof_use_tplg_nhlt=1andtplg_filename=sof-hda-generic-ace1-4ch.tplgmodprobe options were tried but did not enable additional speakers