Skip to content

PTL: HP OmniBook X Flip 14 (103c:8ea4) - no speaker output, no SoundWire machine match (RT712 + 2x TAS2783) #5981

Open

Description

@kevoriordan

Hardware

  • HP OmniBook X Flip Laptop 14-kb0xxx, BIOS F.10
  • Audio controller: Intel Core Ultra Series 3 (Panther Lake), PCI 8086:e428, subsystem 103c:8ea4
  • SoundWire devices (all Attached):
    • link 2: sdw:0:2:0102:0000:01:9 and sdw:0:2:0102:0000:01:c (TI, handled by slave-tas2783)
    • link 3: sdw:0:3:025d:0712:01 (Realtek RT712)

Software

  • Ubuntu 26.10, kernel 7.3.0-9-generic
  • linux-firmware 20260915, firmware-sof-signed 2026.09-1, alsa-ucm-conf 1.2.16.1-1ubuntu1
  • PipeWire 1.6.8 / WirePlumber 0.5.17

Problem
Only "Dummy Output" is offered. The card sof-soundwire is registered, but the HiFi profile is unavailable (pw profile list: off / HiFi=no / pro-audio), so no speaker sink exists.

Kernel log

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 2 mfg_id 0x0102 part_id 0x0000 version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x0102 part_id 0x0000 version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: link 3 mfg_id 0x025d part_id 0x0712 version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: Use SoundWire default machine driver with function topologies
acpi device:1e: function type only supported as DisCo constant
acpi device:20: function type only supported as DisCo constant
acpi device:22: SDCA function UAJ (type 6) at 0x1
acpi device:23: SDCA function SmartMic (type 3) at 0x2
acpi device:24: SDCA function HID (type 10) at 0x3

Only the jack (sof-sdca-jack-id0.tplg), mic (sof-sdca-mic-id4.tplg) and HDMI (sof-hdmi-pcm5-id5.tplg) topologies are loaded. No amp topology is loaded, although sof-sdca-2amp-id2.tplg is installed. I also see hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3.

Analysis
The ACPI tables (dump attached on request) describe the two TAS2783 amps as plain SoundWire peripherals with no SDCA speaker function: no function-type property, and the only mipi-sdca-function-* entries belong to the RT712 UAJ/SmartMic/HID functions. The generic function-topology path therefore cannot identify them as amplifiers. This looks like it needs a soc-acpi-intel-ptl-match.c entry (RT712 jack/mic + 2x TAS2783 on link 2, using sof-sdca-2amp-id2.tplg or similar), or another way to infer the amp function. I have not tested a patch.

Firmware (separate, partly worked around)
tas2783 requested 8EA4-2-0xC.bin / 8EA4-2-0x9.bin from /lib/firmware/. linux-firmware ships 8EA4-0-2-0x{9,C}.bin.zst and 8EA4-1-2-0x{9,C}.bin.zst, so the names did not match. After symlinking 8EA4-2-0x{9,C}.bin.zst to the -0- files and reloading snd_sof_pci_intel_ptl, the firmware-load errors disappeared, but there is still no speaker sink. Which of the -0-/-1- files belongs to which amp is a guess.

Also noticed
UBSAN: shift-out-of-bounds in sound/soc/sof/ipc4-topology.c:2471:13 from _sof_ipc4_prepare_copier_module during sof_pcm_hw_params (full trace in ubsan.txt). It may be unrelated.

Attachments: dmesg-audio.txt, ubsan.txt, soundwire.txt, alsa-info.txt, fw-links.txt, system.txt; acpi.dump (3.9 MB) available on request.

Questions

  • Is a machine-driver match for this configuration already in progress?
  • Which TAS2783 firmware file is correct for each amp address (0x9, 0xC)?

Downstream report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2171307

Activity

  1. added
    TIIssue with codec/Amp from TI
    on Oct 19, 2026
  2. kv2019i commented on Oct 19, 2026

    @kv2019i
    Collaborator

    #5982 seems similar. We have not been directly in the loop w.r.t. this configuration. The driver is present in upstream, so that's good at least. @bardliao , I guess easiest path would be to add an old-style machine entry for this configuration? (for context: with standard SDCA, we should be able to set up a card based on the BIOS description, but we seem to be missing pieces here)

  3. added
    SDWApplies to SoundWire bus for codec connection
    on Oct 19, 2026
  4. bardliao commented on Oct 20, 2026

    @bardliao
    Collaborator

    Yes, @kv2019i @kevoriordan @PatrickH1999 #5981 and #5982 are the same. We should just keep one.

    Oct 17 19:05:44 KevinOmnibookUbuntu kernel: acpi device:1e: function type only supported as DisCo constant
    Oct 17 19:05:44 KevinOmnibookUbuntu kernel: acpi device:20: function type only supported as DisCo constant
    Oct 17 19:05:44 KevinOmnibookUbuntu kernel: acpi device:22: SDCA function UAJ (type 6) at 0x1
    Oct 17 19:05:44 KevinOmnibookUbuntu kernel: acpi device:23: SDCA function SmartMic (type 3) at 0x2
    Oct 17 19:05:44 KevinOmnibookUbuntu kernel: acpi device:24: SDCA function HID (type 10) at 0x3
    

    It is likely the BIOS issue again.
    Please see #5760 (comment).

  5. bardliao commented on Oct 20, 2026

    @bardliao
    Collaborator

    @kevoriordan @PatrickH1999 While waiting for the BIOS update, could you test if #5986 help?

  6. PatrickH1999 commented on Oct 20, 2026

    @PatrickH1999

    @bardliao Thanks — #5986 helps. With it the internal speaker PCM is created and plays via direct ALSA. Note: audio is not yet reaching the speakers through PipeWire/normal apps — see the last point.

    HP OmniBook X 14 (board 8EA6, 2× TAS2783 on SoundWire link 2, Panther Lake), kernel 7.2.11-arch1 + this patch:

    A Speaker PCM is now created — aplay -l shows card 0: sofsoundwire, device 2: Speaker (and device 35 “Deepbuffer Speaker”). Without the patch there was no speaker PCM at all, only Jack + HDMI.
    dmesg now loads an amp topology that was never selected before:
    loading topology 0: intel/sof-ipc4-tplg/sof-sdca-1amp-id2.tplg
    Direct ALSA playback to the PCM is clearly audible from the internal speakers: speaker-test -D hw:0,2 -c2 -t sine -f440 -l1

    A few remaining observations (possibly separate / expected, not blockers for the patch itself):

    The No SoundWire machine driver found ... Use SoundWire default machine driver with function topologies message is still printed.
    It selects 1amp although there are two TAS2783 amps on link 2 — is that expected for this config, or should both be driven?
    The per-amp calibration blobs are still missing (8EA6-2-0x{9,C}.bin ... error -2, fallback load), so the amp runs uncalibrated — audio is audible regardless.
    Only speaker-test/direct ALSA produces sound so far. PipeWire/WirePlumber does not expose the speaker as a sink yet (pactl still shows only auto_null), so normal apps (browser, etc.) stay silent. This looks like a userspace/UCM matter rather than part of this patch, but flagging it in case it’s related.

    Happy to run further tests.

  7. PatrickH1999 commented on Oct 20, 2026

    @PatrickH1999

    @bardliao Update: with #5986 the internal speakers now work end-to-end, including normal apps (browser audio), after one userspace step. Summary for this board:

    HP OmniBook X 14 (board 8EA6, 2× TAS2783 on SoundWire link 2, Panther Lake), kernel 7.2.11-arch1 + this patch.

    Kernel side — the patch fixes it:

    A Speaker PCM is created: aplay -l → card 0: sofsoundwire, device 2: Speaker. Without the patch there was no speaker PCM at all.
    The amp topology now loads: loading topology 0: intel/sof-ipc4-tplg/sof-sdca-1amp-id2.tplg.
    alsa.components now reports cfg-amp:2 ... spk:tas2783 hs:rt712 mic:rt712.
    Direct ALSA playback is audible: speaker-test -D hw:0,2.

    Userspace — why apps were initially silent (separate from this patch):

    The card’s ACP/UCM profile came up as off. The only non-pro output profile (output:stereo-fallback) is marked available: no and contains only a Headphones port — no speaker port, so PipeWire fell back to a null sink.
    Switching the card to the pro-audio profile exposes the raw Speaker PCM (pro-output-2); setting it as the default sink gives working speaker audio for all apps (YouTube etc.).
    So the remaining gap looks like missing ALSA UCM/ACP speaker routing for the 8EA6 config, i.e. an alsa-ucm-conf matter rather than this kernel patch.

    Still open / possibly expected:

    No SoundWire machine driver found ... default machine driver with function topologies is still printed.
    Topology is 1amp although there are two TAS2783 on link 2 — expected, or should both be driven?
    Per-amp calibration blobs still missing (8EA6-2-0x{9,C}.bin ... error -2, fallback load); amp runs uncalibrated but audio is fine.

    Net: #5986 is what makes the speakers reachable at all on this board. Happy to run further tests.

  8. kevoriordan commented on Oct 20, 2026

    @kevoriordan
    Author

    @bardliao Tested #5986 on HP OmniBook X Flip 14-kb0xxx (board 8EA4, BIOS F.10, 2× TAS2783 on link 2 + RT712 on link 3), Ubuntu 26.10 kernel 7.3.0-9-generic, rebuilding only snd-sof-intel-hda-generic with the patch.

    It helps, but only the left speaker plays.

    • loading topology 0: intel/sof-ipc4-tplg/sof-sdca-1amp-id2.tplg (plus jack-id0, mic-id4, hdmi-pcm5-id5)
    • aplay -l: device 2 Speaker, device 35 Deepbuffer Speaker
    • components: cfg-amp:2 iec61937-pcm:7,6,5 spk:tas2783 hs:rt712 mic:rt712
    • Unlike No internal speakers on HP OmniBook X 14 (8EA6, Panther Lake) — 2x TAS2783 report part_id 0x0000, no machine driver match #5982, the HiFi UCM profile is available here and PipeWire exposes Speaker, Headphones, HDMI 1–3, SoundWire Microphones and Headset Mic, with no pro-audio workaround needed.
    • Only the left speaker produces sound. With PipeWire stopped, speaker-test -D hw:0,2 -c2 -s1 -t wav ("Front Left") is audible from the left speaker, while -s2 ("Front Right") is silent. Mapping looks correct; the right channel / second amp just produces nothing. Possibly related to the 1amp topology being selected with two amps present.
    • Reading the amp mixer controls (tas2783-{1,2} Speaker/Amp Volume) logs, for both amps (sdw:0:2:0102:0000:01:9 and :01:c):
      slave-tas2783 sdw:0:2:0102:0000:01:9: ASoC error (-16): at soc_component_read_no_lock() on sdw:0:2:0102:0000:01:9 for register: [0x00800003]
      slave-tas2783 sdw:0:2:0102:0000:01:9: ASoC error (-16): at soc_component_read_no_lock() on sdw:0:2:0102:0000:01:9 for register: [0x0080001a]
      
      and amixer then reports both tas2783-N Speaker volumes as 0 / -100 dB, even though the left side is audible.

    Still seen: "No SoundWire machine driver found … function topologies", and the UBSAN shift-out-of-bounds in ipc4-topology.c:2471.

    Calibration note: tas2783 requests 8EA4-2-0x{9,C}.bin from /lib/firmware, but linux-firmware only provides 8EA4-{0,1}-2-0x{9,C}.bin.zst. I symlinked 8EA4-2-0x{9,C}.bin.zst → 8EA4-0-2-…, which removed the load errors, but I don't know if the -0- variant is the right one for each amp.

    Happy to test further (e.g. a 2amp topology, or other firmware variants).

  9. kevoriordan commented on Oct 20, 2026

    @kevoriordan
    Author

    Follow-up on the #5986 test (same setup: HP OmniBook X Flip 14, 8EA4, kernel 7.3.0-9-generic + patched snd-sof-intel-hda-generic).

    1. Kernel oops in SoundWire bandwidth allocation when an amp has no firmware

    On one boot (it followed a hung systemctl hibernate, so the amp may have been left in a bad state), amp :c refused playback, and WirePlumber's later stream prepare hit a divide-by-zero:

    [    8.159090] slave-tas2783 sdw:0:2:0102:0000:01:c: error playback without fw download
    [    8.159108] slave-tas2783 sdw:0:2:0102:0000:01:c: ASoC error (-22): at snd_soc_dai_hw_params() on tas2783-codec
    [    8.159542]  SDW2-Playback-SmartAmp: ASoC error (-22): at __soc_pcm_hw_params() on SDW2-Playback-SmartAmp
    [    8.159550]  Speaker: ASoC error (-22): at dpcm_fe_dai_hw_params() on Speaker
       (repeated 10x)
    [    8.271090] UBSAN: shift-out-of-bounds in sound/soc/sof/ipc4-topology.c:2471:13 (shift exponent 18446744069414584384)
    [   18.919339] Oops: divide error: 0000 [#1] SMP NOPTI
    [   18.919353] CPU: 7 UID: 1000 PID: 3964 Comm: wireplumber Tainted: G OE 7.3.0-9-generic #9-Ubuntu
    [   18.919361] RIP: 0010:sdw_compute_group_params+0x8b/0x270 [soundwire_generic_allocation]
      sdw_compute_port_params -> sdw_compute_params -> _sdw_prepare_stream -> sdw_prepare_stream
      -> asoc_sdw_prepare -> snd_soc_link_prepare -> __soc_pcm_prepare -> dpcm_be_dai_prepare -> dpcm_fe_dai_prepare
    

    So a failed hw_params on the amp still lets prepare run with zero-valued group params. This happened on 2 consecutive boots, then not again. The vmcore is available if useful. (The ipc4-topology UBSAN also appears with the stock driver.)

    2. Right speaker silent with either calibration variant

    linux-firmware ships two tunings per amp for this board. 8EA4-{0,1}-2-0x{9,C} link to the 8EA1-* files, whose headers read HP_Kento_14_SDW_alpha10_Stereo_AAC_20251014 (-0-) and ..._Stereo_FG_20251014 (-1-), i.e. per-speaker-supplier variants. The driver only requests 8EA4-2-0x{9,C}.bin, so neither gets picked automatically. I tested both via symlinks: no firmware-load errors either way, the left speaker plays, and the right speaker (speaker-test -D hw:0,2 -c2 -s2) is silent with both. So the missing channel doesn't look like a calibration-file issue. The 1amp topology being selected with 2 amps present seems the more likely cause.

    Happy to test a 2amp topology or further patches.

  10. kevoriordan commented on Oct 20, 2026

    @kevoriordan
    Author

    Correction to my last two comments: I suggested the 1amp topology might be why the right speaker is silent, but that looks wrong. In sound/soc/intel/common/sof-function-topology-lib.c, the amp topology is named from dai_link->num_cpus ("sdca-%damp"), i.e. the number of SoundWire links carrying amps, not the number of amps. Both TAS2783s are on link 2, so sof-sdca-1amp-id2.tplg is the expected choice here.

    So the silent right channel is more likely in how the two amps on link 2 (uid 0x9 and 0xC) are mapped to channels, or in the second amp's setup. The ASoC error (-16) register reads on both amps may be relevant. Happy to test a patch.

  11. bardliao commented on Oct 21, 2026

    @bardliao
    Collaborator

    @kevoriordan @PatrickH1999 Thanks for the testing. The "audio is not yet reaching the speakers through PipeWire/normal apps" issue might be an UCM issue. Please update the latest UCM from https://github.com/alsa-project/alsa-ucm-conf. Need @niranjanhyti 's help on the issue. And answer other questions.

    1. sof-sdca-1amp-id2.tplg is expected because the 2 amps are on the same link.
    2. "No SoundWire machine driver found … function topologies" is expected. That is just because we don't add audio configs to the acpi mach table for PTL+ platforms. The direction is to use the default SoundWire machine driver with function topologies.
    3. For the out of bounds issue, you need https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=746de48c3a250f0c264105dcbfcdf0c5001e970b which is in 7.3 kernel.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    SDWApplies to SoundWire bus for codec connectionTIIssue with codec/Amp from TI

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions