-
Notifications
You must be signed in to change notification settings - Fork 140
Description
System Information
- Laptop Model: Samsung Galaxy Book 4 Pro (940XGK)
- BIOS Version: P09VAG
- Kernel Version: 6.17.2-061702-generic
- Distribution: Ubuntu 24.04
- Audio Controller: Intel Meteor Lake-P HD Audio Controller [8086:7e28] (rev 20)
- HDA Codec: Realtek ALC298 (Subsystem ID: 0x144dca07)
- Speaker Amplifiers: 4x Maxim MAX98390 on I2C bus 2
Problem Description
Internal speakers produce no audio output. Headphones work perfectly through the ALC298 HDA codec. The laptop is equipped with four MAX98390 speaker amplifiers connected via I2C2 at addresses 0x38, 0x39, 0x3C, and 0x3D, but they are not initialized or integrated into the audio pipeline.
Current Status
Working
- Headphone audio through ALC298 codec
- MAX98390 kernel driver (
snd-soc-max98390) present and functional - ACPI properly declares MAX98390 devices
- MAX98390 chips respond when manually instantiated (Revision ID: 0x42)
samsung-galaxybookplatform driver loaded
Not Working
- Internal speaker audio
- Automatic I2C device instantiation from ACPI
- SOF topology integration for MAX98390 amplifiers
Technical Details
ACPI Declaration
The DSDT contains a proper MAX98390 device declaration:
Scope (_SB.PC00.I2C2)
{
Device (MX98)
{
Name (_HID, "MAX98390")
Name (_UID, One)
Name (RBUF, ResourceTemplate ()
{
I2cSerialBusV2 (0x0038, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PC00.I2C2",
0x00, ResourceConsumer, , Exclusive, )
I2cSerialBusV2 (0x0039, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PC00.I2C2",
0x00, ResourceConsumer, , Exclusive, )
I2cSerialBusV2 (0x003C, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PC00.I2C2",
0x00, ResourceConsumer, , Exclusive, )
I2cSerialBusV2 (0x003D, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PC00.I2C2",
0x00, ResourceConsumer, , Exclusive, )
})
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Method (_CRS, 0, NotSerialized)
{
Return (RBUF)
}
}
}
Current SOF Configuration
[ 4.679186] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-hda-generic-4ch.tplg
[ 4.679869] sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
[ 4.814325] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.13.0.1
[ 4.984618] skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
The system loads sof-hda-generic-4ch.tplg which only handles the HDA codec and has no knowledge of the I2C-connected MAX98390 amplifiers.
Manual Testing Results
When manually instantiating the MAX98390 devices:
echo "max98390 0x39" | sudo tee /sys/bus/i2c/devices/i2c-2/new_device
echo "max98390 0x3c" | sudo tee /sys/bus/i2c/devices/i2c-2/new_device
echo "max98390 0x3d" | sudo tee /sys/bus/i2c/devices/i2c-2/new_deviceThe devices are successfully detected:
[ 830.419732] i2c i2c-2: new_device: Instantiated device max98390 at 0x39
[ 830.423208] max98390 2-0039: MAX98390 revisionID: 0x42
[ 1039.725112] max98390 2-003c: MAX98390 revisionID: 0x42
[ 1051.542250] max98390 2-003d: MAX98390 revisionID: 0x42
However, address 0x38 consistently fails with error -16 (EBUSY), likely because the ACPI device i2c-MAX98390:00 is already present but has no driver bound to it.
ACPI Modalias Issue
The ACPI device reports modalias as acpi:MAX98390: but the driver alias is acpi*:MX98390:*, causing the automatic binding to fail:
$ cat /sys/bus/i2c/devices/i2c-2/i2c-MAX98390:00/modalias
acpi:MAX98390:
$ modinfo snd-soc-max98390 | grep alias
alias: i2c:max98390
alias: acpi*:MX98390:*What's Needed
-
SOF Topology File: Create a new topology file for Meteor Lake systems with ALC298 + MAX98390 configuration (e.g.,
sof-mtl-max98390-alc298.tplg) -
Machine Driver Quirk: Add DMI matching for Samsung 940XGK to automatically select the correct topology and initialize the MAX98390 amplifiers
-
ACPI Modalias Fix: Update the MAX98390 driver to also match
acpi:MAX98390:in addition toacpi:MX98390: -
I2C Device Instantiation: Ensure all four MAX98390 devices are properly instantiated from ACPI
Related Information
- This issue is similar to previous Samsung Galaxy Book models that required speaker amplifier quirks
- Kernel Bugzilla #218862 also tracks this issue
- The
samsung-galaxybookplatform driver (mainline since 6.15) is loaded but doesn't handle audio configuration
Additional Logs Available
I can provide additional debugging information if needed:
- Complete
alsa-info.shoutput - Full DSDT dump
- SOF firmware debug logs
- I2C bus traces