From 31258f3fbf64a8132236ab24273ad930071c715d 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 862174075b98f1f83c044d9046bb5816842908af 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 | 23 ++++++++++++++ .../platform/intel/sdw-jack-dts.conf | 30 +++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index 311e0376b333..7edd0975d4f6 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -129,6 +129,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..6d46efcc1893 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,8 @@ IncludeByKey.PASSTHROUGH { pipeline [ { index 21 + core_id $DTS_CORE_ID + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 @@ -889,6 +910,8 @@ IncludeByKey.SDW_AMP_FEEDBACK { pipeline [ { index 31 + core_id $DTS_CORE_ID + 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 3a72531d7219..c7a2c33ab9c7 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,8 @@ IncludeByKey.PASSTHROUGH { pipeline [ { index 1 + core_id $DTS_CORE_ID + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 @@ -352,6 +372,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 +451,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 +478,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 +506,8 @@ Object.Widget { pipeline [ { index 11 + core_id $DTS_CORE_ID + core $DTS_CORE_ID priority 0 lp_mode 0 dynamic_pipeline 1 @@ -487,6 +516,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 39e2cb6cbb7bd9e57bb236b1a765f59814f9042b 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 216a637d8b50..cbc869e1ff2a 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"