Skip to content

[Bug]: Severe audio distortion on Lenovo w/ Arrow Lake, ALC287 & dual CSC3556 amps #5575

@Caleb-Nexus-Lab

Description

@Caleb-Nexus-Lab

describe the bug

The internal speakers on a new Lenovo laptop with an Intel Arrow Lake CPU produce heavily distorted, saturated, and unusable audio.

The issue is present across multiple modern Linux distributions and kernels, suggesting a hardware support issue within the SOF driver.

Audio output via the 3.5mm headphone jack works perfectly.

What have you tried to diagnose or workaround this issue?

Confirmed the issue is present on both Pop!_OS (Kernel 6.16.3) and Fedora (Kernel 6.15.x).

Attempted to use various ALSA quirks via options snd-hda-intel model=... (auto, alc287-yoga9-bass, etc.). This had no effect, likely because the sof-audio-pci-intel-mtl driver is taking precedence.

dmesg analysis shows that the SOF driver successfully loads the correct firmware for Arrow Lake (sof-arl.ri) but falls back to a generic topology (sof-hda-generic-4ch.tplg).

The logs clearly identify the specific hardware combination: a Realtek ALC287 codec paired with two Cirrus Logic CSC3556 smart amplifiers. The generic topology does not know how to correctly drive these amplifiers, causing the distortion.

To Reproduce

Boot the system on the affected Lenovo hardware.
Play any audio through the internal speakers.
The distortion is immediately and consistently present.
Reproduction Rate
100% of the time. The issue is constant and does not vary with any user action or configuration.

Expected behavior

Clear, balanced, and undistorted audio from the internal speakers, as experienced when using headphones or running other operating systems.

Impact

This is a showstopper for any use case involving the internal speakers (e.g., media consumption, video conferencing, system sounds). It forces the user to rely on external audio devices (headphones, external speakers) at all times.

Environment

Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).

Kernel: This is a distribution kernel, not a custom build. The version is 6.16.3-76061603-generic (on Pop!_OS) and was ~6.15.x on Fedora.

SOF: The firmware is from the standard linux-firmware package provided by the distribution.

Name of the topology file

Topology: The kernel log shows the system is falling back to intel/sof-ace-tplg/sof-hda-generic-4ch.tplg.

Name of the platform(s) on which the bug is observed.

Platform: Lenovo LNVNB161216 with Intel Core Ultra 7 255H CPU (Arrow Lake-P platform).
Screenshots or console output

  1. Hardware Identification (lspci -k)

00:1f.3 Multimedia audio controller: Intel Corporation Device 7728
Subsystem: Lenovo Device 3844
Kernel driver in use: sof-audio-pci-intel-mtl
Kernel modules: snd_hda_intel, snd_sof_pci_intel_mtl

  1. Kernel Log (sudo dmesg | grep -i "snd|sof|audio")

[ 2.283290] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[ 2.331981] sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 2.332076] sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 2.416099] sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[ 2.439561] sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 5
[ 2.439564] sof-audio-pci-intel-mtl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 2.442958] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-hda-generic-4ch.tplg
[ 2.556501] sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.13.0.1
[ 2.629735] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 2.646699] snd_hda_codec_realtek ehdaudio0D0: Found 2 CSC3556 on i2c (-%s:00-cs35l56-hda.%d)
[ 2.647063] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC287: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker

The logs above confirm that the generic topology is being loaded despite the presence of two CSC3556 amplifiers, which require a specific configuration.

I can provide full dmesg or sof-logger output if instructions are provided. Thank you for your work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions