Repository navigation
dts: fix memory allocation failed and move the pipeline to different core #11230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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 | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. right, I think pipeline widgets use |
||
| } | ||
|
|
||
| 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 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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,\ | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think a feature topology can be used here, it cannot replace part of the topology, it can add to it a feature. I think that for products with such changes the generic sdca topologies cannot be used, if people will start to copy, rename random topologies to 'stick', it is going to cause lots of issues and at the same time it will make debugging harder as no one knows exactly what is loaded. Another option would be for the kernel to support sort of 'feature modifier' kernel parameter to add postfix to the feature topology name and try that first (than fall back to w/o modifier if not found). But, what if you want to add feedback also to the path which have dts? Or no DTS, but only feedback? For products: |
||
| 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" | ||
|
|
||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think only one of them is needed and I think it's
core, could you check?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's confusing the tplg compiler doesn't catch this, but for the pipeline widget, only "core" is needed.
But I won't block because of this, "core" is the pipeline level token (SOF_TKN_SCHED_CORE for Linux kernel) and "core_id" is the widget token (SOF_TKN_COMP_CORE_ID in Linux kernel). For a pipeline, both can be set, but only "core" is needed as Linux driver will force same values.
This is confusing I admit and we should improve this for topology developers.