Skip to content

Huawei MateBook X Pro 2024 - Only 2 of 6 speakers working with SOF #5776

@felocru

Description

@felocru

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

  1. Add a pin configuration quirk for Conexant CX11970 (vendor 0x14f120d0, subsystem 0x19e532a3) that configures pins 0x16 and 0x17 as internal speakers
  2. Update the SOF topology for Meteor Lake + Conexant to route audio to all 4 speaker pins (6 physical speakers)
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions