public inbox for alsa-devel@alsa-project.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

* Re: [BUG] Samsung Galaxy Book 4 Ultra - MAX98390 speakers not supported on MTL platform
  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
  1 sibling, 0 replies; 3+ messages in thread
From: Péter Ujfalusi @ 2026-01-08  7:53 UTC (permalink / raw)
  To: José Augusto de Almeida Neto, alsa-devel@alsa-project.org
  Cc: linux-sound@vger.kernel.org

Hi José,

The machine likely similar to Book 4 Pro, it is an HDA+companion amp setup:
https://github.com/thesofproject/linux/issues/5002

The bounty for Book 4 Pro resulted (as far as I know) working audio,
which can be replicated:
https://github.com/stephanlensky/galaxy-book4-linux-sound

You might need to add the quirk for the Ultra and by luck it might work
as well.

SOF is not needed, used in these machines as they are pure HDA devices.

-- 
Péter

On 08/01/2026 00:26, José Augusto de Almeida Neto wrote:
> 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
> 



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

* Re: [BUG] Samsung Galaxy Book 4 Ultra - MAX98390 speakers not supported on MTL platform
  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
  1 sibling, 0 replies; 3+ messages in thread
From: Pierre-Louis Bossart @ 2026-01-08 10:10 UTC (permalink / raw)
  To: José Augusto de Almeida Neto, alsa-devel@alsa-project.org
  Cc: linux-sound@vger.kernel.org

On 1/7/26 23:26, José Augusto de Almeida Neto wrote:
> 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?

This has nothing to do with SOF, the main issue is that the amplifier needs to be configured by HDAudio verbs which are translated by the HDaudio codec in I2C commands. The problem is to reverse-engineer what those verbs might be, usually with a Windows setup. There was a Wiki for this sort of things, see https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html#reverse-engineer-the-windows-audio-driver


^ 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