From 406e660a34b6e09298e2d10c3e27cdd60f8cc076 Mon Sep 17 00:00:00 2001 From: Rander Wang Date: Fri, 3 Mar 2023 16:35:20 +0800 Subject: [PATCH] topology2: add google rtc aec support Add google rtc aec in topolog for chrome project Signed-off-by: Rander Wang --- tools/topology/topology2/cavs-rt5682.conf | 86 +++---------------- .../topology2/sof-ace-tplg/tplg-targets.cmake | 3 +- 2 files changed, 15 insertions(+), 74 deletions(-) diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index e72046169..cd6932dc9 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -21,6 +21,8 @@ + + @@ -41,6 +43,10 @@ + + + + Define { MCLK 24576000 @@ -91,6 +97,8 @@ Define { BT_PB_HOST_PIPELINE_SINK "copier.SSP.10.1" BT_PB_DAI_PIPELINE_SRC "copier.host.9.1" BT_PB_PIPELINE_STREAM_NAME "copier.SSP.10.1" + GOOGLE_RTC_AEC_SUPPORT 0 + GOOGLE_RTC_AEC_REF_SOURCE 'module-copier.8.2' } # override defaults with platform-specific config @@ -117,6 +125,11 @@ IncludeByKey.INCLUDE_ECHO_REF { "true" "platform/intel/speaker-echo-ref.conf" } +# enable GOOGLE RTC AEC if needed +IncludeByKey.GOOGLE_RTC_AEC_SUPPORT { + "[1]" "platform/intel/google-rtc-aec-reference.conf" +} + # # List of all DAIs # @@ -279,61 +292,6 @@ Object.Pipeline { } } ] - - gain-capture [ - { - format $FORMAT - index 16 - - Object.Widget.pipeline.1 { - stream_name "DMIC Raw" - } - Object.Widget.copier.1 { - stream_name "DMIC Raw" - Object.Base.audio_format.1 { - in_bit_depth 32 - in_valid_bit_depth 32 - out_bit_depth 32 - out_valid_bit_depth 32 - } - Object.Base.audio_format.2 { - in_channels 4 - in_bit_depth 32 - in_valid_bit_depth 32 - out_channels 4 - out_bit_depth 32 - out_valid_bit_depth 32 - in_ch_cfg $CHANNEL_CONFIG_QUATRO - in_ch_map $CHANNEL_MAP_3_POINT_1 - out_ch_cfg $CHANNEL_CONFIG_QUATRO - out_ch_map $CHANNEL_MAP_3_POINT_1 - } - } - Object.Widget.gain.1 { - Object.Base.audio_format.1 { - in_bit_depth 32 - in_valid_bit_depth 32 - out_bit_depth 32 - out_valid_bit_depth 32 - } - Object.Base.audio_format.2 { - in_channels 4 - in_bit_depth 32 - in_valid_bit_depth 32 - out_channels 4 - out_bit_depth 32 - out_valid_bit_depth 32 - in_ch_cfg $CHANNEL_CONFIG_QUATRO - in_ch_map $CHANNEL_MAP_3_POINT_1 - out_ch_cfg $CHANNEL_CONFIG_QUATRO - out_ch_map $CHANNEL_MAP_3_POINT_1 - } - Object.Control.mixer.1 { - name 'Capture Raw Volume 1' - } - } - } - ] } Object.PCM.pcm [ @@ -370,20 +328,6 @@ Object.PCM.pcm [ formats 'S16_LE,S24_LE,S32_LE' } } - { - name "DMIC Raw" - id 18 - direction "capture" - Object.Base.fe_dai."DMIC Raw" {} - - Object.PCM.pcm_caps."capture" { - name "DMIC Raw" - # only 32-bit capture supported now - formats 'S32_LE' - channels_min $NUM_DMICS - channels_max $NUM_DMICS - } - } ] Object.Base.route [ @@ -407,8 +351,4 @@ Object.Base.route [ source "copier.SSP.6.1" sink "copier.host.5.1" } - { - source "module-copier.14.2" - sink "gain.16.1" - } ] diff --git a/tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake b/tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake index 5b0fbeddc..99c54d15f 100644 --- a/tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake +++ b/tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake @@ -32,7 +32,8 @@ NUM_HDMIS=0,SDW_SPK_STREAM=SDW2-Playback,SDW_SPK_IN_STREAM=SDW2-Capture,SDW_DMIC "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,DEEPBUFFER_FW_DMA_MS=10,INCLUDE_ECHO_REF=true,\ -BT_NAME=SSP2-BT,BT_ID=8,BT_PCM_NAME=Bluetooth,USE_CHAIN_DMA=true,DEEPBUFFER_D0I3_COMPATIBLE=true" +BT_NAME=SSP2-BT,BT_ID=8,BT_PCM_NAME=Bluetooth,USE_CHAIN_DMA=true,DEEPBUFFER_D0I3_COMPATIBLE=true,\ +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,\