Repository navigation
[FEATURE] Add SoundWire support for RT722 on Link 0 + single RT1320 on Link 2 #5962
Description
[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:
- A single RT1320 descriptor for Link 2.
- A SoundWire link description for RT722@L0 + single RT1320@L2.
- 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:
-
Should Panther Lake add a machine-table entry for RT722 on Link 0 plus a single RT1320 on Link 2?
-
Should this configuration continue to use SOF function topologies, including
sof-sdca-1amp-id2.tplg, or is a dedicated Panther Lake topology required? -
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
[-][FEATURE][/-][+][FEATURE] Add SoundWire support for RT722 on Link 0 + single RT1320 on Link 2[/+]lgirdwood commentedon Sep 28, 2026
Should be simple for copilot, lets see...
bardliao commentedon Sep 30, 2026
@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.
bula0422 commentedon Oct 1, 2026
@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
bardliao commentedon Oct 1, 2026
[ 10.584193] sof-audio-pci-intel-ptl 0000:00:1f.3: part id 0x105 is not supportedYou probably need https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/soundwire/dmi-quirks.c?id=b7a5d101d7d267922e828c40135bcaccf8cfb3bf
bula0422 commentedon Oct 2, 2026
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
bardliao commentedon Oct 5, 2026
@bula0422
[ 11.778814] sof-audio-pci-intel-ptl 0000:00:1f.3: loading topology 0: intel/sof-ipc4-tplg/sof-hdmi-pcm5-id3.tplgNo 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.bula0422 commentedon Oct 5, 2026
@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
bardliao commentedon Oct 5, 2026
@bula0422 You need https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/sound/soc/intel/boards/sof_sdw.c?id=c84179a1d36bebe99d9694502737ae9f3a90d2bc, too.
bula0422 commentedon Oct 6, 2026
@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
6 remaining items
bardliao commentedon Oct 8, 2026
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?
bula0422 commentedon Oct 8, 2026
@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
bardliao commentedon Oct 8, 2026
@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.cif applying above commits doesn't fix the issue.bula0422 commentedon Oct 12, 2026
@bardliao
The input device is now available and shown as
SoundWire Microphones - sof - soundwire.However, there is still no audio captured when trying to record from this input device.
hda.c
bardliao commentedon Oct 12, 2026
@bula0422 Please share the alsa-info output. May I know what is the brand of your device?
bula0422 commentedon Oct 12, 2026
@bardliao
The device brand is Getac.
alsa-info.txt
bardliao commentedon Oct 13, 2026
@bula0422 The alsa-info looks good. Need Realtek's help on the issue. @jack-cy-yu Can you take a look?
bula0422 commentedon Oct 13, 2026
@bardliao
Previously, the microphone device was present and the capture stream could start, but the recorded audio was silent.
After a full power cycle, the microphone can now record audio normally. The speaker is also working normally.
Thanks.
bardliao commentedon Oct 13, 2026
Ok, good. Did you switch between Windows and Linux? I am trying to understand why the microphone didn't work.
bula0422 commentedon Oct 14, 2026
@bardliao
After repeating the test several times, I can consistently reproduce the issue when switching from Windows to Linux.
The microphone works normally in Windows, but after rebooting from Windows into Linux, the microphone does not work. If I shut down instead and then boot into Linux, the microphone works normally.
bardliao commentedon Oct 14, 2026
@bula0422 Now I am pretty sure the issue is that your codec driver doesn't reset the codec properly. Please cherry pick the commits after the "Linux 6.12" commit from https://github.com/bardliao/linux/commits/rt722-backport-v6.12/. I think the "ASoC: rt722: reset codec to fix abnormal sound" is the key comment. But there are a lot of dependency between 6.12 and the latest kernel. Note that I just did compile test, not able to test it on any device.
bula0422 commentedon Oct 14, 2026
@bardliao
After applying commit 910fb1d, the issue is resolved.
The microphone now works normally in Linux after rebooting from Windows.
bardliao commentedon Oct 14, 2026
@bula0422 May I close the issue is there is no further issues.?
bula0422 commentedon Oct 15, 2026
@bardliao
Yes, please feel free to close the issue.
Thank you very much for your help and support!