From 8a976377164fa1a353415a043b8c7b0f8266a93a Mon Sep 17 00:00:00 2001 From: Joe Cheng Date: Thu, 17 Sep 2026 17:13:49 +0800 Subject: [PATCH 1/3] dts: increase heap size on ptl DTS library would allocate memory failed when there are multiples apps are launched and endpoint switches at the same time. Incease the size to avoid this issue Signed-off-by: Joe Cheng --- app/overlays/ptl/dts_overlay.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/app/overlays/ptl/dts_overlay.conf b/app/overlays/ptl/dts_overlay.conf index 793559ad5de7..488c339031f5 100644 --- a/app/overlays/ptl/dts_overlay.conf +++ b/app/overlays/ptl/dts_overlay.conf @@ -4,3 +4,4 @@ CONFIG_DTS_CODEC=y CONFIG_LLEXT_HEAP_SIZE=64 CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=n CONFIG_SOF_STACK_SIZE=8192 +CONFIG_SOF_ZEPHYR_HEAP_SIZE=0x80000 From e9bc3412ea90e854b4fae1b2ee7eb34b1476d805 Mon Sep 17 00:00:00 2001 From: Joe Cheng Date: Wed, 23 Sep 2026 16:30:30 +0800 Subject: [PATCH 2/3] topology2: add DTS_CORE_ID Add DTS_CORE_ID and let the pipeline could run on approriate core Signed-off-by: Joe Cheng --- tools/topology/topology2/cavs-sdw.conf | 1 + .../topology2/platform/intel/sdw-amp-dts.conf | 21 ++++++++++++++ .../platform/intel/sdw-jack-dts.conf | 28 +++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index d0e426e1e143..8a83d148cc14 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -121,6 +121,7 @@ Define { SDW_AMP_XOVER_EQIIR_PARAMS default SDW_AMP_XOVER_EQFIR_PARAMS default DOLBY_DAX_CORE_ID 0 + DTS_CORE_ID 0 SDW_AMP_PIPELINE_SRC "generic" SDW_JACK_PIPELINE_SRC "generic" SDW_ECHO_REF_DAI "false" diff --git a/tools/topology/topology2/platform/intel/sdw-amp-dts.conf b/tools/topology/topology2/platform/intel/sdw-amp-dts.conf index 60710c634782..9ea033be982f 100644 --- a/tools/topology/topology2/platform/intel/sdw-amp-dts.conf +++ b/tools/topology/topology2/platform/intel/sdw-amp-dts.conf @@ -55,6 +55,7 @@ Object.Dai.ALH [ Object.Widget.module-copier."22" { index 21 + core_id $DTS_CORE_ID num_input_pins 1 num_output_pins 2 num_input_audio_formats 1 @@ -79,6 +80,11 @@ IncludeByKey.PASSTHROUGH { host-copier-gain-mixin-playback [ { index 20 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } Object.Widget.host-copier.1 { stream_name "sdw amplifiers" @@ -143,6 +149,11 @@ IncludeByKey.PASSTHROUGH { mixout-gain-eqiir-dts-alh-dai-copier-playback [ { index 21 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } Object.Widget.alh-copier.1 { stream_name $SDW_SPK_STREAM @@ -185,6 +196,7 @@ IncludeByKey.PASSTHROUGH { } Object.Widget.dts.1 { + core_id $DTS_CORE_ID Object.Control { bytes."1" { name 'Post Mixer $AMP_PLAYBACK_NAME DTS bytes' @@ -243,6 +255,12 @@ IncludeByKey.PASSTHROUGH { Object.Pipeline.host-gateway-playback [ { index 20 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } + Object.Widget.host-copier.1 { stream_name "sdw amplifiers" pcm_id 2 @@ -289,6 +307,7 @@ IncludeByKey.PASSTHROUGH { direction playback type dai_in index 21 + core_id $DTS_CORE_ID num_input_audio_formats 3 Object.Base.input_audio_format [ { @@ -318,6 +337,7 @@ IncludeByKey.PASSTHROUGH { pipeline [ { index 21 + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 @@ -889,6 +909,7 @@ IncludeByKey.SDW_AMP_FEEDBACK { pipeline [ { index 31 + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 diff --git a/tools/topology/topology2/platform/intel/sdw-jack-dts.conf b/tools/topology/topology2/platform/intel/sdw-jack-dts.conf index 4264b9669060..334d576b009e 100644 --- a/tools/topology/topology2/platform/intel/sdw-jack-dts.conf +++ b/tools/topology/topology2/platform/intel/sdw-jack-dts.conf @@ -56,6 +56,11 @@ IncludeByKey.PASSTHROUGH { host-copier-gain-mixin-playback [ { index 0 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } Object.Widget.host-copier.1 { stream_name "volume playback 0" @@ -163,6 +168,11 @@ IncludeByKey.PASSTHROUGH { mixout-gain-eqiir-dts-alh-dai-copier-playback [ { index 1 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } Object.Widget.mixout.1 { Object.Base.input_audio_format [ @@ -240,6 +250,7 @@ IncludeByKey.PASSTHROUGH { } Object.Widget.dts.1 { + core_id $DTS_CORE_ID Object.Control { bytes."1" { name 'Post Mixer $JACK_PLAYBACK_PCM_NAME DTS bytes' @@ -255,6 +266,12 @@ IncludeByKey.PASSTHROUGH { Object.Pipeline.host-gateway-playback [ { index 0 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } + Object.Widget.host-copier.1 { stream_name "volume playback 0" pcm_id 0 @@ -304,6 +321,7 @@ IncludeByKey.PASSTHROUGH { stream_name $SDW_JACK_OUT_STREAM node_type $ALH_LINK_OUTPUT_CLASS index 1 + core_id $DTS_CORE_ID type dai_in direction playback num_input_pins 1 @@ -340,6 +358,7 @@ IncludeByKey.PASSTHROUGH { pipeline [ { index 1 + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 @@ -352,6 +371,11 @@ IncludeByKey.PASSTHROUGH { Object.Pipeline.host-gateway-capture [ { index 10 + core_id $DTS_CORE_ID + + Object.Widget.pipeline.1 { + core $DTS_CORE_ID + } Object.Widget.host-copier.1 { stream_name "Passthrough Capture 0" @@ -426,6 +450,7 @@ Object.Pipeline.host-gateway-capture [ Object.Widget { module-copier."12" { index 1 + core_id $DTS_CORE_ID num_input_pins 1 num_output_pins 2 num_input_audio_formats 1 @@ -452,6 +477,7 @@ Object.Widget { direction "capture" type "dai_out" index 11 + core_id $DTS_CORE_ID node_type $ALH_LINK_INPUT_CLASS num_input_audio_formats 1 num_output_audio_formats 1 @@ -479,6 +505,7 @@ Object.Widget { pipeline [ { index 11 + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 @@ -487,6 +514,7 @@ Object.Widget { "false" { Object.Widget.eqiir [ { + core_id $DTS_CORE_ID num_input_audio_formats 1 num_output_audio_formats 1 # index 11 is inherited from the pipeline definition From ffc3d4904a936a2fef939c4e9f911490e318e9fe Mon Sep 17 00:00:00 2001 From: Joe Cheng Date: Wed, 23 Sep 2026 16:32:51 +0800 Subject: [PATCH 3/3] topology2: add DTS topology for SDCA Enable DTS topology for SDCA and set to different cores for speaker/heapdhone pipeline to avoid resource not enough Signed-off-by: Joe Cheng --- .../topology2/production/tplg-targets-sdca-generic.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/topology/topology2/production/tplg-targets-sdca-generic.cmake b/tools/topology/topology2/production/tplg-targets-sdca-generic.cmake index c7d5b5d8af1b..59bbf55225ff 100644 --- a/tools/topology/topology2/production/tplg-targets-sdca-generic.cmake +++ b/tools/topology/topology2/production/tplg-targets-sdca-generic.cmake @@ -15,6 +15,13 @@ SDW_JACK_IN_STREAM=Capture-SimpleJack,NUM_HDMIS=0" SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,NUM_HDMIS=0,\ DEEP_BUF_SPK=true" +"cavs-sdw\;sof-sdca-jack-id0-dts\;SDW_JACK_OUT_STREAM=Playback-SimpleJack,\ +SDW_JACK_IN_STREAM=Capture-SimpleJack,NUM_HDMIS=0,SDW_JACK_PIPELINE_SRC=dts" + +"cavs-sdw\;sof-sdca-1amp-id2-dts\;NUM_SDW_AMP_LINKS=1,SDW_JACK=false,\ +SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,NUM_HDMIS=0,\ +DEEP_BUF_SPK=true,SDW_AMP_PIPELINE_SRC=dts,DTS_CORE_ID=1" + "cavs-sdw\;sof-sdca-2amp-id2\;NUM_SDW_AMP_LINKS=2,SDW_JACK=false,\ SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,NUM_HDMIS=0,\ DEEP_BUF_SPK=true"