Skip to content

Add SoundWire audio support for Surface Laptop 7 (Intel / Lunar Lake)#2147

Open
e5h5 wants to merge 1 commit into
linux-surface:masterfrom
e5h5:feature/surface-laptop-7-intel-sound
Open

Add SoundWire audio support for Surface Laptop 7 (Intel / Lunar Lake)#2147
e5h5 wants to merge 1 commit into
linux-surface:masterfrom
e5h5:feature/surface-laptop-7-intel-sound

Conversation

@e5h5
Copy link
Copy Markdown

@e5h5 e5h5 commented May 25, 2026

Enables speaker and headset jack audio on the Surface Laptop 7 Intel (Lunar Lake) platform.

Devices covered:

  • Surface Laptop 7th Edition with Intel
  • Surface Laptop for Business 7th Edition with Intel

Root cause: The ACPI DSDT declares two RT1320 devices (class_id 0x00
and 0x01). Only class_id=0x01 physically attaches on the SoundWire bus;
class_id=0x00 is a ghost entry that never responds. Including it in the
aggregated stream caused all DPN_PortCtrl register writes to fail,
silencing the speaker. The fix uses the existing rt1320_0_single_adr
(non-aggregated, class_id=0x01 only) and adds the RT721 SDCA UAJ entry
for the headset jack.

Tested on: Surface Laptop for Business 7th Edition (Intel Core Ultra 2,
Lunar Lake), CachyOS (Arch-based), kernel 6.19.8-arch1.

Tested & working: speaker playback.

I haven't yet tested headset jack output and input but they should also work.

Partially resolves #1710

Based off of #1990

Copilot AI review requested due to automatic review settings May 25, 2026 13:57
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds an out-of-tree kernel patch to enable SoundWire/ALSA SoC audio support for Microsoft Surface Laptop 7 (Intel/Lunar Lake) in the Arch kernel packaging set.

Changes:

  • Add Surface Laptop 7 (Intel) SoundWire audio support patch (RT1320 amp + RT721 SDCA jack, plus topology naming adjustments).
  • Wire the new patch into the Arch PKGBUILD sources and checksums.
  • Duplicate the patch into versioned patch directories (patches/6.18, patches/6.19).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
pkg/arch/kernel/PKGBUILD Registers the new Surface Laptop 7 Intel sound patch in kernel package sources and sha256sums.
pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch Kernel patch adding LNL Surface DMI matching, codec/link definitions, and stream naming adjustments.
patches/6.18/0025-surface-laptop-7-intel-sound.patch Same kernel patch duplicated under the 6.18 patchset directory.
patches/6.19/0025-surface-laptop-7-intel-sound.patch Same kernel patch duplicated under the 6.19 patchset directory.
Comments suppressed due to low confidence (1)

pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch:1

  • For AMP links when append_dai_type is false, the dailink/stream name no longer includes a link identifier (ffs(link_mask)-1). This can make names non-unique across multiple AMP links/endpoints and can cause ALSA card/dailink registration conflicts. Consider keeping the link id in the name (while still matching topology expectations), e.g. including the link index in the formatted string or continuing to use the existing sdw_stream_name[...] format that incorporates the link id.
From c8c4874ec046792b31dbb3c9dd1a8c8f0bbd3fbf Mon Sep 17 00:00:00 2001

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch
Comment thread pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch Outdated
Comment thread pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch Outdated
Comment thread patches/6.19/0025-surface-laptop-7-intel-sound.patch
@e5h5 e5h5 force-pushed the feature/surface-laptop-7-intel-sound branch from 7a326f8 to 9b19e40 Compare May 25, 2026 14:00
@e5h5 e5h5 force-pushed the feature/surface-laptop-7-intel-sound branch from 9b19e40 to 7ee2699 Compare May 25, 2026 14:07
… 7 (Intel)

Add patch enabling speaker and headset jack audio on the Surface Laptop
7 Intel (Lunar Lake) platform.

Devices covered:
- Surface Laptop 7th Edition with Intel
- Surface Laptop for Business 7th Edition with Intel

Root cause: The ACPI DSDT declares two RT1320 devices (class_id 0x00
and 0x01). Only class_id=0x01 physically attaches on the SoundWire bus;
class_id=0x00 is a ghost entry that never responds. Including it in the
aggregated stream caused all DPN_PortCtrl register writes to fail,
silencing the speaker. The fix uses rt1320_0_single_adr (non-aggregated,
class_id=0x01 only) and adds the RT721 SDCA UAJ entry for the headset jack.

Tested on Surface Laptop for Business 7th Edition (Intel Core Ultra 2,
Lunar Lake), CachyOS (Arch-based), kernel 6.19.8-arch1.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (2)

pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch:1

  • Kernel DMI matching is typically expressed via a static const struct dmi_system_id ...[] match table rather than multiple dmi_match() calls with hard-coded strings. Converting this to a DMI table (and checking with dmi_first_match()/dmi_check_system()) makes the match logic easier to extend and less error-prone as additional SL7 Intel product-name variants appear; please mirror the change in the duplicated patch copies as well.
From c8c4874ec046792b31dbb3c9dd1a8c8f0bbd3fbf Mon Sep 17 00:00:00 2001

pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch:1

  • The stream-name selection logic now has three separate formatting paths, two of which use sdw_stream_name[stream + 2] with the same arguments. To reduce duplication and make it easier to reason about future DAI types, consider factoring the common sdw_stream_name[...] formatting into a shared branch (e.g., selecting the format string and whether to append type_strings[...] first), while keeping the AMP special-case explicit.
From c8c4874ec046792b31dbb3c9dd1a8c8f0bbd3fbf Mon Sep 17 00:00:00 2001

Comment thread pkg/arch/kernel/0025-surface-laptop-7-intel-sound.patch
Comment thread pkg/arch/kernel/PKGBUILD
@ghostplant
Copy link
Copy Markdown

Hope to get a debian-kernel released soon (> debian-6.19.8-3) with sound card problem solved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SL7] Support for Surface Laptop 7 with Intel Ultra 2

3 participants