From ff9412141632c996f4675b806f59e2b286bd5a54 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Tue, 13 Jun 2023 16:36:11 +0300 Subject: [PATCH] Tools: Topology2: Add Multiband-DRC to sof-hda-efx-generic.tplg This patch adds the topology2 files for multiband-DRC. The EFX processing chain is gain - FIR - IIR - DRC - Multiband-DRC. The configuration blob default is updated to what is generated by the current example_multiband_drc.m configuration script. The pass-through blob is set as default for tplg2. The topology 1 blobs are updated similarly. Signed-off-by: Seppo Ingalsuo --- .../m4/multiband_drc_coef_default.m4 | 68 +++++++-------- .../m4/multiband_drc_coef_passthrough.m4 | 70 ++++++++++++++++ .../topology2/cavs-mixin-mixout-efx-hda.conf | 9 +- .../topology2/development/tplg-targets.cmake | 7 +- .../include/components/multiband_drc.conf | 65 +++++++++++++++ .../components/multiband_drc/default.conf | 82 +++++++++++++++++++ .../components/multiband_drc/passthrough.conf | 71 ++++++++++++++++ .../mixout-gain-efx-dai-copier-playback.conf | 25 +++++- .../topology2/platform/intel/efx-default.conf | 1 + 9 files changed, 358 insertions(+), 40 deletions(-) create mode 100644 tools/topology/topology1/m4/multiband_drc_coef_passthrough.m4 create mode 100644 tools/topology/topology2/include/components/multiband_drc.conf create mode 100644 tools/topology/topology2/include/components/multiband_drc/default.conf create mode 100644 tools/topology/topology2/include/components/multiband_drc/passthrough.conf diff --git a/tools/topology/topology1/m4/multiband_drc_coef_default.m4 b/tools/topology/topology1/m4/multiband_drc_coef_default.m4 index 6a54ce9ea73f..4c3df7838d1a 100644 --- a/tools/topology/topology1/m4/multiband_drc_coef_default.m4 +++ b/tools/topology/topology1/m4/multiband_drc_coef_default.m4 @@ -1,7 +1,7 @@ -# Exported Control Bytes 11-May-2021 +# Exported Control Bytes 16-Aug-2023 CONTROLBYTES_PRIV(MULTIBAND_DRC_priv, ` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' -` 0x4c,0x02,0x00,0x00,0x01,0x20,0x01,0x03,' +` 0x4c,0x02,0x00,0x00,0x00,0xa0,0x01,0x03,' ` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' ` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' ` 0x4c,0x02,0x00,0x00,0x03,0x00,0x00,0x00,' @@ -23,13 +23,13 @@ CONTROLBYTES_PRIV(MULTIBAND_DRC_priv, ` 0xf4,0x64,0xf6,0xdb,0x53,0x89,0x7d,0x60,' ` 0x5c,0x14,0xf2,0x0a,0x84,0x0d,0x78,0xdc,' ` 0xda,0xef,0x21,0x1c,0x00,0x00,0x00,0x00,' -` 0x00,0x40,0x00,0x00,0x8e,0x6f,0xa8,0xc5,' -` 0xb3,0x81,0x14,0x7a,0xb0,0xc3,0x10,0x00,' -` 0x5f,0x87,0x21,0x00,0xb0,0xc3,0x10,0x00,' +` 0x00,0x40,0x00,0x00,0x6f,0x82,0x53,0xc2,' +` 0x3e,0x77,0xa1,0x7d,0x95,0xc1,0x02,0x00,' +` 0x2a,0x83,0x05,0x00,0x95,0xc1,0x02,0x00,' ` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' -` 0x8e,0x6f,0xa8,0xc5,0xb3,0x81,0x14,0x7a,' -` 0x89,0x04,0x1b,0x3d,0xee,0xf6,0xc9,0x85,' -` 0x89,0x04,0x1b,0x3d,0x00,0x00,0x00,0x00,' +` 0x6f,0x82,0x53,0xc2,0x3e,0x77,0xa1,0x7d,' +` 0x34,0x7d,0xd3,0x3e,0x99,0x05,0x59,0x82,' +` 0x34,0x7d,0xd3,0x3e,0x00,0x00,0x00,0x00,' ` 0x00,0x40,0x00,0x00,0x2d,0x3a,0xcd,0xd3,' ` 0xc0,0xf5,0x82,0x68,0x05,0xf4,0xeb,0x00,' ` 0x0a,0xe8,0xd7,0x01,0x05,0xf4,0xeb,0x00,' @@ -45,37 +45,37 @@ CONTROLBYTES_PRIV(MULTIBAND_DRC_priv, ` 0xe5,0x6e,0x2d,0x35,0x36,0x22,0xa5,0x95,' ` 0xe5,0x6e,0x2d,0x35,0x00,0x00,0x00,0x00,' ` 0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x00,' -` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1a,' -` 0x00,0x00,0x00,0x14,0x37,0x89,0x41,0x00,' -` 0xb1,0xc2,0x09,0x04,0x33,0x33,0x33,0x03,' -` 0x5e,0xb3,0x39,0x00,0xba,0x23,0x57,0x00,' -` 0x04,0xe0,0xa6,0xff,0xf0,0x48,0x42,0x01,' -` 0x97,0xe9,0x4c,0x15,0xde,0xae,0x5e,0x01,' +` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e,' +` 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00,' +` 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05,' +` 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00,' +` 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01,' +` 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01,' ` 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff,' ` 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00,' -` 0x00,0x00,0x1b,0x00,0xf0,0xcb,0x01,0x00,' -` 0x73,0x1f,0x0f,0x00,0xf0,0xcb,0x03,0x00,' -` 0xad,0x48,0x00,0x00,0x01,0x00,0x00,0x00,' -` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1b,' -` 0x00,0x00,0x00,0x06,0x37,0x89,0x41,0x00,' -` 0xb1,0xc2,0x09,0x04,0xab,0xaa,0xaa,0x0a,' -` 0xcf,0x2c,0x21,0x00,0x6d,0x9e,0x8b,0x00,' -` 0xe6,0x46,0x73,0xff,0x0f,0x9c,0x69,0x01,' -` 0xa6,0x35,0x2d,0x1f,0x1e,0x47,0x5f,0x01,' +` 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00,' +` 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00,' +` 0x5b,0x91,0x00,0x00,0x02,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e,' +` 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00,' +` 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05,' +` 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00,' +` 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01,' +` 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01,' ` 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff,' ` 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00,' -` 0x00,0x00,0x1b,0x00,0xf0,0xcb,0x01,0x00,' -` 0x73,0x1f,0x0f,0x00,0xf0,0xcb,0x03,0x00,' -` 0xad,0x48,0x00,0x00,0x01,0x00,0x00,0x00,' +` 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00,' +` 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00,' +` 0x5b,0x91,0x00,0x00,0x03,0x00,0x00,0x00,' ` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e,' -` 0x00,0x00,0x00,0x08,0x37,0x89,0x41,0x00,' -` 0xb1,0xc2,0x09,0x04,0x00,0x00,0x00,0x08,' -` 0x44,0xa0,0x1a,0x00,0xa5,0xfc,0xa9,0x00,' -` 0x77,0x22,0x55,0xff,0x83,0xc9,0xfe,0x01,' -` 0xc7,0xaf,0x90,0x25,0xde,0x6e,0x60,0x01,' +` 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00,' +` 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05,' +` 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00,' +` 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01,' +` 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01,' ` 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff,' ` 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00,' -` 0x00,0x00,0x0e,0x01,0x5c,0xf7,0x11,0x00,' -` 0x82,0x3a,0x97,0x00,0x5c,0xf7,0x25,0x00,' -` 0xc6,0xd6,0x02,0x00"' +` 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00,' +` 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00,' +` 0x5b,0x91,0x00,0x00"' ) diff --git a/tools/topology/topology1/m4/multiband_drc_coef_passthrough.m4 b/tools/topology/topology1/m4/multiband_drc_coef_passthrough.m4 new file mode 100644 index 000000000000..e397143d7361 --- /dev/null +++ b/tools/topology/topology1/m4/multiband_drc_coef_passthrough.m4 @@ -0,0 +1,70 @@ +# Exported Control Bytes 16-Aug-2023 +CONTROLBYTES_PRIV(MULTIBAND_DRC_priv, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xf4,0x01,0x00,0x00,0x00,0xa0,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xf4,0x01,0x00,0x00,0x02,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x7b,0x8e,0x88,0xfe,' +` 0x36,0x79,0x57,0x17,0x5f,0x19,0x6f,0x06,' +` 0xe8,0x79,0x67,0xd4,0x00,0x00,0x00,0x40,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x5f,0x6d,0x19,0xe7,0x39,0xc4,0xd4,0x50,' +` 0x0c,0x9b,0x09,0x24,0xad,0x76,0x82,0x9f,' +` 0x00,0x00,0x00,0x40,0xff,0xff,0xff,0xff,' +` 0x43,0x72,0x00,0x00,0xa1,0xe6,0x90,0xf9,' +` 0x18,0x86,0x98,0x2b,0xe3,0x32,0xef,0x00,' +` 0x4b,0xf7,0x20,0xf1,0x18,0x69,0xc6,0x28,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0xf4,0x64,0xf6,0xdb,0x53,0x89,0x7d,0x60,' +` 0x5c,0x14,0xf2,0x0a,0x84,0x0d,0x78,0xdc,' +` 0xda,0xef,0x21,0x1c,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x6f,0x82,0x53,0xc2,' +` 0x3e,0x77,0xa1,0x7d,0x95,0xc1,0x02,0x00,' +` 0x2a,0x83,0x05,0x00,0x95,0xc1,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x6f,0x82,0x53,0xc2,0x3e,0x77,0xa1,0x7d,' +` 0x34,0x7d,0xd3,0x3e,0x99,0x05,0x59,0x82,' +` 0x34,0x7d,0xd3,0x3e,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e,' +` 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00,' +` 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05,' +` 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00,' +` 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01,' +` 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01,' +` 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff,' +` 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00,' +` 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00,' +` 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00,' +` 0x5b,0x91,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e,' +` 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00,' +` 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05,' +` 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00,' +` 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01,' +` 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01,' +` 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff,' +` 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00,' +` 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00,' +` 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00,' +` 0x5b,0x91,0x00,0x00"' +) diff --git a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf index 076191afd289..505fe9a0260d 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf @@ -55,7 +55,12 @@ Object.Pipeline { } Object.Widget.drc.1 { Object.Control.bytes."1" { - name '2 Main playback DRC' + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC' + } + } + Object.Widget.multiband_drc.1 { + Object.Control.bytes."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM Multiband-DRC' } } } @@ -143,7 +148,7 @@ Object.PCM.pcm [ Object.Base.route [ { sink 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.playback' - source 'drc.2.1' + source 'multiband_drc.2.1' } { source 'mixin.1.1' diff --git a/tools/topology/topology2/development/tplg-targets.cmake b/tools/topology/topology2/development/tplg-targets.cmake index a2245db252a3..539eddde33f4 100644 --- a/tools/topology/topology2/development/tplg-targets.cmake +++ b/tools/topology/topology2/development/tplg-targets.cmake @@ -68,18 +68,19 @@ NHLT_BIN=nhlt-sof-lnl-nocodec-fpga-4ch.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000 # CAVS HDA topology with mixer-based efx eq pipelines for HDA and passthrough pipelines for HDMI "sof-hda-generic\;sof-hda-efx-generic\;HDA_CONFIG=efx,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,\ -EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,EFX_DRC_PARAMS=passthrough" +EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ +EFX_DRC_PARAMS=passthrough,EFX_MULTIBAND_DRC_PARAMS=passthrough" "sof-hda-generic\;sof-hda-efx-generic-2ch\;\ HDA_CONFIG=efx,NUM_DMICS=2,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-fir-generic-2ch.bin,\ USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ -EFX_DRC_PARAMS=passthrough" +EFX_DRC_PARAMS=passthrough,EFX_MULTIBAND_DRC_PARAMS=passthrough" "sof-hda-generic\;sof-hda-efx-generic-4ch\;\ HDA_CONFIG=efx,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-efx-generic-4ch.bin,USE_CHAIN_DMA=true,\ DEEPBUFFER_FW_DMA_MS=100,EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ -EFX_DRC_PARAMS=passthrough" +EFX_DRC_PARAMS=passthrough,EFX_MULTIBAND_DRC_PARAMS=passthrough" # CAVS HDA topology with gain and SRC before mixin for HDA and passthrough pipelines for HDMI "sof-hda-generic\;sof-hda-src-generic\;HDA_CONFIG=src,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100" diff --git a/tools/topology/topology2/include/components/multiband_drc.conf b/tools/topology/topology2/include/components/multiband_drc.conf new file mode 100644 index 000000000000..53c7ed77b0f2 --- /dev/null +++ b/tools/topology/topology2/include/components/multiband_drc.conf @@ -0,0 +1,65 @@ +# +# +# A generic MULTIBAND_DRC component. All attributes defined herein are namespaced +# by alsatplg to "Object.Widget.multiband_drc.attribute_name" +# +# Usage: this component can be used by declaring in the parent object. i.e. +# +# Object.Widget.multiband_drc."N" { +# index 1 +# } +# } + +# +# Where M is pipeline ID and N is a unique integer in the parent object. + +Class.Widget."multiband_drc" { + # + # Pipeline ID + # + DefineAttribute."index" { + type "integer" + } + + # + # Unique instance for MULTIBAND_DRC widget + # + DefineAttribute."instance" { + type "integer" + } + + # Include common widget attributes definition + + + attributes { + !constructor [ + "index" + "instance" + ] + !mandatory [ + "num_input_pins" + "num_output_pins" + "num_input_audio_formats" + "num_output_audio_formats" + ] + + !immutable [ + "uuid" + "type" + ] + !deprecated [ + "preload_count" + ] + unique "instance" + } + + # + # Default attributes for multiband_drc + # + + uuid "56:22:9f:0d:4f:8e:b3:47:84:48:23:9a:33:4f:11:91" + type "effect" + no_pm "true" + num_input_pins 1 + num_output_pins 1 +} diff --git a/tools/topology/topology2/include/components/multiband_drc/default.conf b/tools/topology/topology2/include/components/multiband_drc/default.conf new file mode 100644 index 000000000000..d95bdca1e02d --- /dev/null +++ b/tools/topology/topology2/include/components/multiband_drc/default.conf @@ -0,0 +1,82 @@ +# Exported Control Bytes 16-Aug-2023 +Object.Base.data."multiband_drc_config" { + bytes " + 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, + 0x4c,0x02,0x00,0x00,0x00,0xa0,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x4c,0x02,0x00,0x00,0x03,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x7b,0x8e,0x88,0xfe, + 0x36,0x79,0x57,0x17,0x5f,0x19,0x6f,0x06, + 0xe8,0x79,0x67,0xd4,0x00,0x00,0x00,0x40, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x5f,0x6d,0x19,0xe7,0x39,0xc4,0xd4,0x50, + 0x0c,0x9b,0x09,0x24,0xad,0x76,0x82,0x9f, + 0x00,0x00,0x00,0x40,0xff,0xff,0xff,0xff, + 0x43,0x72,0x00,0x00,0xa1,0xe6,0x90,0xf9, + 0x18,0x86,0x98,0x2b,0xe3,0x32,0xef,0x00, + 0x4b,0xf7,0x20,0xf1,0x18,0x69,0xc6,0x28, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0xf4,0x64,0xf6,0xdb,0x53,0x89,0x7d,0x60, + 0x5c,0x14,0xf2,0x0a,0x84,0x0d,0x78,0xdc, + 0xda,0xef,0x21,0x1c,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x6f,0x82,0x53,0xc2, + 0x3e,0x77,0xa1,0x7d,0x95,0xc1,0x02,0x00, + 0x2a,0x83,0x05,0x00,0x95,0xc1,0x02,0x00, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x6f,0x82,0x53,0xc2,0x3e,0x77,0xa1,0x7d, + 0x34,0x7d,0xd3,0x3e,0x99,0x05,0x59,0x82, + 0x34,0x7d,0xd3,0x3e,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x2d,0x3a,0xcd,0xd3, + 0xc0,0xf5,0x82,0x68,0x05,0xf4,0xeb,0x00, + 0x0a,0xe8,0xd7,0x01,0x05,0xf4,0xeb,0x00, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x2d,0x3a,0xcd,0xd3,0xc0,0xf5,0x82,0x68, + 0xe5,0x6e,0x2d,0x35,0x36,0x22,0xa5,0x95, + 0xe5,0x6e,0x2d,0x35,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x2d,0x3a,0xcd,0xd3, + 0xc0,0xf5,0x82,0x68,0x05,0xf4,0xeb,0x00, + 0x0a,0xe8,0xd7,0x01,0x05,0xf4,0xeb,0x00, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x2d,0x3a,0xcd,0xd3,0xc0,0xf5,0x82,0x68, + 0xe5,0x6e,0x2d,0x35,0x36,0x22,0xa5,0x95, + 0xe5,0x6e,0x2d,0x35,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e, + 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00, + 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05, + 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00, + 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01, + 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01, + 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff, + 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00, + 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00, + 0x5b,0x91,0x00,0x00,0x02,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e, + 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00, + 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05, + 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00, + 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01, + 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01, + 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff, + 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00, + 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00, + 0x5b,0x91,0x00,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e, + 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00, + 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05, + 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00, + 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01, + 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01, + 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff, + 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00, + 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00, + 0x5b,0x91,0x00,0x00" +} diff --git a/tools/topology/topology2/include/components/multiband_drc/passthrough.conf b/tools/topology/topology2/include/components/multiband_drc/passthrough.conf new file mode 100644 index 000000000000..2010cf15c617 --- /dev/null +++ b/tools/topology/topology2/include/components/multiband_drc/passthrough.conf @@ -0,0 +1,71 @@ +# Exported Control Bytes 16-Aug-2023 +Object.Base.data."multiband_drc_config" { + bytes " + 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, + 0xf4,0x01,0x00,0x00,0x00,0xa0,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xf4,0x01,0x00,0x00,0x02,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x7b,0x8e,0x88,0xfe, + 0x36,0x79,0x57,0x17,0x5f,0x19,0x6f,0x06, + 0xe8,0x79,0x67,0xd4,0x00,0x00,0x00,0x40, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x5f,0x6d,0x19,0xe7,0x39,0xc4,0xd4,0x50, + 0x0c,0x9b,0x09,0x24,0xad,0x76,0x82,0x9f, + 0x00,0x00,0x00,0x40,0xff,0xff,0xff,0xff, + 0x43,0x72,0x00,0x00,0xa1,0xe6,0x90,0xf9, + 0x18,0x86,0x98,0x2b,0xe3,0x32,0xef,0x00, + 0x4b,0xf7,0x20,0xf1,0x18,0x69,0xc6,0x28, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0xf4,0x64,0xf6,0xdb,0x53,0x89,0x7d,0x60, + 0x5c,0x14,0xf2,0x0a,0x84,0x0d,0x78,0xdc, + 0xda,0xef,0x21,0x1c,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x6f,0x82,0x53,0xc2, + 0x3e,0x77,0xa1,0x7d,0x95,0xc1,0x02,0x00, + 0x2a,0x83,0x05,0x00,0x95,0xc1,0x02,0x00, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x6f,0x82,0x53,0xc2,0x3e,0x77,0xa1,0x7d, + 0x34,0x7d,0xd3,0x3e,0x99,0x05,0x59,0x82, + 0x34,0x7d,0xd3,0x3e,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e, + 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00, + 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05, + 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00, + 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01, + 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01, + 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff, + 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00, + 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00, + 0x5b,0x91,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x1e, + 0x00,0x00,0x00,0x0c,0xd3,0x4d,0x62,0x00, + 0xb1,0xc2,0x09,0x04,0x55,0x55,0x55,0x05, + 0x50,0xfa,0x1e,0x00,0x55,0x60,0x94,0x00, + 0x7e,0x98,0x6a,0xff,0x83,0xc9,0xfe,0x01, + 0x64,0x47,0x47,0x22,0x17,0x56,0x74,0x01, + 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff, + 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x36,0x00,0xdf,0x97,0x03,0x00, + 0xe7,0x3e,0x1e,0x00,0xdf,0x97,0x07,0x00, + 0x5b,0x91,0x00,0x00" +} 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 93dc0e64c893..2251fcea1e5d 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 @@ -22,9 +22,10 @@ - + + Class.Pipeline."mixout-gain-efx-dai-copier-playback" { @@ -143,6 +144,24 @@ Class.Pipeline."mixout-gain-efx-dai-copier-playback" { } } } + multiband_drc."1" { + num_input_audio_formats 1 + num_output_audio_formats 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.Control.bytes."1" { + IncludeByKey.EFX_MULTIBAND_DRC_PARAMS { + "passthrough" "include/components/multiband_drc/passthrough.conf" + "default" "include/components/multiband_drc/default.conf" + } + } + } pipeline."1" { priority 0 lp_mode 0 @@ -166,6 +185,10 @@ Class.Pipeline."mixout-gain-efx-dai-copier-playback" { source eqfir..1 sink drc..1 } + route.5 { + source drc..1 + sink multiband_drc..1 + } } direction "playback" diff --git a/tools/topology/topology2/platform/intel/efx-default.conf b/tools/topology/topology2/platform/intel/efx-default.conf index ed9304b4c062..074b39956f9e 100644 --- a/tools/topology/topology2/platform/intel/efx-default.conf +++ b/tools/topology/topology2/platform/intel/efx-default.conf @@ -3,4 +3,5 @@ Define { EFX_IIR_PARAMS 'passthrough' EFX_CROSSOVER_PARAMS '2way' EFX_DRC_PARAMS 'passthrough' + EFX_MULTIBAND_DRC_PARAMS 'passthrough' }