Skip to content

Dell XPS 14 DA14260 (Panther Lake, 1028:0db9): speakers use default SoundWire machine driver and sound quality is tinny #5725

@AndreasBackx

Description

@AndreasBackx

Summary

Built-in speaker output works on my new Dell XPS 14 DA14260, but the sound quality is quite tinny and not as what I've seen from speaker tests online. It seems like kernel falls back to the default SoundWire machine driver with function topologies instead of finding a board-specific machine driver.

Note: I've used AI to help me debug some of the issues so I can give you the best possible bug report with my limited understanding of SOF and audio on Linux beyond the basics. I did not want to do too invasive steps just yet as described by https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html but let me know if you would like some of the information described there.

I've seen some reports here about failures, but basic functionality here works fine:

  • Sound card registers
  • Speakers are detected and usable
  • Raw ALSA playback works
  • PipeWire routing is correct
  • SOF firmware boots
  • Cirrus amp firmware/tuning loads
  • Calibration seems to be applied on all amps
  • Mixer state looks sane

But the fallback machine-driver path remains, and speaker quality sounds flat compared with expected behaviour.

Hardware

  • Laptop: Dell XPS 14 DA14260
➜ lspci -nnk | rg -A3 -i "audio|multimedia"
00:05.0 Multimedia controller [0480]: Intel Corporation Panther Lake IPU [8086:b05d] (rev 04)
        Subsystem: Dell Device [1028:0db9]
        Kernel driver in use: intel-ipu7
        Kernel modules: intel_ipu7
--
00:1f.3 Audio device [0403]: Intel Corporation Device [8086:e428] (rev 01)
        Subsystem: Dell Device [1028:0db9]
        Kernel driver in use: sof-audio-pci-intel-ptl
        Kernel modules: snd_sof_pci_intel_ptl, snd_hda_intel
00:1f.4 SMBus [0c05]: Intel Corporation Device [8086:e422] (rev 01)
        Subsystem: Dell Device [1028:0db9]

Software

  • Distro: Fedora 43
  • Kernels tested:
    • Fedora 6.19.11
    • vanilla 7.0.0-0.rc7.260407.bfe62a45.254.vanilla.fc43.x86_64
  • Firmware/BIOS:
    • current according to fwupdmgr

Actual Behavior

  • Built-in speakers work.
  • Output is routed correctly to the internal speaker sink.
  • Direct ALSA playback to the speaker PCM works.
  • Sound quality is tinny compared with expectations, or what I saw online.
  • Subjectively there was no meaningful improvement between 6.19.11 and 7.0-rc7.

Expected Behavior

Either:

  • this subsystem should match a board-specific SoundWire machine driver, or
  • the generic function-topology path should already provide correct speaker tuning/quality
    At the moment it appears to be partial bring-up only.

Findings

I put the output of the list of commands I could find through AI to see if it could give a summary of what it thinks is happening.

It wonder whether subsystem 1028:0db9 currently missing board-specific SoundWire machine-driver support, or whether the generic default-machine-driver path expected to provide full/correct speaker tuning on this model?

Strong evidence that the audio stack is basically functional

  • Raw ALSA playback works on the speaker PCM.
  • PipeWire/WirePlumber are functioning normally.
  • The sound card and speaker path register correctly.
  • Dell-specific Cirrus firmware/tuning blobs for subsystem 1028:0db9 are present and loaded.
  • Calibration is applied on all four amps.
  • ALSA mixer state looks sane:
    • Speaker Switch is on
    • AMP1..AMP4 Speaker Switch are on
    • AMP1..AMP4 Speaker Volume are maxed
    • Post Mixer Speaker Playback Volume is maxed
    • Post Mixer Speaker Playback DRC switch is on

Strong evidence that model-specific support is still missing or incomplete

The kernel still reports:

sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for the ACPI-reported configuration:
sof-audio-pci-intel-ptl 0000:00:1f.3: link 0 mfg_id 0x01fa part_id 0x4245 version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x01fa part_id 0x3557 version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: link 3 mfg_id 0x01fa part_id 0x3557 version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: Use SoundWire default machine driver with function topologies

The function-topology path is then used instead of a board-specific machine driver.
At the same time, the amp firmware/tuning/calibration path is active, which suggests this is not a missing-firmware or muted-mixer problem.

Interpretation
This looks like partial bring-up with generic function topologies rather than full model-specific SoundWire machine-driver support/tuning for this exact Dell SKU.

These look related, though not identical:

Logs and other output
➜ uname -r
7.0.0-0.rc7.260407.bfe62a45.254.vanilla.fc43.x86_64

PCI audio device and driver binding

➜ lspci -nnk | rg -A3 -i "audio|multimedia"
00:05.0 Multimedia controller [0480]: Intel Corporation Panther Lake IPU [8086:b05d] (rev 04)
        Subsystem: Dell Device [1028:0db9]
        Kernel driver in use: intel-ipu7
        Kernel modules: intel_ipu7
--
00:1f.3 Audio device [0403]: Intel Corporation Device [8086:e428] (rev 01)
        Subsystem: Dell Device [1028:0db9]
        Kernel driver in use: sof-audio-pci-intel-ptl
        Kernel modules: snd_sof_pci_intel_ptl, snd_hda_intel
00:1f.4 SMBus [0c05]: Intel Corporation Device [8086:e422] (rev 01)
        Subsystem: Dell Device [1028:0db9]

ALSA info alsa-info.sh --no-upload:

https://gist.github.com/AndreasBackx/8fb9c905c1e4e1a5ef8a4b522746e453

Current boot audio logs
Command:

journalctl -b --no-pager | rg -i "sof|soundwire|cs35|cs42|machine driver|topolog|calibration"

https://gist.github.com/AndreasBackx/858c74ef0bf2d1af07e3707b5c7e3e1a

Kernel ring buffer audio logs

sudo dmesg | rg -i "sof|soundwire|cs35|cs42|machine driver|topolog|calibration"

https://gist.github.com/AndreasBackx/9c664b5eea769b2bc61c994dedf82097

ALSA playback devices

➜ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 2: Speaker (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) [HDMI 1]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) [HDMI 2]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) [HDMI 3]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ALSA capture devices

➜ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 1: Jack In (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 4: Microphone (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Raw ALSA speaker playback test

Note:

  • this produces harsh pink noise by design
  • the important part is whether it successfully opens and plays through the speaker PCM
➜ speaker-test -Dhw:0,2 -c2 -r48000 -F S16_LE

speaker-test 1.2.15.2

Playback device is hw:0,2
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 768 to 1048576
Period size range from 384 to 524288
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
 0 - Front Left
 1 - Front Right
Time per period = 5.004328
 0 - Front Left
 1 - Front Right
Time per period = 6.000841
 0 - Front Left
 1 - Front Right
Time per period = 5.999052
 0 - Front Left
 1 - Front Right
Time per period = 6.000084
 0 - Front Left
^C 1 - Front Right
Time per period = 2.499764

PipeWire device graph

wpctl status

https://gist.github.com/AndreasBackx/a916c3956d926f208660074a6f555c32

PulseAudio/PipeWire sink details

pactl list sinks

https://gist.github.com/AndreasBackx/4ef6a1aa13fb355110dec45687f4f15d

ALSA mixer controls

amixer -c 0 scontrols

https://gist.github.com/AndreasBackx/74fd51004222c09b997c45d98c0c1d0d

ALSA mixer values

amixer -c 0 contents

https://gist.github.com/AndreasBackx/99811ece36dcf6ea567f6fd26be10b5c

Audio service status

➜ systemctl --user status pipewire pipewire-pulse wireplumber --no-pager
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded ([/usr/lib/systemd/user/pipewire.service](file:///usr/lib/systemd/user/pipewire.service); disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/pipewire.service.d
             └─00-uresourced.conf
             /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Wed 2026-04-08 14:24:22 BST; 1h 11min ago
 Invocation: 2a2a4546442a4e07bcfea427850378dd
TriggeredBy: ● pipewire.socket
   Main PID: 4638 (pipewire)
      Tasks: 3 (limit: 37907)
     Memory: 36.2M (peak: 42.1M)
        CPU: 2min 23.428s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─4638 /usr/bin/pipewire

Apr 08 14:26:30 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 14:38:56 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 14:49:29 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 14:54:13 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 15:07:10 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 15:09:01 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 15:16:01 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 15:22:35 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859
Apr 08 15:31:11 fedora pipewire[4638]: mod.raop-sink: expected 179025536 != timestamp 235
Apr 08 15:32:43 fedora pipewire[4638]: mod.raop-sink: sess.latency.msec 250.000000 should…81859

● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded ([/usr/lib/systemd/user/pipewire-pulse.service](file:///usr/lib/systemd/user/pipewire-pulse.service); disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Wed 2026-04-08 14:24:27 BST; 1h 11min ago
 Invocation: 26eba72db6ba466bb45f50d2000218e6
TriggeredBy: ● pipewire-pulse.socket
   Main PID: 6066 (pipewire-pulse)
      Tasks: 3 (limit: 37907)
     Memory: 78.7M (peak: 80M)
        CPU: 3min 28.991s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
             └─6066 /usr/bin/pipewire-pulse

Apr 08 15:07:45 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:5
Apr 08 15:09:36 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:5
Apr 08 15:12:08 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:8
Apr 08 15:16:36 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:8
Apr 08 15:18:53 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:5
Apr 08 15:23:10 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:5
Apr 08 15:31:46 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:7
Apr 08 15:33:12 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:4
Apr 08 15:33:18 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:0
Apr 08 15:33:44 fedora pipewire-pulse[6066]: mod.protocol-pulse: [PulseAudio Volume Contr…nel:9

● wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded ([/usr/lib/systemd/user/wireplumber.service](file:///usr/lib/systemd/user/wireplumber.service); enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Wed 2026-04-08 14:24:22 BST; 1h 11min ago
 Invocation: 8a6b95a22bfe4959af99cf465977d29d
   Main PID: 4639 (wireplumber)
      Tasks: 9 (limit: 37907)
     Memory: 12.7M (peak: 15.1M)
        CPU: 6.527s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
             └─4639 /usr/bin/wireplumber

Apr 08 14:24:22 fedora systemd[4169]: Started wireplumber.service - Multimedia Service S…nager.
Apr 08 14:24:23 fedora wireplumber[4639]: [0:00:51.993519112] [4639]  INFO Camera camera_…0.5.2
Apr 08 14:24:23 fedora wireplumber[4639]: [0:00:52.002461401] [4773]  INFO SimplePipeline…edia0
Hint: Some lines were ellipsized, use -l to show in full.

Package versions

➜ rpm -q kernel kernel-core pipewire wireplumber alsa-sof-firmware alsa-ucm alsa-lib alsa-utils linux-firmware
kernel-6.19.10-200.fc43.x86_64
kernel-6.19.11-200.fc43.x86_64
kernel-7.0.0-0.rc7.260407.bfe62a45.254.vanilla.fc43.x86_64
kernel-core-6.19.10-200.fc43.x86_64
kernel-core-6.19.11-200.fc43.x86_64
kernel-core-7.0.0-0.rc7.260407.bfe62a45.254.vanilla.fc43.x86_64
pipewire-1.4.11-1.fc43.x86_64
wireplumber-0.5.14-1.fc43.x86_64
alsa-sof-firmware-2025.12.2-1.fc43.noarch
alsa-ucm-1.2.15.3-1.fc43.noarch
alsa-lib-1.2.15.3-1.fc43.x86_64
alsa-utils-1.2.15.2-1.fc43.x86_64
linux-firmware-20260309-1.fc43.noarch

Firmware update status

➜ fwupdmgr get-updates
Devices with no available firmware updates:
 • Corsair MP700 PRO XT
 • Internal SPI Controller (BIOS)
 • System Firmware
 • TPM
 • Bios DB Key
 • Bios FW Aux Authority
 • KEK CA
 • Key Exchange Key
 • Option ROM UEFI CA
 • Windows UEFI CA
Devices with the latest available firmware version:
 • UEFI CA
 • UEFI dbx
No updates available

Let me know if there is anything more I can provide or if there's something I can do.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions