Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [BUG] Samsung Galaxy Book 4 Ultra - MAX98390 speakers not supported on MTL platform
@ 2026-01-07 22:26 José Augusto de Almeida Neto
  2026-01-08  7:53 ` Péter Ujfalusi
  2026-01-08 10:10 ` Pierre-Louis Bossart
  0 siblings, 2 replies; 3+ messages in thread
From: José Augusto de Almeida Neto @ 2026-01-07 22:26 UTC (permalink / raw)
  To: alsa-devel@alsa-project.org; +Cc: linux-sound@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 1691 bytes --]

Hi ALSA developers,

I'm reporting a hardware support issue with the Samsung Galaxy Book 4 Ultra
(NP960XGL-XG1BR) running on Intel Meteor Lake (MTL) platform.

SUMMARY:
The laptop has MAX98390 smart speaker amplifiers that are not supported in
the current Linux kernel. Headphones work (ALC298 HDA codec) but speakers
are completely non-functional.

HARDWARE:
- System: Samsung Galaxy Book 4 Ultra (NP960XGL-XG1BR)
- CPU: Intel Meteor Lake-P
- Audio Controller: Intel MTL HD Audio (8086:7728)
- HDA Codec: Realtek ALC298 (working for headphones)
- Speaker Amps: 4x Maxim MAX98390 on I2C bus 2 (addresses 0x38, 0x39, 0x3C, 0x3D)
- Kernel: 6.17.9 (also tested on 6.8.0 mainline)

ROOT CAUSE:
1. No machine driver match in soc-acpi-intel-mtl-match.c for Samsung + MAX98390
2. No SOF topology file for MTL + HDA + MAX98390 combination
3. NHLT only shows SSP2 (Bluetooth), no SSP configured for speakers
4. SOF falls back to generic skl_hda_dsp_generic (2-channel HDA only)

VERIFICATION:
- MAX98390 chips respond on I2C (revision 0x42 confirmed on all 4 chips)
- ACPI device MAX98390:00 present (status 15 - enabled)
- ALC298 speaker DAC receives audio but no output from physical speakers
- No I2S/TDM connection to MAX98390 amplifiers

I have collected detailed technical information including:
- DSDT and NHLT ACPI tables
- Full HDA codec dump
- I2C bus scans and MAX98390 register reads
- dmesg logs showing current SOF behavior

Full detailed report: BUG_REPORT.md attached

QUESTION:
Is there ongoing work to support MAX98390 on Meteor Lake platforms?
I'm willing to test patches and provide additional debugging information.

Thank you,
Jose


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: BUG_REPORT.md --]
[-- Type: text/markdown; name="BUG_REPORT.md", Size: 6792 bytes --]

# Linux Kernel Bug Report: Samsung Galaxy Book 4 Ultra - MAX98390 Speaker Support Missing

**Date:** January 7, 2026  
**Reported by:** jaalneto@hotmail.com
**To:** linux-sound@vger.kernel.org  
**CC:** alsa-devel@alsa-project.org

---

## Summary

Samsung Galaxy Book 4 Ultra (NP960XGL-XG1BR) with Intel Meteor Lake (MTL) platform has MAX98390 smart speaker amplifiers that are not supported in the current Linux kernel. Speakers are non-functional, only headphones work.

## Hardware Information

- **System:** Samsung Galaxy Book 4 Ultra
- **Model:** 960XGL / NP960XGL-XG1BR
- **BIOS:** P09ALX.430.251002.05 (Release Date: 10/02/2025)
- **CPU:** Intel Meteor Lake-P
- **Audio Controller:** Intel Meteor Lake-P HD Audio (PCI 00:1f.3)
  - Vendor: 8086:7728
  - Subsystem: 144d:c1d8
- **Kernel:** 6.17.9-76061709-generic
- **Distribution:** Pop!\_OS 24.04 LTS

## Audio Hardware Configuration

### Working Components

- **HDA Codec:** Realtek ALC298 (codec#0)
  - Headphone output: Pin 0x21 - **WORKING**
  - Internal microphone: **WORKING**

### Non-Working Components

- **Speaker Amplifiers:** 4x Maxim MAX98390 smart amplifiers
  - I2C Bus: 2 (i2c_designware.2)
  - I2C Addresses: 0x38, 0x39, 0x3C, 0x3D
  - ACPI HID: MAX98390
  - ACPI Device: MAX98390:00 (status 15 - present, enabled)
  - Chip Revision: 0x42 (verified via I2C read)
  - **Status:** Device present and responsive on I2C, but NO AUDIO OUTPUT

## Root Cause Analysis

The Samsung Galaxy Book 4 Ultra uses an unconventional audio architecture:

- **ALC298 HDA codec** handles headphone output
- **MAX98390 amplifiers** (I2S/TDM digital input) handle speaker output
- Requires SSP (Serial Synchronous Port) connection from SOF DSP to MAX98390

### Issues Identified

1. **No Machine Driver Match**

   - File: `sound/soc/intel/common/soc-acpi-intel-mtl-match.c`
   - No entry for Samsung + ALC298 + MAX98390 combination
   - SOF falls back to generic `skl_hda_dsp_generic` driver

2. **No SOF Topology File**

   - Required: Meteor Lake topology with HDA codec + MAX98390 amplifiers
   - Missing: `sof-mtl-*-max98390*.tplg` file
   - Existing MTL topologies only support MAX98357A, MAX98360A, MAX98363 (different amplifier chips)

3. **No SSP Port Configuration**

   - NHLT (Non-HD Audio Link Table) only shows:
     - SSP2 for Bluetooth
     - 2x DMIC (working)
   - Missing: SSP configuration for speaker amplifiers (likely SSP0 or SSP1)

4. **ACPI/DSDT Configuration**
   - MAX98390 ACPI device defined with 4 I2C addresses
   - No GPIO resources defined (power/reset/enable)
   - No SSP/I2S connection details in ACPI tables

## Current Behavior

```
$ cat /proc/asound/cards
 0 [sofhdadsp      ]: sof-hda-dsp - sof-hda-dsp
                      SAMSUNG ELECTRONICS CO., LTD. - 960XGL

$ dmesg | grep -i "sof.*tplg\|machine"
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-hda-generic-2ch.tplg
sof-audio-pci-intel-mtl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
```

- Audio playback to "Speaker" device produces no output
- ALC298 speaker DAC (Node 0x03) receives audio stream
- Speaker pin (0x17) is configured and unmuted
- MAX98390 amplifiers are detected on I2C but never initialized
- No I2S/TDM audio data reaches MAX98390 chips

## Expected Behavior

Speakers should work similarly to other Intel platforms with MAX98390, such as:

- Comet Lake (CML) + MAX98390 configurations
- Alder Lake (ADL) + MAX98390 configurations

## Technical Evidence

### I2C Bus Scan (Bus 2)

```
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
30: -- -- -- -- -- -- -- -- 38 39 -- -- 3c 3d -- --
```

### MAX98390 Chip Detection

All 4 amplifiers respond with Revision ID 0x42:

- 0x38: REV_ID = 0x42
- 0x39: REV_ID = 0x42
- 0x3C: REV_ID = 0x42
- 0x3D: REV_ID = 0x42

### ACPI Device Info

```
Device: MAX98390:00
Status: 15 (present, enabled, decoding resources)
Path: \_SB_.PC00.I2C2.MX98
```

### ALC298 Codec Configuration

```
Node 0x17 [Pin Complex] - Speaker
  Pin Default: 0x90170110 [Fixed] Speaker at Int N/A
  Pin-ctls: 0x40 (OUT enabled)
  EAPD: 0x2 (enabled)
  Connection: DAC Node 0x03

Node 0x03 [Audio Output] - Speaker DAC
  Stream assignment: Receives audio during playback
  Volume: 127/127 (100%, unmuted)
```

## Proposed Solution

### 1. Add Machine Driver Match

In `sound/soc/intel/common/soc-acpi-intel-mtl-match.c`:

```c
static const struct snd_soc_acpi_codecs mtl_max98390_amp = {
    .num_codecs = 1,
    .codecs = {"MX98390"}
};

// Add to snd_soc_acpi_intel_mtl_machines[] array:
{
    .id = "10EC0298",  // ALC298 HID
    .drv_name = "mtl_max98390_8825",  // or appropriate driver
    .machine_quirk = snd_soc_acpi_codec_list,
    .quirk_data = &mtl_max98390_amp,
    .sof_tplg_filename = "sof-mtl-max98390-rt5682.tplg",  // needs creation
},
```

### 2. Create SOF Topology File

Create topology file supporting:

- HDA codec (ALC298) for headphones
- SSP port (likely SSP0 or SSP1) for MAX98390
- 4-channel TDM configuration for 4 amplifier chips
- DMICs (already working)

### 3. Add SSP Configuration

Update NHLT or create ACPI override to expose SSP port for speakers

### 4. Samsung DMI Quirk (Optional)

Add specific handling for Samsung Galaxy Book 4 models if needed

## Workarounds Attempted

1. ❌ Manual I2C initialization of MAX98390 - fails without I2S clock
2. ❌ Force load `snd_soc_max98390` module - module loads but no audio path
3. ❌ HDA codec speaker pin manipulation - audio goes to pin but not to physical speakers
4. ❌ Legacy HDA driver (`snd_hda_intel dsp_driver=1`) - breaks all audio

## Additional Information

This appears to be a similar issue to other recent Intel platforms that added MAX98390 support:

- [Commit example needed - check git log for similar additions]

The MAX98390 is also used in:

- Dell XPS series
- Lenovo ThinkPad X1 Carbon Gen 11
- HP Spectre x360

## Attachments

I can provide the following files if needed:

1. **dsdt.bin** (416KB) - Full DSDT table
2. **nhlt.bin** (2.4KB) - NHLT audio configuration
3. **dmesg_audio.log** - Filtered kernel messages
4. **alc298_codec.txt** - Full HDA codec dump
5. **i2c_bus2_scan.txt** - I2C bus 2 device scan
6. **max98390_info.txt** - MAX98390 register reads

Please let me know if you need any of these files or additional debugging information.

## Request

Could someone with experience in Intel SOF and MAX98390 integration provide guidance on:

1. Correct SSP port assignment for this hardware
2. Whether an NHLT update or ACPI SSDT override is needed
3. Topology file structure for HDA + MAX98390 combination on MTL

I'm willing to test patches and provide additional debugging information.

---

**Contact:** jaalneto@hotmail.com
**Availability for testing:** High - this is my primary laptop

Thank you for your attention to this issue.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-04 15:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-07 22:26 [BUG] Samsung Galaxy Book 4 Ultra - MAX98390 speakers not supported on MTL platform José Augusto de Almeida Neto
2026-01-08  7:53 ` Péter Ujfalusi
2026-01-08 10:10 ` Pierre-Louis Bossart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox