From 327e5e342a11f6aa5c2e9c15f6cdd3ab067c95a8 Mon Sep 17 00:00:00 2001 From: Johny Lin Date: Mon, 11 Mar 2024 12:47:36 +0000 Subject: [PATCH 1/6] topology2: cavs-rt5682 separate variants for google aec When Google RTC AEC is not ready to launch, it shouldn't be included in production builds for Chromebook. This commit removes Google RTC AEC from the current variants while making another copy with suffix "-google-aec". Signed-off-by: Pin-chih Lin (cherry picked from commit 6c3bd4791b472df2e13b7c3c94992bd40408f18e) --- .../production/tplg-targets-ace1.cmake | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tools/topology/topology2/production/tplg-targets-ace1.cmake b/tools/topology/topology2/production/tplg-targets-ace1.cmake index 487af6855f66..430f49481ab8 100644 --- a/tools/topology/topology2/production/tplg-targets-ace1.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace1.cmake @@ -41,12 +41,23 @@ SDW_AMP_FMT_24=true,SDW_JACK_FMT_24=true" "cavs-rt5682\;sof-mtl-max98357a-rt5682\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,SPK_ID=6,DEEPBUFFER_FW_DMA_MS=10,INCLUDE_ECHO_REF=true,\ +BT_NAME=SSP2-BT,BT_ID=7,BT_PCM_NAME=Bluetooth" + +"cavs-rt5682\;sof-mtl-max98357a-rt5682-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,SPK_ID=6,DEEPBUFFER_FW_DMA_MS=10,INCLUDE_ECHO_REF=true,\ BT_NAME=SSP2-BT,BT_ID=7,BT_PCM_NAME=Bluetooth,GOOGLE_RTC_AEC_SUPPORT=1" "cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,DEEP_BUF_SPK=true" + +"cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,GOOGLE_AEC_DP_CORE_ID=2" @@ -55,6 +66,13 @@ PDM0_MIC_A_ENABLE=0,PDM0_MIC_B_ENABLE=0,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1, DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-2ch.bin,\ HEADSET_SSP_DAI_INDEX=2,SPEAKER_SSP_DAI_INDEX=0,SPK_ID=6,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ +DEEPBUFFER_FW_DMA_MS=10,DEEP_BUF_SPK=true" + +"cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0-2ch-pdm1-google-aec\;PLATFORM=mtl,NUM_DMICS=2,\ +PDM0_MIC_A_ENABLE=0,PDM0_MIC_B_ENABLE=0,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ +DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-2ch.bin,\ +HEADSET_SSP_DAI_INDEX=2,SPEAKER_SSP_DAI_INDEX=0,SPK_ID=6,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ DEEPBUFFER_FW_DMA_MS=10,GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,\ GOOGLE_AEC_DP_CORE_ID=2" @@ -69,6 +87,13 @@ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,USE_CHAIN_DMA=true,\ +DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" + +"cavs-rt5682\;sof-mtl-rt5650-dts-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,USE_CHAIN_DMA=true,\ GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" #ES83x6+HDMI-IN From 02d977caa03d7e3c3a3b97bd18336081dd869c2f Mon Sep 17 00:00:00 2001 From: Mac Chiang Date: Thu, 29 Feb 2024 02:30:21 -0500 Subject: [PATCH 2/6] topology2: cavs-mixin-mixout-ssp: fix the indentation Replace whitespaces with tabs. Signed-off-by: Mac Chiang (cherry picked from commit d49cfe5e460668c8414bdc4612ca4b45f8197f1a) --- .../topology2/cavs-mixin-mixout-ssp.conf | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/tools/topology/topology2/cavs-mixin-mixout-ssp.conf b/tools/topology/topology2/cavs-mixin-mixout-ssp.conf index 3b26c1102838..619502b61110 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-ssp.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-ssp.conf @@ -14,7 +14,7 @@ Object.Pipeline { Object.Widget.host-copier.1 { stream_name '$HEADSET_PLAYBACK_PCM_STREAM_NAME' - pcm_id $HEADSET_PCM_ID + pcm_id $HEADSET_PCM_ID } Object.Widget.gain.1 { Object.Control.mixer.1 { @@ -27,7 +27,7 @@ Object.Pipeline { Object.Widget.host-copier.1 { stream_name '$SPEAKER_PLAYBACK_PCM_STREAM_NAME' - pcm_id $SPEAKER_PCM_ID + pcm_id $SPEAKER_PCM_ID } Object.Widget.gain.1 { Object.Control.mixer.1 { @@ -37,59 +37,59 @@ Object.Pipeline { } ] - mixout-gain-dai-copier-playback [ - { - index $HEADSET_DAI_PIPELINE_ID + mixout-gain-dai-copier-playback [ + { + index $HEADSET_DAI_PIPELINE_ID - Object.Widget.dai-copier.1 { - dai_index $HEADSET_SSP_DAI_INDEX - dai_type "SSP" - copier_type "SSP" - stream_name "$HEADSET_CODEC_NAME" - node_type $I2S_LINK_OUTPUT_CLASS - } + Object.Widget.dai-copier.1 { + dai_index $HEADSET_SSP_DAI_INDEX + dai_type "SSP" + copier_type "SSP" + stream_name "$HEADSET_CODEC_NAME" + node_type $I2S_LINK_OUTPUT_CLASS + } - Object.Widget.gain.1 { - Object.Control.mixer.1 { - name 'Post Mixer $HEADSET_PCM_NAME Playback Volume' - } - } - } - { - index $SPEAKER_DAI_PIPELINE_ID + Object.Widget.gain.1 { + Object.Control.mixer.1 { + name 'Post Mixer $HEADSET_PCM_NAME Playback Volume' + } + } + } + { + index $SPEAKER_DAI_PIPELINE_ID - Object.Widget.dai-copier.1 { - dai_index $SPEAKER_SSP_DAI_INDEX - dai_type "SSP" - copier_type "SSP" - stream_name "$SPEAKER_CODEC_NAME" - node_type $I2S_LINK_OUTPUT_CLASS - } + Object.Widget.dai-copier.1 { + dai_index $SPEAKER_SSP_DAI_INDEX + dai_type "SSP" + copier_type "SSP" + stream_name "$SPEAKER_CODEC_NAME" + node_type $I2S_LINK_OUTPUT_CLASS + } - Object.Widget.gain.1 { - Object.Control.mixer.1 { - name 'Post Mixer $SPEAKER_PCM_NAME Playback Volume' - } - } - } - ] + Object.Widget.gain.1 { + Object.Control.mixer.1 { + name 'Post Mixer $SPEAKER_PCM_NAME Playback Volume' + } + } + } + ] } Object.Base.route [ - { - source "gain.$HEADSET_DAI_PIPELINE_ID.1" - sink "dai-copier.SSP.$HEADSET_CODEC_NAME.playback" - } - { - source "mixin.$HEADSET_HOST_PIPELINE_ID.1" - sink "mixout.$HEADSET_DAI_PIPELINE_ID.1" - } - { - source "gain.$SPEAKER_DAI_PIPELINE_ID.1" - sink "dai-copier.SSP.$SPEAKER_CODEC_NAME.playback" - } - { - source "mixin.$SPEAKER_HOST_PIPELINE_ID.1" - sink "mixout.$SPEAKER_DAI_PIPELINE_ID.1" - } + { + source "gain.$HEADSET_DAI_PIPELINE_ID.1" + sink "dai-copier.SSP.$HEADSET_CODEC_NAME.playback" + } + { + source "mixin.$HEADSET_HOST_PIPELINE_ID.1" + sink "mixout.$HEADSET_DAI_PIPELINE_ID.1" + } + { + source "gain.$SPEAKER_DAI_PIPELINE_ID.1" + sink "dai-copier.SSP.$SPEAKER_CODEC_NAME.playback" + } + { + source "mixin.$SPEAKER_HOST_PIPELINE_ID.1" + sink "mixout.$SPEAKER_DAI_PIPELINE_ID.1" + } ] From 6549c6f129a226ec8ff408f08f9288c2758bccc7 Mon Sep 17 00:00:00 2001 From: Mac Chiang Date: Thu, 29 Feb 2024 03:02:23 -0500 Subject: [PATCH 3/6] topology2: cavs-mixin-mixout-eqiir-dts: fix the indentation Replace whitespaces with tabs. Signed-off-by: Mac Chiang (cherry picked from commit 859c23c567a6fbac62f635eacbe6e8255a3734a7) --- .../cavs-mixin-mixout-eqiir-dts-ssp.conf | 161 +++++++++--------- 1 file changed, 80 insertions(+), 81 deletions(-) diff --git a/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf b/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf index 2d5800617c85..e112a77ebf24 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf @@ -13,7 +13,7 @@ Object.Pipeline { Object.Widget.host-copier.1 { stream_name '$HEADSET_PLAYBACK_PCM_STREAM_NAME' - pcm_id $HEADSET_PCM_ID + pcm_id $HEADSET_PCM_ID } Object.Widget.gain.1 { Object.Control.mixer.1 { @@ -26,7 +26,7 @@ Object.Pipeline { Object.Widget.host-copier.1 { stream_name '$SPEAKER_PLAYBACK_PCM_STREAM_NAME' - pcm_id $SPEAKER_PCM_ID + pcm_id $SPEAKER_PCM_ID } Object.Widget.gain.1 { Object.Control.mixer.1 { @@ -36,94 +36,93 @@ Object.Pipeline { } ] - mixout-gain-eqiir-dts-dai-copier-playback [ - { - index 2 - - Object.Widget.dai-copier.1 { - dai_index $HEADSET_SSP_DAI_INDEX - dai_type "SSP" - copier_type "SSP" - stream_name "$HEADSET_CODEC_NAME" - node_type $I2S_LINK_OUTPUT_CLASS - } + mixout-gain-eqiir-dts-dai-copier-playback [ + { + index 2 - Object.Widget.gain.1 { - Object.Control.mixer.1 { - name 'Post Mixer $HEADSET_PCM_NAME Playback Volume' - } - } + Object.Widget.dai-copier.1 { + dai_index $HEADSET_SSP_DAI_INDEX + dai_type "SSP" + copier_type "SSP" + stream_name "$HEADSET_CODEC_NAME" + node_type $I2S_LINK_OUTPUT_CLASS + } - Object.Widget.eqiir.1 { - Object.Control.bytes."1" { - name 'EQIIR2.0 eqiir_coef_2' - } - } + Object.Widget.gain.1 { + Object.Control.mixer.1 { + name 'Post Mixer $HEADSET_PCM_NAME Playback Volume' + } + } - Object.Widget.dts.1 { - Object.Control.bytes."1" { - max 2048 - name 'CODEC_ADAPTER2.0 DTS Codec Setup 2' - } - } - } - { - index 4 + Object.Widget.eqiir.1 { + Object.Control.bytes."1" { + name 'EQIIR2.0 eqiir_coef_2' + } + } - Object.Widget.dai-copier.1 { - dai_index $SPEAKER_SSP_DAI_INDEX - dai_type "SSP" - copier_type "SSP" - stream_name "$SPEAKER_CODEC_NAME" - node_type $I2S_LINK_OUTPUT_CLASS - } + Object.Widget.dts.1 { + Object.Control.bytes."1" { + max 2048 + name 'CODEC_ADAPTER2.0 DTS Codec Setup 2' + } + } + } + { + index 4 - Object.Widget.gain.1 { - Object.Control.mixer.1 { - name 'Post Mixer $SPEAKER_PCM_NAME Playback Volume' - } - } + Object.Widget.dai-copier.1 { + dai_index $SPEAKER_SSP_DAI_INDEX + dai_type "SSP" + copier_type "SSP" + stream_name "$SPEAKER_CODEC_NAME" + node_type $I2S_LINK_OUTPUT_CLASS + } - Object.Widget.eqiir.1 { - Object.Control.bytes."1" { - name 'EQIIR1.0 eqiir_coef_1' - } - } + Object.Widget.gain.1 { + Object.Control.mixer.1 { + name 'Post Mixer $SPEAKER_PCM_NAME Playback Volume' + } + } - Object.Widget.dts.1 { - Object.Control.bytes."1" { - max 2048 - name 'CODEC_ADAPTER1.0 DTS Codec Setup 1' - } - } + Object.Widget.eqiir.1 { + Object.Control.bytes."1" { + name 'EQIIR1.0 eqiir_coef_1' + } + } - } - ] + Object.Widget.dts.1 { + Object.Control.bytes."1" { + max 2048 + name 'CODEC_ADAPTER1.0 DTS Codec Setup 1' + } + } + } + ] } Object.Base.route [ - { - source "gain.2.1" - sink "eqiir.2.1" - } - { - source "dts.2.1" - sink "dai-copier.SSP.$HEADSET_CODEC_NAME.playback" - } - { - source "mixin.1.1" - sink "mixout.2.1" - } - { - source "gain.4.1" - sink "eqiir.4.1" - } - { - source "dts.4.1" - sink "dai-copier.SSP.$SPEAKER_CODEC_NAME.playback" - } - { - source "mixin.3.1" - sink "mixout.4.1" - } + { + source "gain.2.1" + sink "eqiir.2.1" + } + { + source "dts.2.1" + sink "dai-copier.SSP.$HEADSET_CODEC_NAME.playback" + } + { + source "mixin.1.1" + sink "mixout.2.1" + } + { + source "gain.4.1" + sink "eqiir.4.1" + } + { + source "dts.4.1" + sink "dai-copier.SSP.$SPEAKER_CODEC_NAME.playback" + } + { + source "mixin.3.1" + sink "mixout.4.1" + } ] From a7bd27c01951abde68bffe5f16a6b5ff55f0ae5c Mon Sep 17 00:00:00 2001 From: Mac Chiang Date: Wed, 20 Mar 2024 06:14:48 -0400 Subject: [PATCH 4/6] topology2: remove USE_CHAIN_DMA flag as it's applied to iDisp links. The CHAIN_DMA has been replaced with HDMI_USE_CHAIN_DMA, which was already enabled by default on iDisplay HDAudio codec in hdmi-default.conf. Signed-off-by: Mac Chiang (cherry picked from commit 1004762500f09be152615bbf3bb7f5dfc99eeb3f) --- tools/topology/topology2/production/tplg-targets-ace1.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/topology/topology2/production/tplg-targets-ace1.cmake b/tools/topology/topology2/production/tplg-targets-ace1.cmake index 430f49481ab8..cb1928ffb1b8 100644 --- a/tools/topology/topology2/production/tplg-targets-ace1.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace1.cmake @@ -86,14 +86,14 @@ INCLUDE_ECHO_REF=true,INCLUDE_BT_OFFLOAD=false" PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ -BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,USE_CHAIN_DMA=true,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" "cavs-rt5682\;sof-mtl-rt5650-dts-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ -BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,USE_CHAIN_DMA=true,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" #ES83x6+HDMI-IN From 33fb3a4378164a2bbf8e499fce16b2b085ab591a Mon Sep 17 00:00:00 2001 From: Mac Chiang Date: Thu, 21 Mar 2024 04:38:10 -0400 Subject: [PATCH 5/6] topology2: fix nhlt binary file naming All topologies are built in parallel. The same name will lead to file overrides. Therefore, correct to use the respective file names properly. Signed-off-by: Mac Chiang (cherry picked from commit 7bd3f0c6e891cf0f17aee854602238fe7b15edd8) --- .../topology2/production/tplg-targets-ace1.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/topology/topology2/production/tplg-targets-ace1.cmake b/tools/topology/topology2/production/tplg-targets-ace1.cmake index cb1928ffb1b8..fe8e197eeb83 100644 --- a/tools/topology/topology2/production/tplg-targets-ace1.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace1.cmake @@ -45,18 +45,18 @@ BT_NAME=SSP2-BT,BT_ID=7,BT_PCM_NAME=Bluetooth" "cavs-rt5682\;sof-mtl-max98357a-rt5682-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,SPK_ID=6,DEEPBUFFER_FW_DMA_MS=10,INCLUDE_ECHO_REF=true,\ +NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-google-aec.bin,SPK_ID=6,DEEPBUFFER_FW_DMA_MS=10,INCLUDE_ECHO_REF=true,\ BT_NAME=SSP2-BT,BT_ID=7,BT_PCM_NAME=Bluetooth,GOOGLE_RTC_AEC_SUPPORT=1" "cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-ssp2-ssp0.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,DEEP_BUF_SPK=true" "cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-ssp2-ssp0-google-aec.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,GOOGLE_AEC_DP_CORE_ID=2" @@ -70,7 +70,7 @@ DEEPBUFFER_FW_DMA_MS=10,DEEP_BUF_SPK=true" "cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0-2ch-pdm1-google-aec\;PLATFORM=mtl,NUM_DMICS=2,\ PDM0_MIC_A_ENABLE=0,PDM0_MIC_B_ENABLE=0,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-2ch.bin,\ +DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682-2ch-google-aec.bin,\ HEADSET_SSP_DAI_INDEX=2,SPEAKER_SSP_DAI_INDEX=0,SPK_ID=6,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ DEEPBUFFER_FW_DMA_MS=10,GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,\ @@ -78,20 +78,20 @@ GOOGLE_AEC_DP_CORE_ID=2" "cavs-rt5682\;sof-mtl-rt1019-rt5682\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,SPK_ID=6,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +NHLT_BIN=nhlt-sof-mtl-rt1019-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ INCLUDE_ECHO_REF=true,INCLUDE_BT_OFFLOAD=false" "cavs-rt5682\;sof-mtl-rt5650-dts\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +NHLT_BIN=nhlt-sof-mtl-rt5650-dts.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" "cavs-rt5682\;sof-mtl-rt5650-dts-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +NHLT_BIN=nhlt-sof-mtl-rt5650-dts-google-aec.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" From 6a7abf85a0476f2f8db782d132d718b027cc9b18 Mon Sep 17 00:00:00 2001 From: Mac Chiang Date: Thu, 21 Mar 2024 02:33:53 -0400 Subject: [PATCH 6/6] topology2: sof-mtl-rt5650: add SSP FMT 24 bits support Use 24 bits format on playback and capture pipelines if codec needs, e.g. RT5650 HS/SPK codec. Signed-off-by: Mac Chiang (cherry picked from commit 980f193d0982206c8e8ad52960fd0e7e7374e7fa) --- .../cavs-mixin-mixout-eqiir-dts-ssp.conf | 40 +++++++++++++++++ .../topology2/cavs-mixin-mixout-ssp.conf | 40 +++++++++++++++++ tools/topology/topology2/cavs-rt5682.conf | 44 ++++++++++++++----- .../platform/intel/speaker-echo-ref.conf | 24 +++++++--- .../production/tplg-targets-ace1.cmake | 12 ++++- 5 files changed, 143 insertions(+), 17 deletions(-) diff --git a/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf b/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf index e112a77ebf24..94fd5257d8cf 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf @@ -46,6 +46,26 @@ Object.Pipeline { copier_type "SSP" stream_name "$HEADSET_CODEC_NAME" node_type $I2S_LINK_OUTPUT_CLASS + IncludeByKey.SSP_HS_FMT_24 { + "true" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_LSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] + } + "false" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } } Object.Widget.gain.1 { @@ -76,6 +96,26 @@ Object.Pipeline { copier_type "SSP" stream_name "$SPEAKER_CODEC_NAME" node_type $I2S_LINK_OUTPUT_CLASS + IncludeByKey.SSP_SPK_FMT_24 { + "true" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_LSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] + } + "false" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } } Object.Widget.gain.1 { diff --git a/tools/topology/topology2/cavs-mixin-mixout-ssp.conf b/tools/topology/topology2/cavs-mixin-mixout-ssp.conf index 619502b61110..556cfa6f9c4f 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-ssp.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-ssp.conf @@ -47,6 +47,26 @@ Object.Pipeline { copier_type "SSP" stream_name "$HEADSET_CODEC_NAME" node_type $I2S_LINK_OUTPUT_CLASS + IncludeByKey.SSP_HS_FMT_24 { + "true" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_LSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] + } + "false" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } } Object.Widget.gain.1 { @@ -64,6 +84,26 @@ Object.Pipeline { copier_type "SSP" stream_name "$SPEAKER_CODEC_NAME" node_type $I2S_LINK_OUTPUT_CLASS + IncludeByKey.SSP_SPK_FMT_24 { + "true" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_LSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] + } + "false" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } } Object.Widget.gain.1 { diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index 12de16d9e818..eb9f92db6f9c 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -118,6 +118,8 @@ Define { DMIC_PIPELINE_PRIORITY 1 ECHO_REF_PIPELINE_PRIORITY 0 PLAYBACK_PIPELINE_SRC "volume" + SSP_SPK_FMT_24 false + SSP_HS_FMT_24 false } # override defaults with platform-specific config @@ -245,18 +247,40 @@ Object.Pipeline { copier_type "SSP" stream_name "$HEADSET_CODEC_NAME" node_type $I2S_LINK_INPUT_CLASS - Object.Base.input_audio_format [ - { - in_bit_depth 32 - in_valid_bit_depth 32 + + IncludeByKey.SSP_HS_FMT_24 { + "true" { + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 24 + in_sample_type $SAMPLE_TYPE_LSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] } - ] - Object.Base.output_audio_format [ - { - out_bit_depth 32 - out_valid_bit_depth 32 + "false" { + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + } + + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] } - ] + } } } ] diff --git a/tools/topology/topology2/platform/intel/speaker-echo-ref.conf b/tools/topology/topology2/platform/intel/speaker-echo-ref.conf index 7119dd1568ad..0a9590516e6e 100644 --- a/tools/topology/topology2/platform/intel/speaker-echo-ref.conf +++ b/tools/topology/topology2/platform/intel/speaker-echo-ref.conf @@ -14,12 +14,26 @@ Object.Pipeline { stream_name $SPEAKER_CODEC_NAME node_type $I2S_LINK_INPUT_CLASS num_input_audio_formats 1 - Object.Base.input_audio_format [ - { - in_bit_depth 32 - in_valid_bit_depth 32 + IncludeByKey.SSP_SPK_FMT_24 { + "true" { + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 24 + in_sample_type $SAMPLE_TYPE_LSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" + } + ] } - ] + "false" { + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + } + ] + } + } num_output_audio_formats 1 Object.Base.output_audio_format [ { diff --git a/tools/topology/topology2/production/tplg-targets-ace1.cmake b/tools/topology/topology2/production/tplg-targets-ace1.cmake index fe8e197eeb83..d192dca5fd9b 100644 --- a/tools/topology/topology2/production/tplg-targets-ace1.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace1.cmake @@ -82,19 +82,27 @@ NHLT_BIN=nhlt-sof-mtl-rt1019-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_ SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ INCLUDE_ECHO_REF=true,INCLUDE_BT_OFFLOAD=false" +"cavs-rt5682\;sof-mtl-rt5650\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-mtl-rt5650.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ +DEEP_BUF_SPK=true,SSP_SPK_FMT_24=true,SSP_HS_FMT_24=true" + "cavs-rt5682\;sof-mtl-rt5650-dts\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-rt5650-dts.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ -DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" +DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts,SSP_SPK_FMT_24=true,SSP_HS_FMT_24=true" "cavs-rt5682\;sof-mtl-rt5650-dts-google-aec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-mtl-rt5650-dts-google-aec.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\ -GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts" +GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts,\ +SSP_SPK_FMT_24=true,SSP_HS_FMT_24=true" #ES83x6+HDMI-IN "cavs-es83x6\;sof-mtl-es83x6-ssp1-hdmi-ssp02\;PLATFORM=mtl,PREPROCESS_PLUGINS=nhlt,\