Skip to content

[FEATURE] Add SoundWire support for RT722 on Link 0 + single RT1320 on Link 2 #5962

Description

@bula0422

[FEATURE][PTL] Add SoundWire support for RT722 on Link 0 + single RT1320 on Link 2

Summary

We would like to request SoundWire audio support for the configuration platform based on Intel Panther Lake.

The platform uses the following SoundWire configuration:

RT722  @ Link 0
RT1320 @ Link 2 (single SmartAmp)

Both RT722 and RT1320 are successfully enumerated on the SoundWire bus with the stock kernel. However, the RT1320 speaker path is not created and the Speaker PCM is missing.

For validation, we added a minimal engineering machine-table entry for this configuration. After the change, the single-amp SOF function topology was loaded, the Speaker PCM was created, and internal speaker playback worked successfully.

We would like to request upstream support for this Panther Lake SoundWire layout and guidance on the appropriate implementation.

Platform

  • Platform: Intel Panther Lake
  • OS: RHEL 10.2
  • Kernel: 6.12.0-211.7.3.el10_2.x86_64
  • SOF firmware: 2.14.1.1
  • PCI audio controller: Intel Panther Lake Smart Sound Technology BUS [8086:e328]
  • PCI subsystem: 1071:b374
  • Physical codecs: Realtek ALC722 + ALC1320
  • Linux driver naming: RT722 + RT1320

SoundWire Enumeration

The stock kernel successfully enumerates:

sdw:0:0:025d:0722:01
sdw:0:0:d010:0105:00
sdw:0:2:025d:1320:01
sdw-master-0-0
sdw-master-0-2

The relevant codec/amp layout is:

SoundWire Link 0
  ├─ 025d:0722 (RT722)
  └─ d010:0105

SoundWire Link 2
  └─ 025d:1320 (single RT1320 SmartAmp)

The corresponding ACPI addresses are:

RT722  Link 0: 0x000030025d072201
RT1320 Link 2: 0x000230025d132001

There is no RT1320 device on SoundWire Link 3.

Stock Behavior

SOF successfully detects SoundWire and boots the firmware:

sof-audio-pci-intel-ptl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
sof-audio-pci-intel-ptl 0000:00:1f.3: Booted firmware version: 2.14.1.1

Function topologies are selected:

Using function topologies instead intel/sof-ipc4-tplg/sof-ptl-rt722.tplg

The following function topologies are loaded:

loading topology 0: intel/sof-ipc4-tplg/sof-sdca-jack-id0.tplg
loading topology 1: intel/sof-ipc4-tplg/sof-sdca-mic-id4.tplg
loading topology 2: intel/sof-ipc4-tplg/sof-hdmi-pcm5-id5.tplg

However, no RT1320 speaker/SmartAmp function topology is loaded.

The resulting playback devices are:

**** List of PLAYBACK Hardware Devices ****

card 0: sofsoundwire [sof-soundwire], device 0: Jack Out
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out

The Speaker PCM is missing even though RT1320 is successfully enumerated on SoundWire Link 2.

Engineering A/B Validation

To validate this configuration, we rebuilt snd-soc-acpi-intel-match.ko with a minimal Panther Lake machine-table entry for:

RT722  @ Link 0
RT1320 @ Link 2 (single SmartAmp)

The engineering change adds:

  1. A single RT1320 descriptor for Link 2.
  2. A SoundWire link description for RT722@L0 + single RT1320@L2.
  3. A Panther Lake machine entry using BIT(0) | BIT(2).

After applying the change:

Machine configuration matches
        ↓
SOF function topologies are selected
        ↓
sof-sdca-1amp-id2.tplg is loaded
        ↓
Speaker PCM 0:2 is created
        ↓
UCM Speaker becomes available
        ↓
Internal speaker playback works

The resulting PCM list includes:

00-00: Jack Out
00-01: Jack In
00-02: Speaker
00-04: Microphone
00-05: HDMI1
00-06: HDMI2
00-07: HDMI3

The RHEL Hardware Certification Internal Audio functional test also passed with this engineering change.

This patch was used only to validate the hardware configuration and is not intended to define the final upstream implementation.

Expected Behavior

With support for the following configuration:

RT722  @ Link 0
RT1320 @ Link 2 (single SmartAmp)

the RT1320 speaker path and corresponding Speaker PCM should be available.

Request for Upstream Guidance

Could the SOF maintainers please advise on the appropriate upstream implementation for this Panther Lake hardware layout?

In particular:

  1. Should Panther Lake add a machine-table entry for RT722 on Link 0 plus a single RT1320 on Link 2?

  2. Should this configuration continue to use SOF function topologies, including sof-sdca-1amp-id2.tplg, or is a dedicated Panther Lake topology required?

  3. Are any additional machine-driver or topology changes required for this single RT1320 configuration?

We can help validate upstream patches and provide test results if needed.

Activity

  1. changed the title [-][FEATURE][/-] [+][FEATURE] Add SoundWire support for RT722 on Link 0 + single RT1320 on Link 2[/+] on Sep 17, 2026
  2. lgirdwood commented on Sep 28, 2026

    @lgirdwood
    Member

    Should be simple for copilot, lets see...

  3. transferred this issue fromthesofproject/sofon Sep 30, 2026
  4. bardliao commented on Sep 30, 2026

    @bardliao
    Collaborator

    @bula0422 There is no single rt722 machine-table entry in snd_soc_acpi_intel_ptl_sdw_machines[]. Can you remove the entry and share the dmesg log?
    IF you do so, please make sure below commits are in your kernel.

    9797329220a2 ASoC: sof-function-topology-lib: escalate the log when missing function topoplogy
    5226d19d4cae ASoC: SOF: Intel: use sof_sdw as default SDW machine driver
    99c159279c6d ASoC: SOF: don't check the existence of dummy topology
    6937ff42f28a ASoC: SOF: add platform name into sof_intel_dsp_desc
    5ed60e45c59d ASoC: soc_sdw_utils: export asoc_sdw_get_dai_type
    7196fc4e4829 ASoC: Intel: export sof_sdw_get_tplg_files
    ea9771390378 ASoC: soc_sdw_utils: add name_prefix to asoc_sdw_codec_info struct
    d25de1647765 ASoC: soc-acpi: make some variables of acpi adr and link adr non-const
    2b92b98cc476 ASoC: SOF: Don't print the monolithic topology name if function topology may be used
    
  5. bula0422 commented on Oct 1, 2026

    @bula0422
    Author

    @bardliao I removed the single RT722 machine-table entry (ptl_rt722_only) from snd_soc_acpi_intel_ptl_sdw_machines[], rebuilt the module, and tested it after reboot.
    After removing the entry, the following messages are observed in dmesg:

    [ 0.000000] Command line: [redacted] "dyndbg=file drivers/soundwire/intel_init.c +p"
    [ 0.011706] Kernel command line: [redacted] "dyndbg=file drivers/soundwire/intel_init.c +p"
    [ 0.018049] software IO TLB: area num 16.
    [ 0.143163] GHES: APEI firmware first mode is enabled by APEI bit.
    [ 1.332820] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it
    [ 1.396875] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
    [ 1.396876] software IO TLB: mapped [mem 0x000000005cdc2000-0x0000000060dc2000] (64MB)
    [ 1.559142] integrity: Machine keyring initialized
    [ 10.417471] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-sc-a0-wh-b0-c99.ucode failed with error -2
    [ 10.459453] snd_soc_acpi_intel_match: loading out-of-tree module taints kernel.
    [ 10.459458] snd_soc_acpi_intel_match: module verification failed: signature and/or required key missing - tainting kernel
    [ 10.465723] iwlwifi 0000:00:14.3: loaded firmware version 101.80584591.0 sc-a0-wh-b0-101.ucode op_mode iwlmld
    [ 10.560557] sof-audio-pci-intel-ptl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
    [ 10.560570] sof-audio-pci-intel-ptl 0000:00:1f.3: enabling device (0000 -> 0002)
    [ 10.560675] sof-audio-pci-intel-ptl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
    [ 10.560731] sof-audio-pci-intel-ptl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
    [ 10.567536] sof-audio-pci-intel-ptl 0000:00:1f.3: use msi interrupt mode
    [ 10.584188] sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for the ACPI-reported configuration:
    [ 10.584190] sof-audio-pci-intel-ptl 0000:00:1f.3: link 0 mfg_id 0xd010 part_id 0x0105 version 0x0
    [ 10.584191] sof-audio-pci-intel-ptl 0000:00:1f.3: link 0 mfg_id 0x025d part_id 0x0722 version 0x3
    [ 10.584192] sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x025d part_id 0x1320 version 0x3
    [ 10.584193] sof-audio-pci-intel-ptl 0000:00:1f.3: part id 0x105 is not supported
    [ 10.584194] sof-audio-pci-intel-ptl 0000:00:1f.3: hda codecs found, mask 4
    [ 10.584195] sof-audio-pci-intel-ptl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
    [ 10.584196] sof-audio-pci-intel-ptl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
    [ 10.584197] sof-audio-pci-intel-ptl 0000:00:1f.3: DMICs detected in NHLT tables: 0
    [ 10.600127] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware paths/files for ipc type 1:
    [ 10.600129] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware file: intel/sof-ipc4/ptl/sof-ptl.ri
    [ 10.600130] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/ptl
    [ 10.600130] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-hda-generic-idisp.tplg
    [ 10.613626] sof-audio-pci-intel-ptl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
    [ 10.749602] sof-audio-pci-intel-ptl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
    [ 10.831407] sof-audio-pci-intel-ptl 0000:00:1f.3: Booted firmware version: 2.14.1.1
    [ 10.840773] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology: intel/sof-ipc4-tplg/sof-hda-generic-idisp.tplg
    [ 10.841476] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
    [ 10.848174] skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
    [ 10.862579] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input12
    [ 10.862694] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input13
    [ 10.862802] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input14

  6. bardliao commented on Oct 1, 2026

    @bardliao
    Collaborator

    [ 10.584193] sof-audio-pci-intel-ptl 0000:00:1f.3: part id 0x105 is not supported
    You probably need https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/soundwire/dmi-quirks.c?id=b7a5d101d7d267922e828c40135bcaccf8cfb3bf

  7. bula0422 commented on Oct 2, 2026

    @bula0422
    Author

    I've made the change, rebuilt the kernel module, and completed the test. Please find the dmesg log attached.

    [ 0.017534] software IO TLB: area num 16.
    [ 1.637207] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it
    [ 1.669723] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
    [ 11.480116] sof-audio-pci-intel-ptl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
    [ 11.480129] sof-audio-pci-intel-ptl 0000:00:1f.3: enabling device (0000 -> 0002)
    [ 11.480256] sof-audio-pci-intel-ptl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
    [ 11.480318] sof-audio-pci-intel-ptl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
    [ 11.487018] sof-audio-pci-intel-ptl 0000:00:1f.3: use msi interrupt mode
    [ 11.504403] sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for the ACPI-reported configuration:
    [ 11.504405] sof-audio-pci-intel-ptl 0000:00:1f.3: link 0 mfg_id 0x025d part_id 0x0722 version 0x3
    [ 11.504406] sof-audio-pci-intel-ptl 0000:00:1f.3: link 2 mfg_id 0x025d part_id 0x1320 version 0x3
    [ 11.504409] sof-audio-pci-intel-ptl 0000:00:1f.3: Use SoundWire default machine driver with function topologies
    [ 11.504409] sof-audio-pci-intel-ptl 0000:00:1f.3: hda codecs found, mask 4
    [ 11.504410] sof-audio-pci-intel-ptl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
    [ 11.504411] sof-audio-pci-intel-ptl 0000:00:1f.3: DMICs detected in NHLT tables: 0
    [ 11.519162] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware paths/files for ipc type 1:
    [ 11.519163] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware file: intel/sof-ipc4/ptl/sof-ptl.ri
    [ 11.519164] sof-audio-pci-intel-ptl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/ptl
    [ 11.519165] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology file: function topologies
    [ 11.532574] sof-audio-pci-intel-ptl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
    [ 11.684844] sof-audio-pci-intel-ptl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
    [ 11.766881] sof-audio-pci-intel-ptl 0000:00:1f.3: Booted firmware version: 2.14.1.1
    [ 11.778807] sof-audio-pci-intel-ptl 0000:00:1f.3: Using function topologies instead intel/sof-ipc4-tplg/sof-ptl-dummy.tplg
    [ 11.778814] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 0: intel/sof-ipc4-tplg/sof-hdmi-pcm5-id3.tplg
    [ 11.779746] sof-audio-pci-intel-ptl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
    [ 11.779836] sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
    [ 11.787572] sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
    [ 11.801588] input: sof-soundwire Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input12
    [ 11.801632] input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input13
    [ 11.801664] input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14
    [ 11.801688] input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15

  8. bardliao commented on Oct 5, 2026

    @bardliao
    Collaborator

    @bula0422
    [ 11.778814] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 0: intel/sof-ipc4-tplg/sof-hdmi-pcm5-id3.tplg
    No sdw function topology is loaded.
    Please rename sof-dyndbg.conf.txt to sof-dyndbg.conf and put it in the /etc/modprobe.d/ directory and share the full dmesg log after reboot.

  9. bula0422 commented on Oct 5, 2026

    @bula0422
    Author

    @bardliao
    I've applied the provided sof-dyndbg.conf and rebooted the system. Attached is the full dmesg log for your review.

    dmesg-sof-dyndbg.txt

  10. bula0422 commented on Oct 6, 2026

    @bula0422
    Author

    @bardliao
    After applying the change and rebooting, there is still no audio output. However, the output device is now shown as
    Speaker-sof-soundwire.

    I've attached the full dmesg log for reference.

    dmesg-sof-debug.txt

  11. bardliao commented on Oct 6, 2026

    @bardliao
    Collaborator

    @bula0422 Please share the output of alsa-info.

  12. bula0422 commented on Oct 6, 2026

    @bula0422
    Author

    @bardliao Please find the alsa-info output attached.
    alsa-info.txt

  13. bardliao commented on Oct 7, 2026

    @bardliao
    Collaborator

    @bula0422 I can't find any issue. However, your kernel version 6.12.0 is relative old. Maybe you need to update the rt1320 codec driver. @thesofproject/realtek Can you take a look?

  14. bula0422 commented on Oct 8, 2026

    @bula0422
    Author

    @bardliao @thesofproject/realtek
    I found the following RT1320 commit:

    9b30521 — ASoC: rt1320: run the initialisation preset on the first hardware init
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9b30521074f01aff856f539c1241a48342b69f7c

    After applying this change to the RT1320 driver on my RHEL 10.2 kernel, the speaker audio is working correctly now.
    Could you please confirm whether this is the expected fix for this issue, or if there are any additional RT1320 changes that should also be applied?

    Thanks.

  15. bula0422 commented on Oct 8, 2026

    @bula0422
    Author

    I also noticed another issue: Speaker-sof-soundwire is available as an output device, but there are no input devices available.

    Could you please help check this issue as well?

  16. bardliao commented on Oct 8, 2026

    @bardliao
    Collaborator

    I also noticed another issue: Speaker-sof-soundwire is available as an output device, but there are no input devices available.

    Could you please help check this issue as well?

    [   10.741357] snd_soc_sdw_utils:asoc_sdw_init_dai_link: sof_sdw sof_sdw: create dai link SDW0-Playback-SimpleJack, id 0
    [   10.741368] snd_soc_sdw_utils:asoc_sdw_init_dai_link: sof_sdw sof_sdw: create dai link SDW0-Capture-SimpleJack, id 1
    [   10.741370] snd_soc_sdw_utils:asoc_sdw_init_dai_link: sof_sdw sof_sdw: create dai link SDW2-Playback-SmartAmp, id 2
    [   10.741372] snd_soc_sdw_utils:asoc_sdw_init_dai_link: sof_sdw sof_sdw: create dai link iDisp1, id 3
    [   10.741373] snd_soc_sdw_utils:asoc_sdw_init_dai_link: sof_sdw sof_sdw: create dai link iDisp2, id 4
    [   10.741374] snd_soc_sdw_utils:asoc_sdw_init_dai_link: sof_sdw sof_sdw: create dai link iDisp3, id 5
    

    Looks like the SmartMic dai link is not created. But I don't get the reason. Can you please apply below change and share the dmesg log?

    diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
    index 40f401fae324..7aff34e91cb0 100644
    --- a/sound/soc/sof/intel/hda.c
    +++ b/sound/soc/sof/intel/hda.c
    @@ -1203,6 +1203,7 @@ static bool is_endpoint_present(struct sdw_slave *sdw_device, int dai_type)
     {
            int i;
    
    +       dev_err(&sdw_device->dev, "checking endpoint DAI type %d\n", dai_type);
            /* If SDCA is not present, assume the endpoint is present */
            if (!sdw_device->sdca_data.interface_revision) {
                    dev_warn(&sdw_device->dev, "SDCA properties not found in BIOS\n");
  17. bula0422 commented on Oct 8, 2026

    @bula0422
    Author

    @bardliao
    I added the requested debug log and rebuilt the module.
    Please find the full dmesg log attached.

    [ 10.374419] soundwire sdw:0:0:025d:0722:01: checking endpoint DAI type 0
    [ 10.374421] soundwire sdw:0:0:025d:0722:01: checking endpoint DAI type 1
    [ 10.374422] soundwire sdw:0:0:025d:0722:01: checking endpoint DAI type 2
    [ 10.374425] rt1320-sdca sdw:0:2:025d:1320:01: checking endpoint DAI type 1

  18. bardliao commented on Oct 8, 2026

    @bardliao
    Collaborator

    @bula0422 You may miss below commits.
    b33b340 ASoC: SOF: Intel: Fixes for find_acpi_adr_device() when some endpoints are missing
    86facd8 ASoC: SOF: Intel: Fix endpoint index if endpoints are missing

    Please share your sound/soc/sof/intel/hda.c if applying above commits doesn't fix the issue.

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

Metadata

Metadata

Labels

RealtekIssue with codec/Amp from RealtekenhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions