From 8ee15fcfee7840aa5bd34bfb0f029386f5754515 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 18:48:02 -0500 Subject: [PATCH 1/9] topology2: fix sdw-amp-generic Wrong directions for the feedback! Signed-off-by: Pierre-Louis Bossart --- tools/topology/topology2/platform/intel/sdw-amp-generic.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf index 087d8d754243..5a20e563ca57 100644 --- a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf @@ -163,7 +163,7 @@ IncludeByKey.SDW_AMP_FEEDBACK { } ] - passthrough-be [ + passthrough-capture-be [ { direction "capture" index 31 From 0df521edee012c9baa021435e485a89b2aa1342b Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 18:20:56 -0500 Subject: [PATCH 2/9] topology2: cavs: align passthrough-capture and passthrough-playback The definitions are similar, only the direction changes. Signed-off-by: Pierre-Louis Bossart --- .../topology2/include/pipelines/cavs/passthrough-capture.conf | 2 +- .../topology2/include/pipelines/cavs/passthrough-playback.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf index c830ec8b9778..2d225c10ac3e 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf @@ -16,9 +16,9 @@ # Where N is the unique pipeline ID within the same alsaconf node. # - + Class.Pipeline."passthrough-capture" { diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf index c11d84116527..dbf63ddcd656 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf @@ -62,7 +62,7 @@ Class.Pipeline."passthrough-playback" { in_valid_bit_depth 24 out_bit_depth 32 out_valid_bit_depth 32 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } # 32-bit 48KHz 2ch Object.Base.audio_format.3 { From 1eb451d8794b4be09341bee54d023a6f50a2d2b4 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 18:33:04 -0500 Subject: [PATCH 3/9] topology2: rename passthrough-be as passthrough-playback-be Need to explicitly have a reference to playback reference Signed-off-by: Pierre-Louis Bossart --- tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf | 2 +- tools/topology/topology2/cavs-nocodec-bt.conf | 4 ++-- tools/topology/topology2/cavs-rt5682.conf | 2 +- tools/topology/topology2/cavs-sdw.conf | 2 +- tools/topology/topology2/cavs-src-mixin-mixout-hda.conf | 2 +- .../include/pipelines/cavs/passthrough-capture-be.conf | 6 +++--- .../{passthrough-be.conf => passthrough-playback-be.conf} | 8 ++++---- tools/topology/topology2/platform/intel/bt-generic.conf | 2 +- tools/topology/topology2/platform/intel/hdmi-generic.conf | 4 ++-- .../topology2/platform/intel/sdw-amp-generic.conf | 2 +- tools/topology/topology2/sof-hda-generic.conf | 2 +- 11 files changed, 18 insertions(+), 18 deletions(-) rename tools/topology/topology2/include/pipelines/cavs/{passthrough-be.conf => passthrough-playback-be.conf} (88%) diff --git a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf index 779f020fe740..f016eb59ac6e 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf @@ -80,7 +80,7 @@ Object.Pipeline { } ] - passthrough-be [ + passthrough-playback-be [ { index 4 direction capture diff --git a/tools/topology/topology2/cavs-nocodec-bt.conf b/tools/topology/topology2/cavs-nocodec-bt.conf index 709373e3adc4..3d9f01ab26b9 100644 --- a/tools/topology/topology2/cavs-nocodec-bt.conf +++ b/tools/topology/topology2/cavs-nocodec-bt.conf @@ -12,7 +12,7 @@ - + @@ -113,7 +113,7 @@ Object.Dai.SSP [ # Pipeline ID:1 PCM ID: 0 Object.Pipeline { # playback pipelines - passthrough-be [ + passthrough-playback-be [ { index 2 direction playback diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index c786fbc284e6..dcf9e0c4686b 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -12,7 +12,7 @@ - + diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index 8b4e8912602d..eaa27d133fdc 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -17,7 +17,7 @@ - + diff --git a/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf b/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf index aa8ceaf1fb8a..419d5037445e 100644 --- a/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf +++ b/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf @@ -73,7 +73,7 @@ Object.Pipeline { } ] - passthrough-be [ + passthrough-playback-be [ { index 4 direction capture diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf index 167d49f77e79..8c43754f8918 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf @@ -2,11 +2,11 @@ # BE DAI passthrough pipeline for capture # # All attributes defined herein are namespaced by alsatplg to -# "Object.Pipeline.passthrough-be-capture.N.attribute_name" +# "Object.Pipeline.passthrough-capture-be.N.attribute_name" # -# Usage: mixin-playback pipeline object can be instantiated as: +# Usage: passthrough-capture-be pipeline object can be instantiated as: # -# Object.Pipeline.dai-pipeline."N" { +# Object.Pipeline.passthrough-capture-be."N" { # direction "capture" # period 1000 # time_domain "timer" diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-be.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf similarity index 88% rename from tools/topology/topology2/include/pipelines/cavs/passthrough-be.conf rename to tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf index 140c62049230..107f25367971 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf @@ -2,11 +2,11 @@ # BE DAI passthrough pipeline # # All attributes defined herein are namespaced by alsatplg to -# "Object.Pipeline.passthrough-be.N.attribute_name" +# "Object.Pipeline.passthrough-playback-be.N.attribute_name" # -# Usage: mixin-playback pipeline object can be instantiated as: +# Usage: passthrough-playback-be pipeline object can be instantiated as: # -# Object.Pipeline.dai-pipeline."N" { +# Object.Pipeline.passthrough-playback-be."N" { # direction "playback" # period 1000 # time_domain "timer" @@ -21,7 +21,7 @@ -Class.Pipeline."passthrough-be" { +Class.Pipeline."passthrough-playback-be" { DefineAttribute."index" {} diff --git a/tools/topology/topology2/platform/intel/bt-generic.conf b/tools/topology/topology2/platform/intel/bt-generic.conf index 6e5fc8649302..f12c380894ae 100644 --- a/tools/topology/topology2/platform/intel/bt-generic.conf +++ b/tools/topology/topology2/platform/intel/bt-generic.conf @@ -8,7 +8,7 @@ IncludeByKey.BT_LOOPBACK_MODE { Object.Pipeline { # playback pipelines - passthrough-be [ + passthrough-playback-be [ { index $BT_PB_DAI_PIPELINE_ID direction playback diff --git a/tools/topology/topology2/platform/intel/hdmi-generic.conf b/tools/topology/topology2/platform/intel/hdmi-generic.conf index d8d60879e93e..378d7fc5645e 100644 --- a/tools/topology/topology2/platform/intel/hdmi-generic.conf +++ b/tools/topology/topology2/platform/intel/hdmi-generic.conf @@ -58,7 +58,7 @@ Object.Pipeline { use_chain_dma $USE_CHAIN_DMA } ] - passthrough-be [ + passthrough-playback-be [ { direction "playback" index $HDMI1_DAI_PIPELINE_ID @@ -167,7 +167,7 @@ IncludeByKey.NUM_HDMIS { direction playback } ] - Object.Pipeline.passthrough-be [ + Object.Pipeline.passthrough-playback-be [ { direction "playback" index $HDMI4_DAI_PIPELINE_ID diff --git a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf index 5a20e563ca57..6da22f853d78 100644 --- a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf @@ -71,7 +71,7 @@ IncludeByKey.NUM_SDW_AMPS { } Object.Pipeline { - passthrough-be [ + passthrough-playback-be [ { direction "playback" index $ALH_2ND_SPK_ID diff --git a/tools/topology/topology2/sof-hda-generic.conf b/tools/topology/topology2/sof-hda-generic.conf index 074510e61ec1..5321781b573e 100644 --- a/tools/topology/topology2/sof-hda-generic.conf +++ b/tools/topology/topology2/sof-hda-generic.conf @@ -19,7 +19,7 @@ - + From 7b8e739a10bcdf388e9a982d6b87c615427d4873 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 18:25:15 -0500 Subject: [PATCH 4/9] topology2: cavs: fix passthrough BE pipelines Multiple errors in the BE pipelines a) invalid comments b) dai type inverted on one of the two files. Playback and capture cannot be the same... The convention is dai_in for capture and dai_out for playback. Additional opens: 1) what the point of declaring formats with 4 channels if the pipeline defines a max at 2? Signed-off-by: Pierre-Louis Bossart --- .../include/pipelines/cavs/passthrough-playback-be.conf | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf index 107f25367971..bf838117e00b 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf @@ -32,17 +32,12 @@ Class.Pipeline."passthrough-playback-be" { "index" ] - # - # mixin-playback objects instantiated within the same alsaconf node must have - # unique pipeline_id attribute - # unique "instance" } Object.Widget { copier."1" { - type dai_in - node_type $HDA_LINK_OUTPUT_CLASS + type dai_out num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 From 97a18bfc9c281a64e86ecc83079835c2167dbf55 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 19:40:42 -0500 Subject: [PATCH 5/9] topology2: cavs: add immutable direction for passthrough pipelines That helps find a couple of nice inversions. Signed-off-by: Pierre-Louis Bossart --- tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf | 3 +-- tools/topology/topology2/cavs-nocodec-bt.conf | 4 ---- tools/topology/topology2/cavs-nocodec.conf | 2 -- tools/topology/topology2/cavs-rt5682.conf | 1 - tools/topology/topology2/cavs-sdw-src-gain-mixin.conf | 1 - tools/topology/topology2/cavs-src-mixin-mixout-hda.conf | 3 +-- .../include/pipelines/cavs/passthrough-capture-be.conf | 5 +++++ .../include/pipelines/cavs/passthrough-playback-be.conf | 5 +++++ tools/topology/topology2/platform/intel/bt-generic.conf | 4 ++-- tools/topology/topology2/platform/intel/hdmi-generic.conf | 4 ---- tools/topology/topology2/platform/intel/sdw-amp-generic.conf | 3 --- .../topology/topology2/platform/intel/sdw-dmic-generic.conf | 1 - 12 files changed, 14 insertions(+), 22 deletions(-) diff --git a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf index f016eb59ac6e..00e7a5a0bde1 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf @@ -80,10 +80,9 @@ Object.Pipeline { } ] - passthrough-playback-be [ + passthrough-capture-be [ { index 4 - direction capture Object.Widget.copier."1" { dai_type "HDA" diff --git a/tools/topology/topology2/cavs-nocodec-bt.conf b/tools/topology/topology2/cavs-nocodec-bt.conf index 3d9f01ab26b9..d15cccde1955 100644 --- a/tools/topology/topology2/cavs-nocodec-bt.conf +++ b/tools/topology/topology2/cavs-nocodec-bt.conf @@ -116,7 +116,6 @@ Object.Pipeline { passthrough-playback-be [ { index 2 - direction playback Object.Widget.pipeline.1 { stream_name 'NoCodec-0' } @@ -131,7 +130,6 @@ Object.Pipeline { } { index 4 - direction playback Object.Widget.pipeline.1 { stream_name 'NoCodec-1' } @@ -192,7 +190,6 @@ Object.Pipeline { passthrough-capture-be [ { index 6 - direction capture Object.Widget.pipeline.1 { stream_name 'NoCodec-0' } @@ -215,7 +212,6 @@ Object.Pipeline { } { index 10 - direction capture Object.Widget.pipeline.1 { stream_name 'NoCodec-1' } diff --git a/tools/topology/topology2/cavs-nocodec.conf b/tools/topology/topology2/cavs-nocodec.conf index 153078e475fe..bbb867e44f7e 100644 --- a/tools/topology/topology2/cavs-nocodec.conf +++ b/tools/topology/topology2/cavs-nocodec.conf @@ -436,7 +436,6 @@ Object.Pipeline.passthrough-capture [ Object.Pipeline.passthrough-capture-be [ { index 10 - direction capture Object.Widget.copier."1" { dai_index 1 @@ -456,7 +455,6 @@ Object.Pipeline.passthrough-capture-be [ } { index 12 - direction capture Object.Widget.copier."1" { dai_index 2 diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index dcf9e0c4686b..f46909278e3b 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -261,7 +261,6 @@ Object.Pipeline { passthrough-capture-be [ { index 6 - direction capture Object.Widget.copier."1" { dai_index $HEADSET_SSP_DAI_INDEX diff --git a/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf b/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf index 50a9f9b15d6f..74cf2f3c9f1f 100644 --- a/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf +++ b/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf @@ -123,7 +123,6 @@ Object.Pipeline { passthrough-capture-be [ { - direction "capture" index 3 copier_type "ALH" Object.Widget.copier.1 { diff --git a/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf b/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf index 419d5037445e..2319610dd82b 100644 --- a/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf +++ b/tools/topology/topology2/cavs-src-mixin-mixout-hda.conf @@ -73,10 +73,9 @@ Object.Pipeline { } ] - passthrough-playback-be [ + passthrough-capture-be [ { index 4 - direction capture Object.Widget.copier."1" { dai_type "HDA" diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf index 8c43754f8918..4372c06b23c8 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture-be.conf @@ -32,6 +32,10 @@ Class.Pipeline."passthrough-capture-be" { "index" ] + !immutable [ + "direction" + ] + unique "instance" } @@ -57,6 +61,7 @@ Class.Pipeline."passthrough-capture-be" { } } + direction "capture" time_domain "timer" dynamic_pipeline 1 channels 2 diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf index bf838117e00b..0c074f594497 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback-be.conf @@ -32,6 +32,10 @@ Class.Pipeline."passthrough-playback-be" { "index" ] + !immutable [ + "direction" + ] + unique "instance" } @@ -79,6 +83,7 @@ Class.Pipeline."passthrough-playback-be" { } } + direction "playback" time_domain "timer" dynamic_pipeline 1 channels 2 diff --git a/tools/topology/topology2/platform/intel/bt-generic.conf b/tools/topology/topology2/platform/intel/bt-generic.conf index f12c380894ae..e3740d66ec18 100644 --- a/tools/topology/topology2/platform/intel/bt-generic.conf +++ b/tools/topology/topology2/platform/intel/bt-generic.conf @@ -11,7 +11,7 @@ Object.Pipeline { passthrough-playback-be [ { index $BT_PB_DAI_PIPELINE_ID - direction playback + Object.Widget.pipeline.1 { stream_name $BT_PB_PIPELINE_STREAM_NAME } @@ -156,7 +156,7 @@ Object.Pipeline { passthrough-capture-be [ { index $BT_CP_DAI_PIPELINE_ID - direction "capture" + Object.Widget.pipeline.1 { stream_name $BT_CP_PIPELINE_STREAM_NAME } diff --git a/tools/topology/topology2/platform/intel/hdmi-generic.conf b/tools/topology/topology2/platform/intel/hdmi-generic.conf index 378d7fc5645e..6e6939d0b9bc 100644 --- a/tools/topology/topology2/platform/intel/hdmi-generic.conf +++ b/tools/topology/topology2/platform/intel/hdmi-generic.conf @@ -60,7 +60,6 @@ Object.Pipeline { ] passthrough-playback-be [ { - direction "playback" index $HDMI1_DAI_PIPELINE_ID Object.Widget.copier.1 { @@ -71,7 +70,6 @@ Object.Pipeline { use_chain_dma $USE_CHAIN_DMA } { - direction "playback" index $HDMI2_DAI_PIPELINE_ID Object.Widget.copier.1 { @@ -82,7 +80,6 @@ Object.Pipeline { use_chain_dma $USE_CHAIN_DMA } { - direction "playback" index $HDMI3_DAI_PIPELINE_ID Object.Widget.copier.1 { stream_name 'iDisp3' @@ -169,7 +166,6 @@ IncludeByKey.NUM_HDMIS { ] Object.Pipeline.passthrough-playback-be [ { - direction "playback" index $HDMI4_DAI_PIPELINE_ID Object.Widget.copier.1 { diff --git a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf index 6da22f853d78..98c6b5f8dfd2 100644 --- a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf @@ -73,7 +73,6 @@ IncludeByKey.NUM_SDW_AMPS { Object.Pipeline { passthrough-playback-be [ { - direction "playback" index $ALH_2ND_SPK_ID copier_type "ALH" Object.Widget.copier.1 { @@ -87,7 +86,6 @@ IncludeByKey.NUM_SDW_AMPS { ] passthrough-capture-be [ { - direction "capture" index $ALH_2ND_SPK_IN_ID copier_type "ALH" @@ -165,7 +163,6 @@ IncludeByKey.SDW_AMP_FEEDBACK { passthrough-capture-be [ { - direction "capture" index 31 copier_type "ALH" diff --git a/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf b/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf index c93ca4cbad19..0a8a0cc70480 100644 --- a/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf @@ -37,7 +37,6 @@ Object.Pipeline { ] passthrough-capture-be [ { - direction "capture" index 41 copier_type "ALH" Object.Widget.copier.1 { From f4553d7e58accc839be823bf9eeb99c1b4b460b6 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 19:48:29 -0500 Subject: [PATCH 6/9] topology2: fix platform/intel/bt-generic The ibs and obs values are inverted quite a few times. Signed-off-by: Pierre-Louis Bossart --- .../topology2/platform/intel/bt-generic.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/topology/topology2/platform/intel/bt-generic.conf b/tools/topology/topology2/platform/intel/bt-generic.conf index e3740d66ec18..fc702a5c1128 100644 --- a/tools/topology/topology2/platform/intel/bt-generic.conf +++ b/tools/topology/topology2/platform/intel/bt-generic.conf @@ -78,7 +78,7 @@ Object.Pipeline { out_valid_bit_depth 16 in_channels 2 out_channels 2 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } Object.Base.audio_format.2 { in_bit_depth 16 @@ -89,7 +89,7 @@ Object.Pipeline { out_channels 1 in_rate 8000 out_rate 8000 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } Object.Base.audio_format.3 { in_bit_depth 16 @@ -100,7 +100,7 @@ Object.Pipeline { out_channels 1 in_rate 16000 out_rate 16000 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } } } @@ -178,7 +178,7 @@ Object.Pipeline { out_valid_bit_depth 16 in_channels 2 out_channels 2 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } Object.Base.audio_format.1 { in_bit_depth 16 @@ -189,7 +189,7 @@ Object.Pipeline { out_channels 1 in_rate 8000 out_rate 8000 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } Object.Base.audio_format.2 { in_bit_depth 16 @@ -200,7 +200,7 @@ Object.Pipeline { out_channels 1 in_rate 16000 out_rate 16000 - dma_buffer_size "$[$obs * 2]" + dma_buffer_size "$[$ibs * 2]" } } } From 5a8afd56209f524984c7ee1029dd0444ad40009c Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 19:50:06 -0500 Subject: [PATCH 7/9] topology2: cavs: fix deep-buffer copy-paste error with one format using the wrong buffer size. For playback the host copiers need to use ibs for the DMA size. Signed-off-by: Pierre-Louis Bossart --- .../topology2/include/pipelines/cavs/deepbuffer-playback.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf b/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf index 9d5dd465b501..cd7e5ec83f13 100644 --- a/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf @@ -67,7 +67,7 @@ Class.Pipeline."deepbuffer-playback" { out_bit_depth 32 out_valid_bit_depth 32 # 100ms buffer - dma_buffer_size "$[$obs * $DEEPBUFFER_FW_DMA_MS]" + dma_buffer_size "$[$ibs * $DEEPBUFFER_FW_DMA_MS]" } # 32-bit 48KHz 2ch Object.Base.audio_format.3 { From 92fca4325c8d80e702e0651a12bc386a50c528c1 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 20:09:17 -0500 Subject: [PATCH 8/9] topology2: group 'host' 'aif' and node type Make sure the playback and capture host copier have a consistent setup. The only acceptable versions are: playback: copier_type "host" type "aif_in" node_type $HDA_HOST_OUTPUT_CLASS capture: copier_type "host" type "aif_out" node_type $HDA_HOST_INPUT_CLASS Signed-off-by: Pierre-Louis Bossart --- .../topology2/include/pipelines/cavs/deepbuffer-playback.conf | 1 + .../topology2/include/pipelines/cavs/gain-capture.conf | 3 ++- .../topology2/include/pipelines/cavs/gain-copier-capture.conf | 3 ++- .../topology2/include/pipelines/cavs/gain-playback.conf | 3 ++- .../pipelines/cavs/host-copier-gain-mixin-playback.conf | 1 + .../pipelines/cavs/mixout-gain-host-copier-capture.conf | 1 + .../topology2/include/pipelines/cavs/passthrough-capture.conf | 1 + .../topology2/include/pipelines/cavs/passthrough-playback.conf | 3 ++- .../include/pipelines/cavs/src-gain-mixin-playback.conf | 3 +-- 9 files changed, 13 insertions(+), 6 deletions(-) diff --git a/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf b/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf index cd7e5ec83f13..97ba11bc4804 100644 --- a/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf @@ -49,6 +49,7 @@ Class.Pipeline."deepbuffer-playback" { copier_type "host" type "aif_in" node_type $HDA_HOST_OUTPUT_CLASS + num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 diff --git a/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf b/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf index 277c530ebd7e..f5cd5be2d977 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf @@ -48,6 +48,8 @@ Class.Pipeline."gain-capture" { copier."1" { copier_type "host" type "aif_out" + node_type $HDA_HOST_INPUT_CLASS + num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 @@ -73,7 +75,6 @@ Class.Pipeline."gain-capture" { out_valid_bit_depth 32 dma_buffer_size "$[$obs * 2]" } - node_type $HDA_HOST_INPUT_CLASS } gain."1" { diff --git a/tools/topology/topology2/include/pipelines/cavs/gain-copier-capture.conf b/tools/topology/topology2/include/pipelines/cavs/gain-copier-capture.conf index 960fa8f295fe..4b4d2889bae2 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-copier-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-copier-capture.conf @@ -48,6 +48,8 @@ Class.Pipeline."gain-copier-capture" { copier."1" { copier_type "host" type "aif_out" + node_type $HDA_HOST_INPUT_CLASS + num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 @@ -74,7 +76,6 @@ Class.Pipeline."gain-copier-capture" { out_valid_bit_depth 32 dma_buffer_size "$[$obs * 2]" } - node_type $HDA_HOST_INPUT_CLASS } gain."1" { diff --git a/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf b/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf index e30393a214af..9b206e0de0ac 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf @@ -47,6 +47,8 @@ Class.Pipeline."gain-playback" { copier."1" { copier_type "host" type "aif_in" + node_type $HDA_HOST_OUTPUT_CLASS + num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 @@ -72,7 +74,6 @@ Class.Pipeline."gain-playback" { out_valid_bit_depth 32 dma_buffer_size "$[$ibs * 2]" } - node_type $HDA_HOST_OUTPUT_CLASS } gain."1" { diff --git a/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-mixin-playback.conf b/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-mixin-playback.conf index fe65d995ab79..3b5fe4584acc 100644 --- a/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-mixin-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-mixin-playback.conf @@ -49,6 +49,7 @@ Class.Pipeline."host-copier-gain-mixin-playback" { copier_type "host" type "aif_in" node_type $HDA_HOST_OUTPUT_CLASS + num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-host-copier-capture.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-host-copier-capture.conf index a5ea844ebb9e..3ab6caa53ff2 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-host-copier-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-host-copier-capture.conf @@ -51,6 +51,7 @@ Class.Pipeline."mixout-gain-host-copier-capture" { copier_type "host" type "aif_out" node_type $HDA_HOST_INPUT_CLASS + num_audio_formats 4 num_input_audio_formats 4 num_output_audio_formats 4 diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf index 2d225c10ac3e..1bc4ceef5d33 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-capture.conf @@ -47,6 +47,7 @@ Class.Pipeline."passthrough-capture" { copier_type "host" type "aif_out" node_type $HDA_HOST_INPUT_CLASS + num_audio_formats 6 num_input_audio_formats 6 num_output_audio_formats 6 diff --git a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf index dbf63ddcd656..6f17f2b4df56 100644 --- a/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/passthrough-playback.conf @@ -45,8 +45,9 @@ Class.Pipeline."passthrough-playback" { Object.Widget { copier."1" { copier_type "host" - node_type $HDA_HOST_OUTPUT_CLASS type "aif_in" + node_type $HDA_HOST_OUTPUT_CLASS + num_audio_formats 3 num_input_audio_formats 3 num_output_audio_formats 3 diff --git a/tools/topology/topology2/include/pipelines/cavs/src-gain-mixin-playback.conf b/tools/topology/topology2/include/pipelines/cavs/src-gain-mixin-playback.conf index 0b97299ba444..39c9d11f7d3d 100644 --- a/tools/topology/topology2/include/pipelines/cavs/src-gain-mixin-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/src-gain-mixin-playback.conf @@ -45,10 +45,9 @@ Class.Pipeline."src-gain-mixin-playback" { copier."1" { copier_type "host" type "aif_in" + node_type $HDA_HOST_OUTPUT_CLASS - - node_type $HDA_HOST_OUTPUT_CLASS } src."1" { From 8b9eb98326fde6a56837b34f4ac5b24d9c82a1b7 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 21 Mar 2023 20:33:15 -0500 Subject: [PATCH 9/9] topology2: cavs: fix inversion between dai_in and dai_out The convention is dai_in for capture and dai_out for playback. Half of the team got it wrong. Signed-off-by: Pierre-Louis Bossart --- .../pipelines/cavs/dai-copier-eqiir-module-copier-capture.conf | 2 +- .../include/pipelines/cavs/dai-copier-gain-mixin-capture.conf | 2 +- .../pipelines/cavs/dai-copier-gain-module-copier-capture.conf | 2 +- .../include/pipelines/cavs/mixout-gain-dai-copier-playback.conf | 2 +- .../pipelines/cavs/mixout-gain-efx-dai-copier-playback.conf | 2 +- .../cavs/mixout-gain-smart-amp-dai-copier-playback.conf | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/topology/topology2/include/pipelines/cavs/dai-copier-eqiir-module-copier-capture.conf b/tools/topology/topology2/include/pipelines/cavs/dai-copier-eqiir-module-copier-capture.conf index 7e0e78b1960f..ca7219f843b6 100644 --- a/tools/topology/topology2/include/pipelines/cavs/dai-copier-eqiir-module-copier-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/dai-copier-eqiir-module-copier-capture.conf @@ -47,7 +47,7 @@ Class.Pipeline."dai-copier-eqiir-module-copier-capture" { Object.Widget { copier."1" { - type dai_out + type dai_in period_sink_count 2 period_source_count 0 num_audio_formats 1 diff --git a/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-mixin-capture.conf b/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-mixin-capture.conf index ffab590b3fe0..c346e9b0229b 100644 --- a/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-mixin-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-mixin-capture.conf @@ -46,7 +46,7 @@ Class.Pipeline."dai-copier-gain-mixin-capture" { Object.Widget { copier."1" { - type dai_out + type dai_in period_sink_count 2 period_source_count 0 node_type $HDA_LINK_INPUT_CLASS diff --git a/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-module-copier-capture.conf b/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-module-copier-capture.conf index 43501d992280..9d12f92cd588 100644 --- a/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-module-copier-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/dai-copier-gain-module-copier-capture.conf @@ -46,7 +46,7 @@ Class.Pipeline."dai-copier-gain-module-copier-capture" { Object.Widget { copier."1" { - type dai_out + type dai_in period_sink_count 2 period_source_count 0 num_audio_formats 1 diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-dai-copier-playback.conf index 48a9d62938c2..c73a074f3bf3 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-dai-copier-playback.conf @@ -47,7 +47,7 @@ Class.Pipeline."mixout-gain-dai-copier-playback" { Object.Widget { mixout."1" {} copier."1" { - type dai_in + type dai_out node_type $HDA_LINK_OUTPUT_CLASS period_sink_count 0 period_source_count 2 diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-dai-copier-playback.conf index 56edd1a02667..edf8b44a454d 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-dai-copier-playback.conf @@ -51,7 +51,7 @@ Class.Pipeline."mixout-gain-efx-dai-copier-playback" { Object.Widget { mixout."1" {} copier."1" { - type dai_in + type dai_out node_type $HDA_LINK_OUTPUT_CLASS period_sink_count 0 period_source_count 2 diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-smart-amp-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-smart-amp-dai-copier-playback.conf index f2ca4c03005c..8ab25b3c412a 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-smart-amp-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-smart-amp-dai-copier-playback.conf @@ -46,7 +46,7 @@ Class.Pipeline."mixout-gain-smart-amp-dai-copier-playback" { Object.Widget { mixout."1" {} copier."1" { - type dai_in + type dai_out node_type $HDA_LINK_OUTPUT_CLASS num_audio_formats 2 num_input_audio_formats 2