From: GitHub pull_request - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: ucm2: Qualcomm: x1e80100: add Microsoft Surface Laptop 7
Date: Sun, 15 Nov 2026 17:03:59 +0100 (CET) [thread overview]
Message-ID: <18e843783821fb00-webhooks-bot@alsa-project.org> (raw)
In-Reply-To: <alsa-project/alsa-ucm-conf/pr/916@alsa-project.org>
alsa-project/alsa-ucm-conf pull request #916 was opened from fidecastro:
On the Microsoft Surface Laptop 7 (Snapdragon X Elite), plugging in headphones gives no sound: with PipeWire and WirePlumber, no headphone sink is ever created.
The laptop is matched to the ThinkPad T14s profile, which has three DisplayPort outputs. Its sound card has two DisplayPort links (`displayport-0-dai-link` and `displayport-1-dai-link` in `x1e80100-microsoft-romulus.dtsi`), so:
- HDMI2's `JackControl "DP2 Jack"` names a control that does not exist. The port's availability is "unknown", which PipeWire treats as available.
- Headphones and the DisplayPort outputs share a PCM and are `ConflictingDevice`s, so they become alternative card profiles of equal priority. With HDMI2 always "available", WirePlumber stays on the HDMI2 profile when headphones are plugged in.
- At every start PipeWire logs `spa.alsa: '_ucm0001.hw:X1E80100Romulus,0': playback open failed: Invalid argument` and fails to create the HDMI2 sink, and the kernel logs `MultiMedia1 Playback: ASoC: no backend DAIs enabled for MultiMedia1 Playback`.
The jack, the codec and the routing are fine: selecting the headphone profile by hand gives a working sink at once.
This adds a profile for the laptop that is the T14s one without HDMI2 (`MICROSOFT-Surface-Laptop-7.conf`, `SurfaceLaptop7-HiFi.conf`) and takes the laptop out of the T14s match. The only differences from the T14s files are the removed HDMI2 device, its entries in the other devices' `ConflictingDevice` lists, and the `DISPLAY_PORT_RX_2` mixer lines.
**Tested** on a Surface Laptop 7 15" (`Surface_Laptop_7th_Edition_2037`), kernel 7.3, PipeWire 1.6.11, WirePlumber 0.5.19:
- The card has HDMI0, HDMI1 and Headphones profiles, and the errors above are gone.
- The active profile and the default sink follow the jack in both directions, within a second, unaided.
- Headphones play on the correct channels, and the headset microphone records.
- `alsaucm -c X1E80100-Romulus list _devices/HiFi` on this branch's tree lists Speaker, Headphones, Headset, Mic, HDMI0 and HDMI1.
**Not tested:** DisplayPort audio itself (no monitor with speakers at hand; HDMI0 and HDMI1 are unchanged from the T14s profile), and the 13.8" model, which shares the device tree's sound card and the DMI product name, so this profile applies to it too.
I kept the shared-PCM design of the T14s profile. The commit that added the IdeaCentre Mini describes giving each DisplayPort output its own frontend as the better arrangement; I have not attempted that here and would be glad to test it on this hardware.
Prepared with Claude Fable 5.2; tested by me on my own laptop.
Request URL : https://github.com/alsa-project/alsa-ucm-conf/pull/916
Patch URL : https://github.com/alsa-project/alsa-ucm-conf/pull/916.patch
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
parent reply other threads:[~2026-11-15 16:04 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <alsa-project/alsa-ucm-conf/pr/916@alsa-project.org>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=18e843783821fb00-webhooks-bot@alsa-project.org \
--to=github@alsa-project.org \
--cc=alsa-devel@alsa-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.