diff --git a/src/arch/xtensa/configs/override/mt8188_chrome_waves.config b/src/arch/xtensa/configs/override/mt8188_chrome_waves.config new file mode 100644 index 000000000000..6e0143275ba6 --- /dev/null +++ b/src/arch/xtensa/configs/override/mt8188_chrome_waves.config @@ -0,0 +1,2 @@ +CONFIG_COMP_MODULE_ADAPTER=y +CONFIG_WAVES_CODEC=y diff --git a/src/include/kernel/tokens.h b/src/include/kernel/tokens.h index 09f82a3063c5..93c4754f831c 100644 --- a/src/include/kernel/tokens.h +++ b/src/include/kernel/tokens.h @@ -33,6 +33,7 @@ /* buffers */ #define SOF_TKN_BUF_SIZE 100 #define SOF_TKN_BUF_CAPS 101 +#define SOF_TKN_BUF_FLAGS 102 /* DAI */ /* Token retired with ABI 3.2, do not use for new capabilities diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 70b0bdd260de..8869a8bd7d1b 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -78,6 +78,7 @@ set(TPLGS "sof-mt8186-mt6366\;sof-mt8186-dts\;-DDTS=`DTS'" "sof-mt8186-mt6366\;sof-mt8186-mt6366-rt1019-rt5682s-waves\;-DWAVES=1" "sof-mt8188-mt6359\;sof-mt8188" + "sof-mt8188-mt6359\;sof-mt8188-waves\;-DWAVES=1" "sof-acp-renoir\;sof-acp" "sof-rn-rt5682-rt1019\;sof-rn-rt5682-rt1019" @@ -91,6 +92,7 @@ set(TPLGS "sof-acp-rmb\;sof-rmb-rt5682s-rt1019" "sof-acp-rmb\;sof-rmb-nau8825-max98360" "sof-acp_6_3\;sof-acp_6_3" + "sof-acp_6_3_sdw\;sof-acp_6_3-rt715-rt711-rt1316" ) # This empty 'production/' source subdirectory exists only to create the diff --git a/tools/topology/topology1/m4/buffer.m4 b/tools/topology/topology1/m4/buffer.m4 index 376e206c6c09..29a6b5f084a5 100644 --- a/tools/topology/topology1/m4/buffer.m4 +++ b/tools/topology/topology1/m4/buffer.m4 @@ -5,13 +5,16 @@ dnl Define the macro for buffer widget dnl N_BUFFER(name) define(`N_BUFFER', `BUF'PIPELINE_ID`.'$1) -dnl W_BUFFER(name, size, capabilities) +dnl W_BUFFER(name, size, capabilities, [core], [flags]) define(`W_BUFFER', `SectionVendorTuples."'N_BUFFER($1)`_tuples" {' ` tokens "sof_buffer_tokens"' ` tuples."word" {' ` SOF_TKN_BUF_SIZE' STR($2) ` SOF_TKN_BUF_CAPS' STR($3) +`ifelse(`$#', `5', +` SOF_TKN_BUF_FLAGS' STR($5) +,` ')' ` }' `}' `SectionData."'N_BUFFER($1)`_data" {' diff --git a/tools/topology/topology1/m4/dai.m4 b/tools/topology/topology1/m4/dai.m4 index e4452c7376f0..cd968c6c61fd 100644 --- a/tools/topology/topology1/m4/dai.m4 +++ b/tools/topology/topology1/m4/dai.m4 @@ -155,7 +155,7 @@ define(`DO_DAI_CONFIG', `' ` id "'$3`"' `' -` ifelse($1, `SSP', $5, $1, `HDA', $5, $1, `ALH', $5, $1, `ESAI', $5, $1, `SAI', $5, $1, `MICFIL', $5, $1, `AFE', $5, $1, `ACP', $5, $1, `ACPSP', $5, $1,`ACPSP_VIRTUAL', $5, $1, `ACPHS', $5, $1, `ACPHS_VIRTUAL', $5, $1, `ACPDMIC', $5, `}')' +` ifelse($1, `SSP', $5, $1, `HDA', $5, $1, `ALH', $5, $1, `ESAI', $5, $1, `SAI', $5, $1, `MICFIL', $5, $1, `AFE', $5, $1, `ACP', $5, $1, `ACPSP', $5, $1,`ACPSP_VIRTUAL', $5, $1, `ACPHS', $5, $1, `ACPHS_VIRTUAL', $5, $1, `ACP_SDW', $5, $1, `ACPDMIC', $5, `}')' `ifelse($1, `DMIC', $5, `')' `SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples_common" {' ` tokens "sof_dai_tokens"' diff --git a/tools/topology/topology1/m4/drc_coef_generic_notebook_speaker.m4 b/tools/topology/topology1/m4/drc_coef_generic_notebook_speaker.m4 new file mode 100644 index 000000000000..613f60e98caa --- /dev/null +++ b/tools/topology/topology1/m4/drc_coef_generic_notebook_speaker.m4 @@ -0,0 +1,22 @@ +# Exported with script example_drc.m 18-Dec-2023 +# cd tools/tune/drc; octave --no-window-system example_drc.m +CONTROLBYTES_PRIV(DRC_priv, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x6c,0x00,0x00,0x00,0x00,0xa0,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x0f,' +` 0x00,0x00,0x00,0x0a,0xd3,0x4d,0x62,0x00,' +` 0x0c,0x57,0x99,0x03,0x66,0x66,0x66,0x06,' +` 0x5c,0xea,0xc1,0x00,0xbf,0x84,0x23,0x00,' +` 0x03,0x3e,0xd6,0xff,0x4e,0xf4,0x50,0x00,' +` 0xb6,0xa0,0xb5,0x09,0x4c,0x10,0x61,0x04,' +` 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff,' +` 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00,' +` 0x00,0x80,0x43,0x00,0xd7,0x7d,0x04,0x00,' +` 0xa0,0xce,0x25,0x00,0xd7,0x7d,0x09,0x00,' +` 0xb1,0xb5,0x00,0x00"' +) diff --git a/tools/topology/topology1/platform/common/acp-sdw.m4 b/tools/topology/topology1/platform/common/acp-sdw.m4 new file mode 100644 index 000000000000..9fff69e40750 --- /dev/null +++ b/tools/topology/topology1/platform/common/acp-sdw.m4 @@ -0,0 +1,24 @@ +divert(-1) + +dnl ACP_SDW related macros + +dnl ACP_CONFIG(format, mclk, bclk, fsync, tdm, sdw_config_data) +define(`ACP_SDW_CONFIG', +`}' +$1 +) +dnl ACP_SDW_CONFIG_DATA(type, idx, rate, channel) +define(`ACP_SDW_CONFIG_DATA', +`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples" {' +` tokens "sof_acp_sdw_tokens"' +` tuples."word" {' +` SOF_TKN_AMD_ACP_SDW_SAMPLERATE' STR($3) +` SOF_TKN_AMD_ACP_SDW_CH' STR($4) +` }' +`}' +`SectionData."'N_DAI_CONFIG($1$2)`_data" {' +` tuples "'N_DAI_CONFIG($1$2)`_tuples"' +`}' +) + +divert(0)dnl diff --git a/tools/topology/topology1/sof-acp_6_3_sdw.m4 b/tools/topology/topology1/sof-acp_6_3_sdw.m4 new file mode 100644 index 000000000000..b8b6f4dc7b8e --- /dev/null +++ b/tools/topology/topology1/sof-acp_6_3_sdw.m4 @@ -0,0 +1,136 @@ +#Required Topology for RTK Monolithic Aggregated with ACP DMIC Card +# PCM Description DAI LINK DAI BE +# 0       HS Playback 0 SDW0-PIN0-Playback-SimpleJack       AUDIO_TX +# 1       HS Capture 1 SDW0-PIN3-Capture-SimpleJack    AUDIO_RX +# 2       Speaker playback 2 SDW0-PIN1-Playback-SmartAmp    BT_TX +# 4       SDW DMIC 4 SDW1-PIN1-Capture-SmartMic    P1_SW_BT RX +# +# Topology for Phoenix with soundwire and DMIC. +# + +# +# Define the pipelines +# +# PCM0 ----> buffer ----> AUDIO_TX +# PCM1 <---- buffer <---- AUDIO_RX +# PCM2 ----> buffer ----> BT_TX +# PCM4 <---- buffer <---- P1_SW_BT RX + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') +include(`acp-dmic.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +#/**********************************************************************************/ +# PCM 0, HS Playback, DAI link id 0, Dai index 0(Audio_Tx), BE SW0-PIN0-PLAYBACK + +#Driver dai index and dai BE +#DAI Index(Instance * 64 + base_index) DAI_BE +#0(AUDIO_TX) SDW0-PIN0-PLAYBACK-SimpleJack +#1(BT_TX) SDW0-PIN1-PLAYBACK-SmartAmp +#2(HS_TX) SDW0-PIN2-PLAYBACK +#3(AUDIO_RX) SDW0-PIN3-CAPTURE-SimpleJack +#4(BT_RX) SDW0-PIN4-CAPTURE-SmartAmp +#5(HS_RX) SDW0-PIN5-CAPTURE +# +#65(P1_BT_TX) SDW1-PIN1-PLAYBACK +#68(P1_BT_RX) SDW1-PIN1-CAPTURE-SmartMic + +define(DI_SDW0_ACP_SW_Audio_TX, 0) +define(DI_SDW0_ACP_SW_BT_TX, 1) +define(DI_SDW0_ACP_SW_HS_TX, 2) +define(DI_SDW0_ACP_SW_Audio_RX, 3) +define(DI_SDW0_ACP_SW_BT_RX, 4) +define(DI_SDW0_ACP_SW_HS_RX, 5) +define(DI_SDW1_ACP_P1_SW_BT_RX, 68) +define(DI_SDW1_ACP_P1_SW_BT_TX, 65) + +define(DAI_BE_SDW0_ACP_SW_HS_RX, SDW0-PIN5-CAPTURE) +define(DAI_BE_SDW0_ACP_SW_HS_TX, SDW0-PIN2-PLAYBACK) +define(DAI_BE_SDW1_ACP_P1_SW_BT_RX, SDW1-PIN1-CAPTURE-SmartMic) +define(DAI_BE_SDW1_ACP_P1_SW_BT_TX, SDW1-PIN1-PLAYBACK) +define(DAI_BE_ACP_SW_Audio_RX, SDW0-PIN3-CAPTURE-SimpleJack) +define(DAI_BE_SDW0_ACP_SW_Audio_TX, SDW0-PIN0-PLAYBACK-SimpleJack) +define(DAI_BE_SDW0_ACP_SW_BT_RX, SDW0-PIN4-CAPTURE-SmartAmp) +define(DAI_BE_SDW0_ACP_SW_BT_TX, SDW0-PIN1-PLAYBACK-SmartAmp) + +#pipeline: name of the predefined pipeline +#pipe id: pipeline ID. This should be a unique ID identifying the pipeline +#pcm: PCM ID. This will be used to bind to the correct front end DAI link +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 0, 0, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +#DAI_ADD(pipeline, pipe id, dai type, firmware dai_index, dai_be, buffer) +DAI_ADD(sof/pipe-dai-playback.m4, 0, ACP_SDW, DI_SDW0_ACP_SW_Audio_TX, DAI_BE_SDW0_ACP_SW_Audio_TX, +PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) + +#DAI_CONFIG(type, driver dai_index, link_id, Dai BE name, config) +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_Audio_TX, 0, DAI_BE_SDW0_ACP_SW_Audio_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_Audio_TX, 48000, 2))) +PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0) +#/**********************************************************************************/ + + +#/**********************************************************************************/ +#PCM 1, HS Capture, DAI link id 1, Dai index 3(Audio_RX), BE SW0-PIN0-CAPTURE +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 1, 1, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# Capture DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-capture.m4, 1, ACP_SDW, DI_SDW0_ACP_SW_Audio_RX, DAI_BE_ACP_SW_Audio_RX, +PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_Audio_RX, 1, DAI_BE_ACP_SW_Audio_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_Audio_RX, 48000, 2))) +PCM_CAPTURE_ADD(ACP-SW0-PIN0-Capture-HS, 1, PIPELINE_PCM_1) +#/**********************************************************************************/ + +#/**********************************************************************************/ +#PCM 2, Speaker Playback, DAI link id 2, Dai index 1(BT_TX), BE SW0-PIN1-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 2, 2, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# playback DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-playback.m4, 2, ACP_SDW, DI_SDW0_ACP_SW_BT_TX, DAI_BE_SDW0_ACP_SW_BT_TX, +PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_BT_TX, 2, DAI_BE_SDW0_ACP_SW_BT_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_BT_TX, 48000, 2))) +PCM_PLAYBACK_ADD(ACP-SW0-PIN2-Playback-SPK, 2, PIPELINE_PCM_2) +#/**********************************************************************************/ + +#/**********************************************************************************/ +#PCM 4, SDW Capture, DAI link id 4, Dai index 68(P1_BT_RX), BE SW1-PIN1-CAPTURE +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 4, 4, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# Capture DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-capture.m4, 4, ACP_SDW, DI_SDW1_ACP_P1_SW_BT_RX, DAI_BE_SDW1_ACP_P1_SW_BT_RX, +PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) + +DAI_CONFIG(ACP_SDW, DI_SDW1_ACP_P1_SW_BT_RX, 4, DAI_BE_SDW1_ACP_P1_SW_BT_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW1_ACP_P1_SW_BT_RX, 48000, 2))) +PCM_CAPTURE_ADD(ACP-SW1-PIN1-CAPTURE-DMIC, 4, PIPELINE_PCM_4) +#/**********************************************************************************/ + diff --git a/tools/topology/topology1/sof-mt8188-mt6359.m4 b/tools/topology/topology1/sof-mt8188-mt6359.m4 index f649f366c96d..4244964561db 100644 --- a/tools/topology/topology1/sof-mt8188-mt6359.m4 +++ b/tools/topology/topology1/sof-mt8188-mt6359.m4 @@ -34,19 +34,23 @@ dnl period, priority, core, dnl pcm_min_rate, pcm_max_rate, pipeline_rate, dnl time_domain, sched_comp) +define(`ENDPOINT_NAME', `Speakers') # Low Latency playback pipeline 1 on PCM 16 using max 2 channels of s16le # Set 1000us deadline with priority 0 on core 0 -PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, +PIPELINE_PCM_ADD(ifdef(`WAVES', sof/pipe-waves-codec-playback.m4, sof/pipe-passthrough-playback.m4), 1, 16, 2, s16le, 1000, 0, 0, 48000, 48000, 48000) +undefine(`ENDPOINT_NAME') +define(`ENDPOINT_NAME', `Headphones') # Low Latency playback pipeline 2 on PCM 17 using max 2 channels of s16le # Set 1000us deadline with priority 0 on core 0 -PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, +PIPELINE_PCM_ADD(ifdef(`WAVES', sof/pipe-waves-codec-playback.m4, sof/pipe-passthrough-playback.m4), 2, 17, 2, s16le, 1000, 0, 0, 48000, 48000, 48000) +undefine(`ENDPOINT_NAME') # Low Latency capture pipeline 3 on PCM 18 using max 2 channels of s16le # Set 2000us deadline with priority 0 on core 0 diff --git a/tools/topology/topology1/sof/pipe-drc-playback.m4 b/tools/topology/topology1/sof/pipe-drc-playback.m4 index a33a8384eafc..74cfc7c1c024 100644 --- a/tools/topology/topology1/sof/pipe-drc-playback.m4 +++ b/tools/topology/topology1/sof/pipe-drc-playback.m4 @@ -31,7 +31,7 @@ W_PCM_PLAYBACK(PCM_ID, DRC Playback, 2, 0, SCHEDULE_CORE) define(DRC_priv, concat(`drc_bytes_', PIPELINE_ID)) define(MY_DRC_CTRL, concat(`drc_control_', PIPELINE_ID)) -include(`drc_coef_default.m4') +include(`drc_coef_generic_notebook_speaker.m4') C_CONTROLBYTES(MY_DRC_CTRL, PIPELINE_ID, CONTROLBYTES_OPS(bytes, 258 binds the control to bytes get/put handlers, 258, 258), CONTROLBYTES_EXTOPS(258 binds the control to bytes get/put handlers, 258, 258), diff --git a/tools/topology/topology1/sof/pipe-volume-capture.m4 b/tools/topology/topology1/sof/pipe-volume-capture.m4 index 17297b3d2f69..e208425bd55e 100644 --- a/tools/topology/topology1/sof/pipe-volume-capture.m4 +++ b/tools/topology/topology1/sof/pipe-volume-capture.m4 @@ -72,10 +72,13 @@ P_GRAPH(pipe-volume-capture, PIPELINE_ID, indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(1)) indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Capture PCM_ID) +ifdef(`CHANNELS_MIN', `define(`LOCAL_CHANNELS_MIN', `CHANNELS_MIN')', +`define(`LOCAL_CHANNELS_MIN', `2')') + # # PCM Configuration # PCM_CAPABILITIES(Passthrough Capture PCM_ID, CAPABILITY_FORMAT_NAME(PIPELINE_FORMAT), - PCM_MIN_RATE, PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + PCM_MIN_RATE, PCM_MAX_RATE, LOCAL_CHANNELS_MIN, PIPELINE_CHANNELS, 2, 16, 192, 16384, 65536, 65536) diff --git a/tools/topology/topology1/sof/tokens.m4 b/tools/topology/topology1/sof/tokens.m4 index d70ea05cc096..b9748bb52fbc 100644 --- a/tools/topology/topology1/sof/tokens.m4 +++ b/tools/topology/topology1/sof/tokens.m4 @@ -152,3 +152,8 @@ SectionVendorTokens."sof_micfil_tokens" { SOF_TKN_IMX_MICFIL_RATE "2000" SOF_TKN_IMX_MICFIL_CH "2001" } + +SectionVendorTokens."sof_acp_sdw_tokens" { + SOF_TKN_AMD_ACP_SDW_SAMPLERATE "2100" + SOF_TKN_AMD_ACP_SDW_CH "2101" +} diff --git a/tools/topology/topology2/CMakeLists.txt b/tools/topology/topology2/CMakeLists.txt index b2742b956dff..2a1ee5483e7e 100644 --- a/tools/topology/topology2/CMakeLists.txt +++ b/tools/topology/topology2/CMakeLists.txt @@ -3,7 +3,15 @@ # 3.17 required: foreach(... IN ZIP_LISTS ) cmake_minimum_required(VERSION 3.17) -add_custom_target(topologies2) +add_custom_target(topologies2 ALL + # Create directory structure to be provided for deployment + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/target/sof-ipc4-tplg + COMMAND ${CMAKE_COMMAND} -E create_symlink sof-ipc4-tplg ${CMAKE_CURRENT_BINARY_DIR}/target/sof-ace-tplg + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/target/development + # copy the topology files only to target + COMMAND ${CMAKE_COMMAND} -E copy_if_different production/*.tplg ${CMAKE_CURRENT_BINARY_DIR}/target/sof-ipc4-tplg/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different development/*.tplg ${CMAKE_CURRENT_BINARY_DIR}/target/development/ +) # Check alsatplg version and build topology2 if alsatplg version is # 1.2.7 or greater, see https://github.com/thesofproject/sof/issues/5323 @@ -29,7 +37,6 @@ add_custom_target(abi_target DEPENDS abi.conf ) -add_dependencies(topologies2 topology2_cavs topology2_ace topology2_dev) -add_subdirectory(avs-tplg) +add_dependencies(topologies2 topology2_dev topology2_prod) add_subdirectory(development) -add_subdirectory(sof-ace-tplg) +add_subdirectory(production) diff --git a/tools/topology/topology2/cavs-benchmark-hda.conf b/tools/topology/topology2/cavs-benchmark-hda.conf index aaa5c914e053..fc28a2b8e105 100644 --- a/tools/topology/topology2/cavs-benchmark-hda.conf +++ b/tools/topology/topology2/cavs-benchmark-hda.conf @@ -1,4 +1,7 @@ + + + Define { ANALOG_PLAYBACK_PCM 'Analog Playback' @@ -30,11 +33,15 @@ Object.PCM.pcm [ direction "playback" name $ANALOG_PLAYBACK_PCM formats 'S32_LE,S24_LE,S16_LE' + rate_min 8000 + rate_max 192000 } Object.PCM.pcm_caps.2 { direction "capture" name $ANALOG_CAPTURE_PCM formats 'S32_LE,S24_LE,S16_LE' + rate_min 8000 + rate_max 192000 } direction duplex } @@ -284,4 +291,68 @@ IncludeByKey.BENCH_CONFIG { "gain32" { } + + # + # IGO NR component + # + + "igo_nr16" { + + } + + "igo_nr24" { + + } + + "igo_nr32" { + + } + + # + # RTNR component + # + + "rtnr16" { + + } + + "rtnr24" { + + } + + "rtnr32" { + + } + + # + # SRC component + # + + "src16" { + + } + + "src24" { + + } + + "src32" { + + } + + # + # src_lite component + # + + "src_lite16" { + + } + + "src_lite24" { + + } + + "src_lite32" { + + } } diff --git a/tools/topology/topology2/cavs-es83x6.conf b/tools/topology/topology2/cavs-es83x6.conf new file mode 100644 index 000000000000..937c34b5e2ad --- /dev/null +++ b/tools/topology/topology2/cavs-es83x6.conf @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IncludeByKey.HDMI_IN_CAPTURE { + "true" "platform/intel/hdmi-in-capture.conf" +} + + + + + +Define { + MCLK 24576000 + # override BE link ids + NUM_HDMIS 3 + HDMI1_ID 3 + HDMI2_ID 4 + HDMI3_ID 5 + PLATFORM "none" + HEADSET_CODEC_NAME 'SSP1-Codec' + HEADSET_PLAYBACK_PCM_STREAM_NAME 'Headset Playback' + HEADSET_CAPTURE_PCM_STREAM_NAME 'Headset Capture' + HEADSET_SSP_DAI_INDEX 1 + HEADSET_HW_CONFIG_NAME 'HEADSET HWCFG' + HEADSET_PCM_NAME "Headset" + HEADSET_PCM_ID 0 +} + +# override defaults with platform-specific config +IncludeByKey.PLATFORM { + "mtl" "platform/intel/mtl.conf" +} + +# include HDMI config if needed. +IncludeByKey.NUM_HDMIS { + "[3-4]" "platform/intel/hdmi-generic.conf" +} + +# +# List of all DAIs +# +#SSP Index: 0, Direction: duplex +Object.Dai.SSP [ + { + id 0 + dai_index $HEADSET_SSP_DAI_INDEX + direction "duplex" + name $HEADSET_CODEC_NAME + default_hw_conf_id 0 + sample_bits 32 + io_clk $MCLK + + Object.Base.hw_config.1 { + name $HEADSET_HW_CONFIG_NAME + id 0 + bclk_freq 3072000 + tdm_slot_width 32 + # TODO: remove this. Needs alsaptlg change. + Object.Base.link_config.1 { + clock_source 1 + } + } + } +] + +# +# Pipeline definitions +# +# PCM0 ---> gain ----> Mixin ----> Mixout ----> gain ----> SSP1 +# +# SSP1 ----> PCM0 + +# Pipeline ID:1 PCM ID: 0 +Object.Pipeline { + # playback pipelines + host-copier-gain-mixin-playback [ + { + index 1 + + Object.Widget.host-copier.1 { + stream_name '$HEADSET_PLAYBACK_PCM_STREAM_NAME' + pcm_id $HEADSET_PCM_ID + } + Object.Widget.gain.1 { + Object.Control.mixer.1 { + name 'Playback Volume 1' + } + } + } + ] + + mixout-gain-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 + } + + Object.Widget.gain.1 { + Object.Control.mixer.1 { + name 'Main Playback Volume 2' + } + } + } + ] + + host-gateway-capture [ + { + index 5 + + Object.Widget.host-copier.1 { + stream_name '$HEADSET_CAPTURE_PCM_STREAM_NAME' + pcm_id $HEADSET_PCM_ID + } + } + ] + + io-gateway-capture [ + { + index 6 + + Object.Widget.dai-copier."1" { + dai_index $HEADSET_SSP_DAI_INDEX + dai_type "SSP" + type dai_out + 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 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } + ] +} + +Object.PCM.pcm [ + { + name "$HEADSET_PCM_NAME" + id $HEADSET_PCM_ID + direction "duplex" + Object.Base.fe_dai.1 { + name "$HEADSET_PCM_NAME" + } + + Object.PCM.pcm_caps.1 { + direction "playback" + name "$HEADSET_PLAYBACK_PCM_STREAM_NAME" + formats 'S16_LE,S24_LE,S32_LE' + } + + Object.PCM.pcm_caps.2 { + direction "capture" + name "$HEADSET_CAPTURE_PCM_STREAM_NAME" + formats 'S16_LE,S24_LE,S32_LE' + } + } +] + +Object.Base.route [ + { + source "gain.2.1" + sink "dai-copier.SSP.$HEADSET_CODEC_NAME.playback" + } + { + source "mixin.1.1" + sink "mixout.2.1" + } + { + source "dai-copier.SSP.$HEADSET_CODEC_NAME.capture" + sink "host-copier.$HEADSET_PCM_ID.capture" + } + { + source "host-copier.$HEADSET_PCM_ID.playback" + sink "gain.1.1" + } +] diff --git a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf index 2ce8e2fa2cbd..4a31d27dd740 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf @@ -56,8 +56,13 @@ Object.Pipeline { } } Object.Widget.drc.1 { - Object.Control.bytes."1" { - name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC' + Object.Control { + bytes."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC bytes' + } + mixer."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC switch' + } } } } diff --git a/tools/topology/topology2/cavs-nocodec-bt.conf b/tools/topology/topology2/cavs-nocodec-bt.conf index 1e4835713c1f..c0b66111ea0b 100644 --- a/tools/topology/topology2/cavs-nocodec-bt.conf +++ b/tools/topology/topology2/cavs-nocodec-bt.conf @@ -278,13 +278,13 @@ Object.PCM.pcm [ Object.PCM.pcm_caps.1 { direction "playback" name "SSP0 Playback" - formats 'S16_LE,S24_LE,S32_LE' + formats 'S32_LE' } Object.PCM.pcm_caps.2 { direction "capture" name "SSP0 Capture" - formats 'S16_LE,S24_LE,S32_LE' + formats 'S32_LE' } } { @@ -298,13 +298,13 @@ Object.PCM.pcm [ Object.PCM.pcm_caps.1 { direction "playback" name "SSP1 Playback" - formats 'S16_LE,S24_LE,S32_LE' + formats 'S32_LE' } Object.PCM.pcm_caps.2 { direction "capture" name "SSP1 Capture" - formats 'S16_LE,S24_LE,S32_LE' + formats 'S32_LE' } } ] diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index 6bcc83e63ed0..12de16d9e818 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -70,7 +70,6 @@ Define { HDMI4_ID 6 SPK_ID 7 PLATFORM "none" - USE_CHAIN_DMA "false" DEEP_BUFFER_PIPELINE_ID 15 DEEP_BUFFER_PCM_ID 31 DEEP_BUFFER_PIPELINE_SRC 'mixin.15.1' diff --git a/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf b/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf index 17acf2ceac4f..014db844b8fe 100644 --- a/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf +++ b/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf @@ -142,12 +142,16 @@ Object.Widget { { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" } ] } diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index a33e60e92d6d..8f71e5b9ed72 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -63,7 +63,6 @@ Define { DMIC0_ID 4 DMIC1_ID 5 DMIC0_PCM_CAPS 'Gain Capture 13' - USE_CHAIN_DMA "false" DEEP_BUFFER_PIPELINE_ID 15 DEEP_BUFFER_PCM_ID 31 DEEP_BUFFER_PIPELINE_SRC 'mixin.15.1' diff --git a/tools/topology/topology2/development/tplg-targets-bench.cmake b/tools/topology/topology2/development/tplg-targets-bench.cmake index 06ddbfa3b80e..50b263801fda 100644 --- a/tools/topology/topology2/development/tplg-targets-bench.cmake +++ b/tools/topology/topology2/development/tplg-targets-bench.cmake @@ -15,6 +15,10 @@ set(components "eqiir" "eqfir" "gain" + "igo_nr" + "rtnr" + "src" + "src_lite" ) set(component_parameters @@ -24,6 +28,10 @@ set(component_parameters "BENCH_EQIIR_PARAMS=highpass_50hz_0db_48khz" "BENCH_EQFIR_PARAMS=loudness" "BENCH_GAIN_PARAMS=default" + "BENCH_IGO_NR_PARAMS=default" + "BENCH_RTNR_PARAMS=default" + "BENCH_SRC_PARAMS=default" + "BENCH_SRC_LITE_PARAMS=default" ) set(components_s32 diff --git a/tools/topology/topology2/development/tplg-targets.cmake b/tools/topology/topology2/development/tplg-targets.cmake index 69c12d795a96..687da7fce4fd 100644 --- a/tools/topology/topology2/development/tplg-targets.cmake +++ b/tools/topology/topology2/development/tplg-targets.cmake @@ -3,22 +3,21 @@ # Array of "input-file-name;output-file-name;comma separated pre-processor variables" set(TPLGS # CAVS SDW topology with passthrough pipelines -"cavs-sdw\;cavs-sdw\;DEEPBUFFER_FW_DMA_MS=100" +"cavs-sdw\;cavs-sdw\;" # CAVS SDW with SRC gain and mixer support "cavs-sdw-src-gain-mixin\;cavs-sdw-src-gain-mixin" # SDW + HDMI topology with passthrough pipelines -"cavs-sdw\;cavs-sdw-hdmi\;DEEPBUFFER_FW_DMA_MS=100" +"cavs-sdw\;cavs-sdw-hdmi\;" # CAVS SSP topology for TGL "cavs-nocodec\;sof-tgl-nocodec\;NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-nocodec.bin,DEEPBUFFER_FW_DMA_MS=100,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-nocodec.bin,\ SSP0_MIXER_2LEVEL=1,PLATFORM=tgl" "cavs-nocodec\;sof-adl-nocodec\;NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-adl-nocodec.bin,DEEPBUFFER_FW_DMA_MS=100,\ -PLATFORM=adl" +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-adl-nocodec.bin,PLATFORM=adl" # SDW topology for MTL "cavs-sdw\;mtl-sdw\;NUM_HDMIS=0" @@ -28,16 +27,13 @@ PLATFORM=adl" # SSP topology for MTL "cavs-nocodec\;sof-mtl-nocodec\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-nocodec.bin,DEEPBUFFER_FW_DMA_MS=100,\ -DEEPBUFFER_D0I3_COMPATIBLE=true" +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-nocodec.bin" "cavs-nocodec\;sof-mtl-nocodec-ssp0-ssp2\;PLATFORM=mtl,NUM_DMICS=2,SSP1_ENABLED=false,\ -PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-nocodec-ssp0-ssp2.bin,DEEPBUFFER_FW_DMA_MS=100,\ -DEEPBUFFER_D0I3_COMPATIBLE=true" +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-nocodec-ssp0-ssp2.bin" # SSP topology for LNL "cavs-nocodec\;sof-lnl-nocodec\;PLATFORM=lnl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-lnl-nocodec.bin,DEEPBUFFER_FW_DMA_MS=100,\ -DEEPBUFFER_D0I3_COMPATIBLE=true" +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-lnl-nocodec.bin" # SSP topology for LNL FPGA with lower DMIC IO clock of 19.2MHz, 2ch PDM1 enabled "cavs-nocodec\;sof-lnl-nocodec-fpga-2ch-pdm1\;PLATFORM=lnl,NUM_DMICS=2,PDM1_MIC_A_ENABLE=1,\ @@ -56,38 +52,37 @@ NHLT_BIN=nhlt-sof-lnl-nocodec-fpga-4ch.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000 "cavs-sdw\;sof-lnl-fpga-rt711-l0\;PLATFORM=lnl,NUM_HDMIS=0,PASSTHROUGH=true" # 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,\ +"sof-hda-generic\;sof-hda-efx-generic\;HDA_CONFIG=efx,\ EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,EFX_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_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ EFX_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,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-efx-generic-4ch.bin,\ +EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ EFX_DRC_PARAMS=passthrough" -"sof-hda-generic\;sof-hda-efx-mbdrc-generic\;\ -HDA_CONFIG=efx,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,\ +"sof-hda-generic\;sof-hda-efx-mbdrc-generic\;HDA_CONFIG=efx,\ EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ EFX_DRC_COMPONENT=multiband,EFX_MBDRC_PARAMS=passthrough" "sof-hda-generic\;sof-hda-efx-mbdrc-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_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ EFX_DRC_COMPONENT=multiband,EFX_MBDRC_PARAMS=passthrough" "sof-hda-generic\;sof-hda-efx-mbdrc-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,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-efx-generic-4ch.bin,\ +EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,\ EFX_DRC_COMPONENT=multiband,EFX_MBDRC_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" +"sof-hda-generic\;sof-hda-src-generic\;HDA_CONFIG=src" # BT offload for tgl "cavs-nocodec-bt\;sof-nocodec-bt-tgl\;PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-nocodec-bt-tgl.bin,\ @@ -105,9 +100,12 @@ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-nocodec-bt-mtl-lbm.bin" # CAVS HDA topology for benchmarking performance # Copier - peak volume - mixin - mixout - aria - peak volume - mixin - mixout - copier -"sof-hda-generic\;sof-hda-benchmark-generic-tgl\;PLATFORM=TGL,HDA_CONFIG=benchmark,USE_CHAIN_DMA=true,BENCH_CONFIG=benchmark" -"sof-hda-generic\;sof-hda-benchmark-generic-mtl\;PLATFORM=MTL,HDA_CONFIG=benchmark,USE_CHAIN_DMA=true,BENCH_CONFIG=benchmark" -"sof-hda-generic\;sof-hda-benchmark-generic-lnl\;PLATFORM=LNL,HDA_CONFIG=benchmark,USE_CHAIN_DMA=true,BENCH_CONFIG=benchmark" +"sof-hda-generic\;sof-hda-benchmark-generic-tgl\;PLATFORM=TGL,HDA_CONFIG=benchmark,\ +BENCH_CONFIG=benchmark" +"sof-hda-generic\;sof-hda-benchmark-generic-mtl\;PLATFORM=MTL,HDA_CONFIG=benchmark,\ +BENCH_CONFIG=benchmark" +"sof-hda-generic\;sof-hda-benchmark-generic-lnl\;PLATFORM=LNL,HDA_CONFIG=benchmark,\ +BENCH_CONFIG=benchmark" # Topology to test IPC4 Crossover "development/cavs-nocodec-crossover\;sof-tgl-nocodec-crossover-2way\;PLATFORM=tgl,\ diff --git a/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf b/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf deleted file mode 100644 index f688576394ac..000000000000 --- a/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf +++ /dev/null @@ -1,10 +0,0 @@ - # Created initially with script "./bench_comp_generate.sh drc" - # may need edits to modify controls - Object.Control.bytes."1" { - name '$ANALOG_CAPTURE_PCM DRC bytes' - IncludeByKey.BENCH_DRC_PARAMS { - "default" "include/components/drc/default.conf" - "enabled" "include/components/drc/enabled.conf" - "passthrough" "include/components/drc/passthrough.conf" - } - } diff --git a/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf b/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf deleted file mode 100644 index ce7438e91410..000000000000 --- a/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf +++ /dev/null @@ -1,10 +0,0 @@ - # Created initially with script "./bench_comp_generate.sh drc" - # may need edits to modify controls - Object.Control.bytes."1" { - name '$ANALOG_PLAYBACK_PCM DRC bytes' - IncludeByKey.BENCH_DRC_PARAMS { - "default" "include/components/drc/default.conf" - "enabled" "include/components/drc/enabled.conf" - "passthrough" "include/components/drc/passthrough.conf" - } - } diff --git a/tools/topology/topology2/include/bench/drc_controls_capture.conf b/tools/topology/topology2/include/bench/drc_controls_capture.conf new file mode 100644 index 000000000000..c586f940b578 --- /dev/null +++ b/tools/topology/topology2/include/bench/drc_controls_capture.conf @@ -0,0 +1,19 @@ + # Created initially with script "./bench_comp_generate.sh drc" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in DRC + bytes."1" { + name '$ANALOG_CAPTURE_PCM DRC bytes' + IncludeByKey.BENCH_DRC_PARAMS { + "default" "include/components/drc/default.conf" + "enabled" "include/components/drc/enabled.conf" + "passthrough" "include/components/drc/passthrough.conf" + } + } + mixer."1" { + name '$ANALOG_CAPTURE_PCM DRC switch' + } + #enum."1" { + # name '$ANALOG_CAPTURE_PCM DRC enum' + #} + } diff --git a/tools/topology/topology2/include/bench/drc_controls_playback.conf b/tools/topology/topology2/include/bench/drc_controls_playback.conf new file mode 100644 index 000000000000..36217ab08965 --- /dev/null +++ b/tools/topology/topology2/include/bench/drc_controls_playback.conf @@ -0,0 +1,19 @@ + # Created initially with script "./bench_comp_generate.sh drc" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in DRC + bytes."1" { + name '$ANALOG_PLAYBACK_PCM DRC bytes' + IncludeByKey.BENCH_DRC_PARAMS { + "default" "include/components/drc/default.conf" + "enabled" "include/components/drc/enabled.conf" + "passthrough" "include/components/drc/passthrough.conf" + } + } + mixer."1" { + name '$ANALOG_PLAYBACK_PCM DRC switch' + } + #enum."1" { + # name '$ANALOG_PLAYBACK_PCM DRC enum' + #} + } diff --git a/tools/topology/topology2/include/bench/drc_s16.conf b/tools/topology/topology2/include/bench/drc_s16.conf index 7d02416c1eac..a91888928d25 100644 --- a/tools/topology/topology2/include/bench/drc_s16.conf +++ b/tools/topology/topology2/include/bench/drc_s16.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/drc_s24.conf b/tools/topology/topology2/include/bench/drc_s24.conf index c0d9689a7908..4eb39eef9ad6 100644 --- a/tools/topology/topology2/include/bench/drc_s24.conf +++ b/tools/topology/topology2/include/bench/drc_s24.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/drc_s32.conf b/tools/topology/topology2/include/bench/drc_s32.conf index 0ca828c30ec4..beda0c0b210e 100644 --- a/tools/topology/topology2/include/bench/drc_s32.conf +++ b/tools/topology/topology2/include/bench/drc_s32.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s16.conf b/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s16.conf new file mode 100644 index 000000000000..0cb65c2e21c9 --- /dev/null +++ b/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s16.conf @@ -0,0 +1,84 @@ + Object.Pipeline { + host-gateway-playback [ + { + index 1 + + Object.Widget.host-copier.1 { + stream_name $ANALOG_PLAYBACK_PCM + pcm_id 0 + + } + } + ] + + io-gateway [ + { + index 2 + direction playback + + Object.Widget.dai-copier.1 { + node_type $HDA_LINK_OUTPUT_CLASS + stream_name $HDA_ANALOG_DAI_NAME + dai_type "HDA" + copier_type "HDA" + num_input_pins 1 + num_input_audio_formats 1 + num_output_audio_formats 1 + Object.Base.input_audio_format [ + { + in_bit_depth 16 + in_valid_bit_depth 16 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } + ] + + host-gateway-capture [ + { + index 3 + Object.Widget.host-copier.1 { + stream_name $ANALOG_CAPTURE_PCM + pcm_id 0 + + } + } + ] + + io-gateway-capture [ + { + index 4 + direction capture + + Object.Widget.dai-copier."1" { + dai_type "HDA" + type "dai_out" + copier_type "HDA" + stream_name $HDA_ANALOG_DAI_NAME + node_type $HDA_LINK_INPUT_CLASS + num_output_pins 1 + num_input_audio_formats 1 + num_output_audio_formats 1 + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 16 + out_valid_bit_depth 16 + } + ] + } + } + ] + } + diff --git a/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s24.conf b/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s24.conf new file mode 100644 index 000000000000..8da4d8410273 --- /dev/null +++ b/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s24.conf @@ -0,0 +1,84 @@ + Object.Pipeline { + host-gateway-playback [ + { + index 1 + + Object.Widget.host-copier.1 { + stream_name $ANALOG_PLAYBACK_PCM + pcm_id 0 + + } + } + ] + + io-gateway [ + { + index 2 + direction playback + + Object.Widget.dai-copier.1 { + node_type $HDA_LINK_OUTPUT_CLASS + stream_name $HDA_ANALOG_DAI_NAME + dai_type "HDA" + copier_type "HDA" + num_input_pins 1 + num_input_audio_formats 1 + num_output_audio_formats 1 + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 24 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] + } + } + ] + + host-gateway-capture [ + { + index 3 + Object.Widget.host-copier.1 { + stream_name $ANALOG_CAPTURE_PCM + pcm_id 0 + + } + } + ] + + io-gateway-capture [ + { + index 4 + direction capture + + Object.Widget.dai-copier."1" { + dai_type "HDA" + type "dai_out" + copier_type "HDA" + stream_name $HDA_ANALOG_DAI_NAME + node_type $HDA_LINK_INPUT_CLASS + num_output_pins 1 + num_input_audio_formats 1 + num_output_audio_formats 1 + 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 24 + } + ] + } + } + ] + } + diff --git a/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s32.conf b/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s32.conf new file mode 100644 index 000000000000..d82273e2a803 --- /dev/null +++ b/tools/topology/topology2/include/bench/host_io_gateway_pipelines_src_s32.conf @@ -0,0 +1,84 @@ + Object.Pipeline { + host-gateway-playback [ + { + index 1 + + Object.Widget.host-copier.1 { + stream_name $ANALOG_PLAYBACK_PCM + pcm_id 0 + + } + } + ] + + io-gateway [ + { + index 2 + direction playback + + Object.Widget.dai-copier.1 { + node_type $HDA_LINK_OUTPUT_CLASS + stream_name $HDA_ANALOG_DAI_NAME + dai_type "HDA" + copier_type "HDA" + num_input_pins 1 + num_input_audio_formats 1 + num_output_audio_formats 1 + 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 + } + ] + } + } + ] + + host-gateway-capture [ + { + index 3 + Object.Widget.host-copier.1 { + stream_name $ANALOG_CAPTURE_PCM + pcm_id 0 + + } + } + ] + + io-gateway-capture [ + { + index 4 + direction capture + + Object.Widget.dai-copier."1" { + dai_type "HDA" + type "dai_out" + copier_type "HDA" + stream_name $HDA_ANALOG_DAI_NAME + node_type $HDA_LINK_INPUT_CLASS + num_output_pins 1 + num_input_audio_formats 1 + num_output_audio_formats 1 + 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/include/bench/igo_nr_controls_capture.conf b/tools/topology/topology2/include/bench/igo_nr_controls_capture.conf new file mode 100644 index 000000000000..a2006c17a9d7 --- /dev/null +++ b/tools/topology/topology2/include/bench/igo_nr_controls_capture.conf @@ -0,0 +1,43 @@ + # Created initially with script "./bench_comp_generate.sh igo_nr" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in IGO_NR + bytes."1" { + name '$ANALOG_CAPTURE_PCM IGO_NR bytes' + Object.Base.data.1 { + # Data is ipc4 header modified copy from + # tools/topology/topology1/sof/pipe-igonr-capture.m4 + bytes "0x53,0x4f,0x46,0x34, + 0x00,0x00,0x00,0x00, + 0x44,0x00,0x00,0x00, + 0x00,0x00,0x00,0x03, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x3d,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x20,0x00,0x00, + 0x34,0x03,0x00,0x00, + 0x00,0x00,0x00,0x00" + } + } + mixer."1" { + name '$ANALOG_CAPTURE_PCM IGO_NR enable' + } + #enum."1" { + # name '$ANALOG_CAPTURE_PCM IGO_NR enum' + #} + } diff --git a/tools/topology/topology2/include/bench/igo_nr_controls_playback.conf b/tools/topology/topology2/include/bench/igo_nr_controls_playback.conf new file mode 100644 index 000000000000..184593f8e5df --- /dev/null +++ b/tools/topology/topology2/include/bench/igo_nr_controls_playback.conf @@ -0,0 +1,43 @@ + # Created initially with script "./bench_comp_generate.sh igo_nr" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in IGO_NR + bytes."1" { + name '$ANALOG_PLAYBACK_PCM IGO_NR bytes' + Object.Base.data.1 { + # Data is ipc4 header modified copy from + # tools/topology/topology1/sof/pipe-igonr-capture.m4 + bytes "0x53,0x4f,0x46,0x34, + 0x00,0x00,0x00,0x00, + 0x44,0x00,0x00,0x00, + 0x00,0x00,0x00,0x03, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00, + 0x3d,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + 0x00,0x20,0x00,0x00, + 0x34,0x03,0x00,0x00, + 0x00,0x00,0x00,0x00" + } + } + mixer."1" { + name '$ANALOG_PLAYBACK_PCM IGO_NR enable' + } + #enum."1" { + # name '$ANALOG_PLAYBACK_PCM IGO_NR enum' + #} + } diff --git a/tools/topology/topology2/include/bench/igo_nr_hda_route.conf b/tools/topology/topology2/include/bench/igo_nr_hda_route.conf new file mode 100644 index 000000000000..a5d08cf3229f --- /dev/null +++ b/tools/topology/topology2/include/bench/igo_nr_hda_route.conf @@ -0,0 +1,19 @@ + # Created with script "./bench_comp_generate.sh igo_nr" + Object.Base.route [ + { + sink 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.playback' + source 'igo_nr.1.1' + } + { + sink 'igo_nr.1.1' + source 'host-copier.0.playback' + } + { + source 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.capture' + sink 'igo_nr.3.2' + } + { + source 'igo_nr.3.2' + sink 'host-copier.0.capture' + } + ] diff --git a/tools/topology/topology2/include/bench/igo_nr_s16.conf b/tools/topology/topology2/include/bench/igo_nr_s16.conf new file mode 100644 index 000000000000..944b905409ec --- /dev/null +++ b/tools/topology/topology2/include/bench/igo_nr_s16.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh igo_nr" + Object.Widget.igo_nr.1 { + index 1 + + + } + Object.Widget.igo_nr.2 { + index 3 + + + } + + diff --git a/tools/topology/topology2/include/bench/igo_nr_s24.conf b/tools/topology/topology2/include/bench/igo_nr_s24.conf new file mode 100644 index 000000000000..40963c48b5eb --- /dev/null +++ b/tools/topology/topology2/include/bench/igo_nr_s24.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh igo_nr" + Object.Widget.igo_nr.1 { + index 1 + + + } + Object.Widget.igo_nr.2 { + index 3 + + + } + + diff --git a/tools/topology/topology2/include/bench/igo_nr_s32.conf b/tools/topology/topology2/include/bench/igo_nr_s32.conf new file mode 100644 index 000000000000..ff81fe8e5ed8 --- /dev/null +++ b/tools/topology/topology2/include/bench/igo_nr_s32.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh igo_nr" + Object.Widget.igo_nr.1 { + index 1 + + + } + Object.Widget.igo_nr.2 { + index 3 + + + } + + diff --git a/tools/topology/topology2/include/bench/rtnr_controls_capture.conf b/tools/topology/topology2/include/bench/rtnr_controls_capture.conf new file mode 100644 index 000000000000..122f73674bc7 --- /dev/null +++ b/tools/topology/topology2/include/bench/rtnr_controls_capture.conf @@ -0,0 +1,23 @@ + # Created initially with script "./bench_comp_generate.sh rtnr" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in RTNR + bytes."1" { + name '$ANALOG_CAPTURE_PCM RTNR bytes' + IncludeByKey.BENCH_RTNR_PARAMS { + "default" "include/components/rtnr/default_bytes.conf" + } + } + bytes."2" { + name '$ANALOG_CAPTURE_PCM RTNR data' + IncludeByKey.BENCH_RTNR_PARAMS { + "default" "include/components/rtnr/default_data.conf" + } + } + mixer."1" { + name '$ANALOG_CAPTURE_PCM RTNR enable' + } + #enum."1" { + # name '$ANALOG_CAPTURE_PCM RTNR enum' + #} + } diff --git a/tools/topology/topology2/include/bench/rtnr_controls_playback.conf b/tools/topology/topology2/include/bench/rtnr_controls_playback.conf new file mode 100644 index 000000000000..21280af41cea --- /dev/null +++ b/tools/topology/topology2/include/bench/rtnr_controls_playback.conf @@ -0,0 +1,23 @@ + # Created initially with script "./bench_comp_generate.sh rtnr" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in RTNR + bytes."1" { + name '$ANALOG_PLAYBACK_PCM RTNR bytes' + IncludeByKey.BENCH_RTNR_PARAMS { + "default" "include/components/rtnr/default_bytes.conf" + } + } + bytes."2" { + name '$ANALOG_PLAYBACK_PCM RTNR data' + IncludeByKey.BENCH_RTNR_PARAMS { + "default" "include/components/rtnr/default_data.conf" + } + } + mixer."1" { + name '$ANALOG_PLAYBACK_PCM RTNR enable' + } + #enum."1" { + # name '$ANALOG_PLAYBACK_PCM RTNR enum' + #} + } diff --git a/tools/topology/topology2/include/bench/rtnr_hda_route.conf b/tools/topology/topology2/include/bench/rtnr_hda_route.conf new file mode 100644 index 000000000000..71f6de968f1b --- /dev/null +++ b/tools/topology/topology2/include/bench/rtnr_hda_route.conf @@ -0,0 +1,19 @@ + # Created with script "./bench_comp_generate.sh rtnr" + Object.Base.route [ + { + sink 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.playback' + source 'rtnr.1.1' + } + { + sink 'rtnr.1.1' + source 'host-copier.0.playback' + } + { + source 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.capture' + sink 'rtnr.3.2' + } + { + source 'rtnr.3.2' + sink 'host-copier.0.capture' + } + ] diff --git a/tools/topology/topology2/include/bench/rtnr_s16.conf b/tools/topology/topology2/include/bench/rtnr_s16.conf new file mode 100644 index 000000000000..94dd01873a18 --- /dev/null +++ b/tools/topology/topology2/include/bench/rtnr_s16.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh rtnr" + Object.Widget.rtnr.1 { + index 1 + + + } + Object.Widget.rtnr.2 { + index 3 + + + } + + diff --git a/tools/topology/topology2/include/bench/rtnr_s24.conf b/tools/topology/topology2/include/bench/rtnr_s24.conf new file mode 100644 index 000000000000..1a1475ee02a1 --- /dev/null +++ b/tools/topology/topology2/include/bench/rtnr_s24.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh rtnr" + Object.Widget.rtnr.1 { + index 1 + + + } + Object.Widget.rtnr.2 { + index 3 + + + } + + diff --git a/tools/topology/topology2/include/bench/rtnr_s32.conf b/tools/topology/topology2/include/bench/rtnr_s32.conf new file mode 100644 index 000000000000..b03d77b80b4a --- /dev/null +++ b/tools/topology/topology2/include/bench/rtnr_s32.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh rtnr" + Object.Widget.rtnr.1 { + index 1 + + + } + Object.Widget.rtnr.2 { + index 3 + + + } + + diff --git a/tools/topology/topology2/include/bench/src_hda_route.conf b/tools/topology/topology2/include/bench/src_hda_route.conf new file mode 100644 index 000000000000..1c72c0f0601e --- /dev/null +++ b/tools/topology/topology2/include/bench/src_hda_route.conf @@ -0,0 +1,19 @@ + # Created with script "./bench_comp_generate.sh src" + Object.Base.route [ + { + sink 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.playback' + source 'src.1.1' + } + { + sink 'src.1.1' + source 'host-copier.0.playback' + } + { + source 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.capture' + sink 'src.3.2' + } + { + source 'src.3.2' + sink 'host-copier.0.capture' + } + ] diff --git a/tools/topology/topology2/include/bench/src_lite_hda_route.conf b/tools/topology/topology2/include/bench/src_lite_hda_route.conf new file mode 100644 index 000000000000..3e3f03b02aa2 --- /dev/null +++ b/tools/topology/topology2/include/bench/src_lite_hda_route.conf @@ -0,0 +1,19 @@ + # Created with script "./bench_comp_generate.sh src_lite" + Object.Base.route [ + { + sink 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.playback' + source 'src_lite.1.1' + } + { + sink 'src_lite.1.1' + source 'host-copier.0.playback' + } + { + source 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.capture' + sink 'src_lite.3.2' + } + { + source 'src_lite.3.2' + sink 'host-copier.0.capture' + } + ] diff --git a/tools/topology/topology2/include/bench/src_lite_s16.conf b/tools/topology/topology2/include/bench/src_lite_s16.conf new file mode 100644 index 000000000000..fdf803739ec4 --- /dev/null +++ b/tools/topology/topology2/include/bench/src_lite_s16.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh src_lite" + Object.Widget.src_lite.1 { + index 1 + rate_out 48000 + + } + Object.Widget.src_lite.2 { + index 3 + rate_in 48000 + + } + + diff --git a/tools/topology/topology2/include/bench/src_lite_s24.conf b/tools/topology/topology2/include/bench/src_lite_s24.conf new file mode 100644 index 000000000000..eab349d84739 --- /dev/null +++ b/tools/topology/topology2/include/bench/src_lite_s24.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh src_lite" + Object.Widget.src_lite.1 { + index 1 + rate_out 48000 + + } + Object.Widget.src_lite.2 { + index 3 + rate_in 48000 + + } + + diff --git a/tools/topology/topology2/include/bench/src_lite_s32.conf b/tools/topology/topology2/include/bench/src_lite_s32.conf new file mode 100644 index 000000000000..33406cc0e45d --- /dev/null +++ b/tools/topology/topology2/include/bench/src_lite_s32.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh src_lite" + Object.Widget.src_lite.1 { + index 1 + rate_out 48000 + + } + Object.Widget.src_lite.2 { + index 3 + rate_in 48000 + + } + + diff --git a/tools/topology/topology2/include/bench/src_s16.conf b/tools/topology/topology2/include/bench/src_s16.conf new file mode 100644 index 000000000000..7c8568c88f3c --- /dev/null +++ b/tools/topology/topology2/include/bench/src_s16.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh src" + Object.Widget.src.1 { + index 1 + rate_out 48000 + + } + Object.Widget.src.2 { + index 3 + rate_in 48000 + + } + + diff --git a/tools/topology/topology2/include/bench/src_s24.conf b/tools/topology/topology2/include/bench/src_s24.conf new file mode 100644 index 000000000000..e16d2047aa49 --- /dev/null +++ b/tools/topology/topology2/include/bench/src_s24.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh src" + Object.Widget.src.1 { + index 1 + rate_out 48000 + + } + Object.Widget.src.2 { + index 3 + rate_in 48000 + + } + + diff --git a/tools/topology/topology2/include/bench/src_s32.conf b/tools/topology/topology2/include/bench/src_s32.conf new file mode 100644 index 000000000000..3f2fa413d2bb --- /dev/null +++ b/tools/topology/topology2/include/bench/src_s32.conf @@ -0,0 +1,13 @@ + # Created with script "./bench_comp_generate.sh src" + Object.Widget.src.1 { + index 1 + rate_out 48000 + + } + Object.Widget.src.2 { + index 3 + rate_in 48000 + + } + + diff --git a/tools/topology/topology2/include/components/asrc.conf b/tools/topology/topology2/include/components/asrc.conf index 5737186ca67b..31f592571bb4 100644 --- a/tools/topology/topology2/include/components/asrc.conf +++ b/tools/topology/topology2/include/components/asrc.conf @@ -94,6 +94,6 @@ Class.Widget."asrc" { # Default attributes for asrc # type "asrc" - uuid "f6:72:ec:c8:26:85:af:4f:9d:39:a2:3d:0b:54:1d:e2" + uuid "2d:40:b4:66:68:b4:f2:42:81:a7:b3:71:21:86:3d:d4" no_pm "true" } diff --git a/tools/topology/topology2/include/components/drc.conf b/tools/topology/topology2/include/components/drc.conf index 055074d3d132..2db857f421a4 100644 --- a/tools/topology/topology2/include/components/drc.conf +++ b/tools/topology/topology2/include/components/drc.conf @@ -53,6 +53,26 @@ Class.Widget."drc" { unique "instance" } + # + # drc widget switch control + # + Object.Control { + mixer."1" { + Object.Base.channel.1 { + name "fc" + shift 0 + } + Object.Base.ops.1 { + name "ctl" + info "volsw" + #259 binds the mixer control to switch get/put handlers + get 259 + put 259 + } + max 1 + } + } + # # Default attributes for drc # diff --git a/tools/topology/topology2/include/components/drc/enabled.conf b/tools/topology/topology2/include/components/drc/enabled.conf index f6487054da20..30dd92bbd626 100644 --- a/tools/topology/topology2/include/components/drc/enabled.conf +++ b/tools/topology/topology2/include/components/drc/enabled.conf @@ -1,4 +1,5 @@ -# Exported Control Bytes 17-May-2023 +# Exported with script example_drc.m 18-Dec-2023 +# cd tools/tune/drc; octave --no-window-system example_drc.m Object.Base.data."drc_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/drc/generic_notebook_speaker.conf b/tools/topology/topology2/include/components/drc/generic_notebook_speaker.conf new file mode 100644 index 000000000000..2730f659a3f9 --- /dev/null +++ b/tools/topology/topology2/include/components/drc/generic_notebook_speaker.conf @@ -0,0 +1,23 @@ +# Exported with script example_drc.m 18-Dec-2023 +# cd tools/tune/drc; octave --no-window-system example_drc.m +Object.Base.data."drc_config" { + bytes " + 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, + 0x6c,0x00,0x00,0x00,0x00,0xa0,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0x0f, + 0x00,0x00,0x00,0x0a,0xd3,0x4d,0x62,0x00, + 0x0c,0x57,0x99,0x03,0x66,0x66,0x66,0x06, + 0x5c,0xea,0xc1,0x00,0xbf,0x84,0x23,0x00, + 0x03,0x3e,0xd6,0xff,0x4e,0xf4,0x50,0x00, + 0xb6,0xa0,0xb5,0x09,0x4c,0x10,0x61,0x04, + 0x1c,0xc7,0x71,0x00,0x77,0x77,0x77,0xff, + 0xd8,0x77,0x1f,0x00,0x05,0x00,0x00,0x00, + 0x00,0x80,0x43,0x00,0xd7,0x7d,0x04,0x00, + 0xa0,0xce,0x25,0x00,0xd7,0x7d,0x09,0x00, + 0xb1,0xb5,0x00,0x00" +} diff --git a/tools/topology/topology2/include/components/drc/passthrough.conf b/tools/topology/topology2/include/components/drc/passthrough.conf index 56aebf0eed5c..14a00abb84cf 100644 --- a/tools/topology/topology2/include/components/drc/passthrough.conf +++ b/tools/topology/topology2/include/components/drc/passthrough.conf @@ -1,4 +1,5 @@ -# Exported Control Bytes 17-May-2023 +# Exported with script example_drc.m 18-Dec-2023 +# cd tools/tune/drc; octave --no-window-system example_drc.m Object.Base.data."drc_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/igo_nr.conf b/tools/topology/topology2/include/components/igo_nr.conf new file mode 100644 index 000000000000..cd85ccb2a3d8 --- /dev/null +++ b/tools/topology/topology2/include/components/igo_nr.conf @@ -0,0 +1,100 @@ +# +# +# This widget class definition is for the Intelligo Noise Reduction +# component. It is a proprietary processing component by Intelligo +# Technology, Inc. Please find the LICENCE from the component source +# directory. The stub version of the library can be freely used to test +# basic functionality of the library with pass-through processing. +# +# All attributes defined herein are namespaced +# by alsatplg to "Object.Widget.igo_nr.attribute_name" +# +# Usage: this component can be used by declaring in the parent object. i.e. +# +# Object.Widget.igo_nr."N" { +# index 1 +# } +# } + +# +# Where M is pipeline ID and N is a unique integer in the parent object. + + + +Class.Widget."igo_nr" { + # + # Pipeline ID + # + DefineAttribute."index" { + type "integer" + } + + # + # Unique instance for IGO_NR 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" + } + + # + # IGO_NR widget switch control + # + Object.Control { + # Switch controls + mixer."1" { + Object.Base.channel.1 { + name "fl" + shift 0 + } + Object.Base.channel.2 { + name "fr" + } + # Operation volsw is used for single or double mixer + # control. See section control operations in + # https://www.alsa-project.org/alsa-doc/alsa-lib/group__topology.html + Object.Base.ops.1 { + name "ctl" + info "volsw" + #259 binds the mixer control to switch get/put handlers + get 259 + put 259 + } + max 1 + } + } + + # + # Default attributes for igo_nr + # + # 696ae2bc-2877-11eb-adc1-0242ac120002 + uuid "bc:e2:6a:69:77:28:eb:11:ad:c1:02:42:ac:12:00:02" + type "effect" + no_pm "true" + num_input_pins 1 + num_output_pins 1 +} diff --git a/tools/topology/topology2/include/components/rtnr.conf b/tools/topology/topology2/include/components/rtnr.conf new file mode 100644 index 000000000000..995870995d61 --- /dev/null +++ b/tools/topology/topology2/include/components/rtnr.conf @@ -0,0 +1,86 @@ +# +# +# A generic RTNR component. All attributes defined herein are namespaced +# by alsatplg to "Object.Widget.rtnr.attribute_name" +# +# Usage: this component can be used by declaring in the parent object. i.e. +# +# Object.Widget.rtnr."N" { +# index 1 +# } +# } + +# +# Where M is pipeline ID and N is a unique integer in the parent object. + + + +Class.Widget."rtnr" { + # + # Pipeline ID + # + DefineAttribute."index" { + type "integer" + } + + # + # Unique instance for RTNR 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" + } + + + # RTNR widget switch control + Object.Control { + mixer."1" { + Object.Base.channel.1 { + name "fc" + shift 0 + } + Object.Base.ops.1 { + name "ctl" + info "volsw" + #259 binds the mixer control to switch get/put handlers + get 259 + put 259 + } + max 1 + } + } + + # + # Default attributes for rtnr + # + # 5c7ca334-e15d-11eb-ba80-0242ac130004 + uuid "34:a3:7c:5c:5d:e1:eb:11:ba:80:02:42:ac:13:00:04" + type "effect" + no_pm "true" + num_input_pins 1 + num_output_pins 1 +} diff --git a/tools/topology/topology2/include/components/rtnr/default_bytes.conf b/tools/topology/topology2/include/components/rtnr/default_bytes.conf new file mode 100644 index 000000000000..a9a83bd9c2ad --- /dev/null +++ b/tools/topology/topology2/include/components/rtnr/default_bytes.conf @@ -0,0 +1,13 @@ +# Copied and modified for IPC4 from RTNR bytes in +# tools/topology/topology1/sof/pipe-rtnr-google-rtc-audio-processing-capture.m4 +# param_id = 0 for SOF_RTNR_CONFIG +Object.Base.data."rtnr_bytes_config" { + bytes "0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x00,0x30,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x80,0xbb,0x00,0x00,0x00,0x00,0x00,0x00" +} diff --git a/tools/topology/topology2/include/components/rtnr/default_data.conf b/tools/topology/topology2/include/components/rtnr/default_data.conf new file mode 100644 index 000000000000..86b601c37971 --- /dev/null +++ b/tools/topology/topology2/include/components/rtnr/default_data.conf @@ -0,0 +1,9 @@ +# Copied and modified for IPC4 from RTNR data in +# tools/topology/topology1/sof/pipe-rtnr-google-rtc-audio-processing-capture.m4 +# param_id = 1 for SOF_RTNR_DATA +Object.Base.data."rtnr_data_config" { + bytes "0x53,0x4f,0x46,0x34,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x30,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00" +} diff --git a/tools/topology/topology2/include/components/src_format_s16_convert_from_48k.conf b/tools/topology/topology2/include/components/src_format_s16_convert_from_48k.conf new file mode 100644 index 000000000000..c0b3eb1823c0 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s16_convert_from_48k.conf @@ -0,0 +1,43 @@ +#src format array + num_output_audio_formats 14 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 12000 + 16000 + 24000 + 32000 + 48000 + 64000 + 96000 + 192000 + ] + out_bit_depth [ 16 ] + out_valid_bit_depth [ 16 ] + } + { + out_rate [ + 11025 + 22050 + 44100 + 88200 + 176400 + ] + out_bit_depth [ 16 ] + out_valid_bit_depth [ 16 ] + # actual buffer size in sof is obs * 2, so here simply set to its period size + obs "$[$out_channels * ($out_bit_depth / 8) * (($out_rate / 1000)) * ($period / 1000)]" + } + ] + + num_input_audio_formats 1 + + Object.Base.input_audio_format [ + { + in_rate 48000 + in_bit_depth 16 + in_valid_bit_depth 16 + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s16_convert_to_48k.conf b/tools/topology/topology2/include/components/src_format_s16_convert_to_48k.conf new file mode 100644 index 000000000000..7b51094462d5 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s16_convert_to_48k.conf @@ -0,0 +1,35 @@ +#src format array + num_input_audio_formats 14 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 16 ] + in_valid_bit_depth [ 16 ] + } + ] + + num_output_audio_formats 1 + + Object.Base.output_audio_format [ + { + out_rate 48000 + out_bit_depth 16 + out_valid_bit_depth 16 + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s16_passthrough.conf b/tools/topology/topology2/include/components/src_format_s16_passthrough.conf new file mode 100644 index 000000000000..1c35a9a80164 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s16_passthrough.conf @@ -0,0 +1,50 @@ +#src format array + num_input_audio_formats 14 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 16 ] + in_valid_bit_depth [ 16 ] + } + ] + + num_output_audio_formats 14 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 16 ] + out_valid_bit_depth [ 16 ] + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s16_to_sxx_convert.conf b/tools/topology/topology2/include/components/src_format_s16_to_sxx_convert.conf new file mode 100644 index 000000000000..8e94c11c65e2 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s16_to_sxx_convert.conf @@ -0,0 +1,73 @@ +#src format array + num_input_audio_formats 14 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 16 ] + in_valid_bit_depth [ 16 ] + } + ] + + num_output_audio_formats 42 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 16 ] + out_valid_bit_depth [ 16 ] + } + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 32 ] + out_valid_bit_depth [ + 24 + 32 + ] + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s24_convert_from_48k.conf b/tools/topology/topology2/include/components/src_format_s24_convert_from_48k.conf new file mode 100644 index 000000000000..45697da0db87 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s24_convert_from_48k.conf @@ -0,0 +1,43 @@ +#src format array + num_output_audio_formats 14 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 12000 + 16000 + 24000 + 32000 + 48000 + 64000 + 96000 + 192000 + ] + out_bit_depth [ 32 ] + out_valid_bit_depth [ 24 ] + } + { + out_rate [ + 11025 + 22050 + 44100 + 88200 + 176400 + ] + out_bit_depth [ 32 ] + out_valid_bit_depth [ 24 ] + # actual buffer size in sof is obs * 2, so here simply set to its period size + obs "$[$out_channels * ($out_bit_depth / 8) * (($out_rate / 1000)) * ($period / 1000)]" + } + ] + + num_input_audio_formats 1 + + Object.Base.input_audio_format [ + { + in_rate 48000 + in_bit_depth 32 + in_valid_bit_depth 24 + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s24_convert_to_48k.conf b/tools/topology/topology2/include/components/src_format_s24_convert_to_48k.conf new file mode 100644 index 000000000000..e4122a1ad78a --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s24_convert_to_48k.conf @@ -0,0 +1,35 @@ +#src format array + num_input_audio_formats 14 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 32 ] + in_valid_bit_depth [ 24 ] + } + ] + + num_output_audio_formats 1 + + Object.Base.output_audio_format [ + { + out_rate 48000 + out_bit_depth 32 + out_valid_bit_depth 24 + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s24_passthrough.conf b/tools/topology/topology2/include/components/src_format_s24_passthrough.conf new file mode 100644 index 000000000000..25870ea864f6 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s24_passthrough.conf @@ -0,0 +1,50 @@ +#src format array + num_input_audio_formats 14 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 32 ] + in_valid_bit_depth [ 24 ] + } + ] + + num_output_audio_formats 14 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 32 ] + out_valid_bit_depth [ 24 ] + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s24_to_sxx_convert.conf b/tools/topology/topology2/include/components/src_format_s24_to_sxx_convert.conf new file mode 100644 index 000000000000..cc94937f8b57 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_s24_to_sxx_convert.conf @@ -0,0 +1,73 @@ +#src format array + num_input_audio_formats 14 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 32 ] + in_valid_bit_depth [ 24 ] + } + ] + + num_output_audio_formats 42 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 16 ] + out_valid_bit_depth [ 16 ] + } + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 32 ] + out_valid_bit_depth [ + 24 + 32 + ] + } + ] diff --git a/tools/topology/topology2/include/components/src_format_s32_convert_from_48k.conf b/tools/topology/topology2/include/components/src_format_s32_convert_from_48k.conf index c1e450c776d1..5cd13dae1492 100644 --- a/tools/topology/topology2/include/components/src_format_s32_convert_from_48k.conf +++ b/tools/topology/topology2/include/components/src_format_s32_convert_from_48k.conf @@ -7,7 +7,6 @@ 8000 12000 16000 - 22050 24000 32000 48000 @@ -21,13 +20,15 @@ { out_rate [ 11025 + 22050 44100 88200 176400 ] out_bit_depth [ 32 ] out_valid_bit_depth [ 32 ] - obs "$[($out_channels * (($[($out_rate + 999)] / 1000) + 4)) * ($out_bit_depth / 8)]" + # actual buffer size in sof is obs * 2, so here simply set to its period size + obs "$[$out_channels * ($out_bit_depth / 8) * (($out_rate / 1000)) * ($period / 1000)]" } ] diff --git a/tools/topology/topology2/include/components/src_format_sxx_to_s16_convert.conf b/tools/topology/topology2/include/components/src_format_sxx_to_s16_convert.conf new file mode 100644 index 000000000000..22ae30485f95 --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_sxx_to_s16_convert.conf @@ -0,0 +1,73 @@ +#src format array + num_input_audio_formats 42 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 16 ] + in_valid_bit_depth [ 16 ] + } + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 32 ] + in_valid_bit_depth [ + 24 + 32 + ] + } + ] + + num_output_audio_formats 14 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 16 ] + out_valid_bit_depth [ 16 ] + } + ] diff --git a/tools/topology/topology2/include/components/src_format_sxx_to_s24_convert.conf b/tools/topology/topology2/include/components/src_format_sxx_to_s24_convert.conf new file mode 100644 index 000000000000..38c65d43b26b --- /dev/null +++ b/tools/topology/topology2/include/components/src_format_sxx_to_s24_convert.conf @@ -0,0 +1,73 @@ +#src format array + num_input_audio_formats 42 + + CombineArrays.Object.Base.input_audio_format [ + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 16 ] + in_valid_bit_depth [ 16 ] + } + { + in_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + in_bit_depth [ 32 ] + in_valid_bit_depth [ + 24 + 32 + ] + } + ] + + num_output_audio_formats 14 + + CombineArrays.Object.Base.output_audio_format [ + { + out_rate [ + 8000 + 11025 + 12000 + 16000 + 22050 + 24000 + 32000 + 44100 + 48000 + 64000 + 88200 + 96000 + 176400 + 192000 + ] + out_bit_depth [ 32 ] + out_valid_bit_depth [ 24 ] + } + ] diff --git a/tools/topology/topology2/include/components/src_lite.conf b/tools/topology/topology2/include/components/src_lite.conf new file mode 100644 index 000000000000..264e28683d7c --- /dev/null +++ b/tools/topology/topology2/include/components/src_lite.conf @@ -0,0 +1,89 @@ +# +# +# A generic src_lite component. All attributes defined herein are namespaced +# by alsatplg to "Object.Widget.src_lite.N.attribute_name" +# +# Usage: this component can be used by instantiating it in the parent object. i.e. +# +# Object.Widget.src_lite."N" { +# format "s24le" +# rate_out 48000 +# } +# +# Where N is the unique instance number for the src_lite widget within the same alsaconf node. + +Class.Widget."src_lite" { + # + # Pipeline ID for the src_lite widget object + # + DefineAttribute."index" {} + + # + # src_lite object instance + # + DefineAttribute."instance" {} + + #include common component definition + + + # + # Bespoke attributes for src_lite + # + + # Source sample rate + DefineAttribute."rate_in" { + # Token set reference name and type + token_ref "src.word" + + } + + # Target sample rate + DefineAttribute."rate_out" { + # Token set reference name and type + token_ref "src.word" + } + + attributes { + # + # The src_lite widget name would be constructed using the index and instance attributes. + # For ex: "src_lite.1.1" or "src_lite.10.2" etc. + # + !constructor [ + "index" + "instance" + ] + + !mandatory [ + "num_input_audio_formats" + "num_output_audio_formats" + "num_input_pins" + "num_output_pins" + ] + + # + # immutable attributes cannot be modified in the object instance + # + !immutable [ + "uuid" + "type" + ] + + # + # deprecated attributes should not be added in the object instance + # + !deprecated [ + "preload_count" + ] + + unique "instance" + } + + # + # Default attributes for src_lite + # + type "src" + uuid "51:10:44:33:cd:44:6a:46:83:a3:17:84:78:70:8a:ea" + no_pm "true" + num_input_pins 1 + num_output_pins 1 +} diff --git a/tools/topology/topology2/include/pipelines/cavs/dai-copier-be.conf b/tools/topology/topology2/include/pipelines/cavs/dai-copier-be.conf index 4a597637ce50..fb0440ed78fb 100644 --- a/tools/topology/topology2/include/pipelines/cavs/dai-copier-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/dai-copier-be.conf @@ -9,8 +9,6 @@ # Object.Pipeline.dai-copier-be."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -103,10 +101,4 @@ Class.Pipeline."dai-copier-be" { time_domain "timer" dynamic_pipeline 1 - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 4869a6bb3bd7..85fa53c9c02a 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 @@ -9,8 +9,6 @@ # Object.Pipeline.dai-copier-eqiir-module-copier-capture."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -169,10 +167,4 @@ Class.Pipeline."dai-copier-eqiir-module-copier-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 4 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 9e8d4c8b0f8a..4529d2b64059 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 @@ -9,8 +9,6 @@ # Object.Pipeline.dai-copier-gain-mixin-capture."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -101,10 +99,4 @@ Class.Pipeline."dai-copier-gain-mixin-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 146ab0dcf044..46367c772321 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 @@ -9,8 +9,6 @@ # Object.Pipeline.dai-copier-gain-module-copier-capture."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -116,10 +114,4 @@ Class.Pipeline."dai-copier-gain-module-copier-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/dai-kpb-be.conf b/tools/topology/topology2/include/pipelines/cavs/dai-kpb-be.conf index 71ed5dff6039..0c3a5823aced 100644 --- a/tools/topology/topology2/include/pipelines/cavs/dai-kpb-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/dai-kpb-be.conf @@ -10,8 +10,6 @@ # direction "playback" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -135,10 +133,4 @@ Class.Pipeline."dai-kpb-be" { time_domain "timer" dynamic_pipeline 1 - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf b/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf index b787551b58bf..d9ae0717bf1f 100644 --- a/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/deepbuffer-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.deepbuffer-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -110,10 +108,4 @@ Class.Pipeline."deepbuffer-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf b/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf index dbee6b08aec7..1b6bb99037a9 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-capture.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -223,10 +221,4 @@ Class.Pipeline."gain-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 c63b01b7361b..b193524ebfbd 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-copier-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-copier-capture.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -147,10 +145,4 @@ Class.Pipeline."gain-copier-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf b/tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf index b452c42eb1f0..9dfc7dab6693 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-module-copier.conf @@ -9,8 +9,6 @@ # Object.Pipeline.gain-module-copier."N" { # direction "capture" # period 1000 -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -110,10 +108,4 @@ Class.Pipeline."gain-module-copier" { dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf b/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf index 84f8927fafaa..e034cd383cbd 100644 --- a/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/gain-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.gain-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -105,10 +103,4 @@ Class.Pipeline."gain-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/google-rtc-aec-capture.conf b/tools/topology/topology2/include/pipelines/cavs/google-rtc-aec-capture.conf index 443113559ffe..cf83b5215b5e 100644 --- a/tools/topology/topology2/include/pipelines/cavs/google-rtc-aec-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/google-rtc-aec-capture.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -138,10 +136,4 @@ Class.Pipeline."google-rtc-aec-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 16000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/highpass-capture-be.conf b/tools/topology/topology2/include/pipelines/cavs/highpass-capture-be.conf index f80a43acb0a3..f6e2e7852eed 100644 --- a/tools/topology/topology2/include/pipelines/cavs/highpass-capture-be.conf +++ b/tools/topology/topology2/include/pipelines/cavs/highpass-capture-be.conf @@ -10,8 +10,6 @@ # direction "capture" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -87,10 +85,4 @@ Class.Pipeline."highpass-capture-be" { time_domain "timer" dynamic_pipeline 1 - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 8a2665c20bce..d785ddb2a597 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 @@ -9,8 +9,6 @@ # Object.Pipeline.host-copier-gain-mixin-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -109,10 +107,4 @@ Class.Pipeline."host-copier-gain-mixin-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-src-mixin-playback.conf b/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-src-mixin-playback.conf index b55f2a18c62f..e38b2887b97a 100644 --- a/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-src-mixin-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/host-copier-gain-src-mixin-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.host-copier-gain-src-mixin-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -85,10 +83,4 @@ Class.Pipeline."host-copier-gain-src-mixin-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 8000 - rate_max 192000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/host-gateway-capture.conf b/tools/topology/topology2/include/pipelines/cavs/host-gateway-capture.conf index 84a4cc46cf7f..c9a520f28b80 100644 --- a/tools/topology/topology2/include/pipelines/cavs/host-gateway-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/host-gateway-capture.conf @@ -9,8 +9,6 @@ # Object.Pipeline.host-gateway-capture."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -108,10 +106,4 @@ Class.Pipeline."host-gateway-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/host-gateway-playback.conf b/tools/topology/topology2/include/pipelines/cavs/host-gateway-playback.conf index 29417fcc3b25..8954da0f5c9a 100644 --- a/tools/topology/topology2/include/pipelines/cavs/host-gateway-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/host-gateway-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.host-gateway-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -80,10 +78,4 @@ Class.Pipeline."host-gateway-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/io-gateway-capture.conf b/tools/topology/topology2/include/pipelines/cavs/io-gateway-capture.conf index 8216a07a0878..465e524ee478 100644 --- a/tools/topology/topology2/include/pipelines/cavs/io-gateway-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/io-gateway-capture.conf @@ -10,8 +10,6 @@ # direction "capture" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -64,10 +62,4 @@ Class.Pipeline."io-gateway-capture" { time_domain "timer" direction "capture" dynamic_pipeline 1 - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/io-gateway.conf b/tools/topology/topology2/include/pipelines/cavs/io-gateway.conf index 106a17ec463b..849dd63e9921 100644 --- a/tools/topology/topology2/include/pipelines/cavs/io-gateway.conf +++ b/tools/topology/topology2/include/pipelines/cavs/io-gateway.conf @@ -10,8 +10,6 @@ # direction "playback" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -91,10 +89,4 @@ Class.Pipeline."io-gateway" { time_domain "timer" dynamic_pipeline 1 - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-aria-gain-mixin-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-aria-gain-mixin-playback.conf index 5bb171977c56..ec8bf0d8ae5a 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-aria-gain-mixin-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-aria-gain-mixin-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-aria-gain-mixin-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -91,10 +89,4 @@ Class.Pipeline."mixout-aria-gain-mixin-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-dai-copier-playback.conf index a125bbf6fc8f..d773ffb55957 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-dai-copier-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-dai-copier-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -74,10 +72,4 @@ Class.Pipeline."mixout-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-alh-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-alh-dai-copier-playback.conf index ab8ab712c929..b06ad1d0639b 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-alh-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-alh-dai-copier-playback.conf @@ -8,7 +8,6 @@ # # Object.Pipeline.mixout-gain-alh-dai-copier-playback."N" { # time_domain "timer" -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -54,12 +53,16 @@ Class.Pipeline."mixout-gain-alh-dai-copier-playback" { { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" } ] } @@ -98,10 +101,4 @@ Class.Pipeline."mixout-gain-alh-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 06887d0cd9ab..f1233f640fbb 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 @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-gain-dai-copier-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -99,10 +97,4 @@ Class.Pipeline."mixout-gain-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 539654e8aae4..60f38dfcc1dd 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 @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-gain-efx-dai-copier-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -190,10 +188,4 @@ Class.Pipeline."mixout-gain-efx-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-mbdrc-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-mbdrc-dai-copier-playback.conf index 21cf87d788cd..bcb5a89b3b4f 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-mbdrc-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-efx-mbdrc-dai-copier-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-gain-efx-mbdrc-dai-copier-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -188,10 +186,4 @@ Class.Pipeline."mixout-gain-efx-mbdrc-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-eqiir-dts-dai-copier-playback.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-eqiir-dts-dai-copier-playback.conf index f48a6449b682..078b65799eda 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-gain-eqiir-dts-dai-copier-playback.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-gain-eqiir-dts-dai-copier-playback.conf @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-gain-dts-dai-copier-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -130,10 +128,4 @@ Class.Pipeline."mixout-gain-eqiir-dts-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 3126311e93a7..3a34a311029f 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 @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-gain-host-copier-capture."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -118,10 +116,4 @@ Class.Pipeline."mixout-gain-host-copier-capture" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 f0ca0fbf6b14..e60243258fe5 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 @@ -9,8 +9,6 @@ # Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -131,10 +129,4 @@ Class.Pipeline."mixout-gain-smart-amp-dai-copier-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/mixout-mixin.conf b/tools/topology/topology2/include/pipelines/cavs/mixout-mixin.conf index cdd40b90f9af..bf04d339447a 100644 --- a/tools/topology/topology2/include/pipelines/cavs/mixout-mixin.conf +++ b/tools/topology/topology2/include/pipelines/cavs/mixout-mixin.conf @@ -8,8 +8,6 @@ # Object.Pipeline.mixout-mixin."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -58,10 +56,4 @@ Class.Pipeline."mixout-mixin" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 48000 - rate_max 48000 } 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 1394c45d411a..5d1fc1a45789 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 @@ -9,8 +9,6 @@ # Object.Pipeline.src-gain-mixin-playback."N" { # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -112,10 +110,4 @@ Class.Pipeline."src-gain-mixin-playback" { direction "playback" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 48000 - rate_min 8000 - rate_max 192000 } diff --git a/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf b/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf index b4d0466ea7be..0f4490525c83 100644 --- a/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf +++ b/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is the unique pipeline ID within the same alsaconf node. @@ -126,10 +124,4 @@ Class.Pipeline."wov-detect" { direction "capture" dynamic_pipeline 1 time_domain "timer" - channels 2 - channels_min 2 - channels_max 2 - rate 16000 - rate_min 16000 - rate_max 16000 } diff --git a/tools/topology/topology2/include/pipelines/eq-iir-volume-capture.conf b/tools/topology/topology2/include/pipelines/eq-iir-volume-capture.conf index 23f376e83ceb..ce381181b9c8 100644 --- a/tools/topology/topology2/include/pipelines/eq-iir-volume-capture.conf +++ b/tools/topology/topology2/include/pipelines/eq-iir-volume-capture.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is a unique integer for pipeline ID in the same alsaconf node. @@ -117,8 +115,6 @@ Class.Pipeline."eq-iir-volume-capture" { direction "capture" time_domain "timer" period 1000 - channels 2 - rate 48000 priority 0 core 0 frames 0 diff --git a/tools/topology/topology2/include/pipelines/passthrough-capture.conf b/tools/topology/topology2/include/pipelines/passthrough-capture.conf index e71efe9c9ebf..e0405178887a 100644 --- a/tools/topology/topology2/include/pipelines/passthrough-capture.conf +++ b/tools/topology/topology2/include/pipelines/passthrough-capture.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # and N is the unique pipeline_id for this pipeline object within the same alsaconf node. @@ -69,8 +67,6 @@ Class.Pipeline."passthrough-capture" { direction "capture" time_domain "timer" period 1000 - channels 2 - rate 48000 priority 0 core 0 frames 0 diff --git a/tools/topology/topology2/include/pipelines/pipeline-common.conf b/tools/topology/topology2/include/pipelines/pipeline-common.conf index 9ac87b015bef..37a34066d4df 100644 --- a/tools/topology/topology2/include/pipelines/pipeline-common.conf +++ b/tools/topology/topology2/include/pipelines/pipeline-common.conf @@ -29,14 +29,6 @@ DefineAttribute."format" { } } -# Sampling rate -DefineAttribute."rate" { - constraints { - min 16000 - max 196000 - } -} - # Pipeline direction DefineAttribute."direction" { type "string" diff --git a/tools/topology/topology2/include/pipelines/volume-capture.conf b/tools/topology/topology2/include/pipelines/volume-capture.conf index 169d9a96996b..4f11182fe344 100644 --- a/tools/topology/topology2/include/pipelines/volume-capture.conf +++ b/tools/topology/topology2/include/pipelines/volume-capture.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # and N is the unique pipeline_id for this pipeline object within the same alsaconf node. @@ -101,8 +99,6 @@ Class.Pipeline."volume-capture" { direction "capture" time_domain "timer" period 1000 - channels 2 - rate 48000 priority 0 core 0 frames 0 diff --git a/tools/topology/topology2/include/pipelines/volume-demux-playback.conf b/tools/topology/topology2/include/pipelines/volume-demux-playback.conf index ab842e909623..595827b662ed 100644 --- a/tools/topology/topology2/include/pipelines/volume-demux-playback.conf +++ b/tools/topology/topology2/include/pipelines/volume-demux-playback.conf @@ -10,8 +10,6 @@ # format "s16le" # period 1000 # time_domain "timer" -# channels 2 -# rate 48000 # } # # Where N is a unique integer for pipeline ID in the same alsaconf node. @@ -117,8 +115,6 @@ Class.Pipeline."volume-demux-playback" { direction "playback" time_domain "timer" period 1000 - channels 2 - rate 48000 priority 0 core 0 frames 0 diff --git a/tools/topology/topology2/include/pipelines/volume-playback.conf b/tools/topology/topology2/include/pipelines/volume-playback.conf index fa007609ab4c..b4ca2646b0a8 100644 --- a/tools/topology/topology2/include/pipelines/volume-playback.conf +++ b/tools/topology/topology2/include/pipelines/volume-playback.conf @@ -12,8 +12,6 @@ ## format "s16le" ## period 1000 ## time_domain "timer" -## channels 2 -## rate 48000 ## } ## ## where N is the unique pipeline_id for this pipeline object within the same alsaconf node. @@ -102,8 +100,6 @@ Class.Pipeline."volume-playback" { direction "playback" time_domain "timer" period 1000 - channels 2 - rate 48000 priority 0 core 0 frames 0 diff --git a/tools/topology/topology2/platform/intel/common_definitions.conf b/tools/topology/topology2/platform/intel/common_definitions.conf index 9c684c7968c0..5f870faf68c4 100644 --- a/tools/topology/topology2/platform/intel/common_definitions.conf +++ b/tools/topology/topology2/platform/intel/common_definitions.conf @@ -58,7 +58,7 @@ Define { SPI_INPUT_CLASS 26 # SPI Input (DSP <-) DEEPBUFFER_FW_DMA_MS 100 # 100 ms copier dma size - DEEPBUFFER_D0I3_COMPATIBLE false # Deep buffer PCM is not D0I3 compatible + DEEPBUFFER_D0I3_COMPATIBLE true # Deep buffer PCM is D0I3 compatible SSP_BLOB_VERSION_1_0 0x100 SSP_BLOB_VERSION_1_5 0x105 diff --git a/tools/topology/topology2/platform/intel/hdmi-default.conf b/tools/topology/topology2/platform/intel/hdmi-default.conf index 798e6a05b7c5..587387c219db 100644 --- a/tools/topology/topology2/platform/intel/hdmi-default.conf +++ b/tools/topology/topology2/platform/intel/hdmi-default.conf @@ -24,4 +24,5 @@ Define { HDMI2_STREAM "iDisp2" HDMI3_STREAM "iDisp3" HDMI4_STREAM "iDisp4" + HDMI_USE_CHAIN_DMA "true" } diff --git a/tools/topology/topology2/platform/intel/hdmi-generic.conf b/tools/topology/topology2/platform/intel/hdmi-generic.conf index 03650d99a3d7..7193dda3fe99 100644 --- a/tools/topology/topology2/platform/intel/hdmi-generic.conf +++ b/tools/topology/topology2/platform/intel/hdmi-generic.conf @@ -40,7 +40,7 @@ Object.Pipeline { } index $HDMI1_HOST_PIPELINE_ID - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } { Object.Widget.host-copier.1 { @@ -49,7 +49,7 @@ Object.Pipeline { } index $HDMI2_HOST_PIPELINE_ID - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } { Object.Widget.host-copier.1 { @@ -58,7 +58,7 @@ Object.Pipeline { } index $HDMI3_HOST_PIPELINE_ID - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } ] io-gateway [ @@ -89,7 +89,7 @@ Object.Pipeline { } ] } - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } { direction "playback" @@ -118,7 +118,7 @@ Object.Pipeline { } ] } - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } { direction "playback" @@ -146,7 +146,7 @@ Object.Pipeline { } ] } - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } ] } @@ -252,7 +252,7 @@ IncludeByKey.NUM_HDMIS { } ] } - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } ] Object.Pipeline.host-gateway-playback [ @@ -263,7 +263,7 @@ IncludeByKey.NUM_HDMIS { } index $HDMI4_HOST_PIPELINE_ID - use_chain_dma $USE_CHAIN_DMA + use_chain_dma $HDMI_USE_CHAIN_DMA } ] Object.PCM.pcm [ diff --git a/tools/topology/topology2/platform/intel/hdmi-in-capture.conf b/tools/topology/topology2/platform/intel/hdmi-in-capture.conf new file mode 100644 index 000000000000..77dd17ccd259 --- /dev/null +++ b/tools/topology/topology2/platform/intel/hdmi-in-capture.conf @@ -0,0 +1,180 @@ +IncludeByKey.HDMI_IN_CAPTURE { + "true" "platform/intel/hdmi-in-ssp-config.conf" +} + +Object.Pipeline { + # capture pipelines + host-gateway-capture [ + { + index $HDMI_IN_1_CP_HOST_PIPELINE_ID + Object.Widget.pipeline.1 { + stream_name "dai-copier.SSP.$HDMI_IN_1_NAME.capture" + } + Object.Widget.host-copier.1 { + stream_name $HDMI_IN_1_CP_PCM_CAPS + pcm_id $HDMI_IN_1_PCM_ID + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + in_channels 2 + in_rate 48000 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_channels 2 + out_rate 48000 + } + ] + } + } + { + index $HDMI_IN_2_CP_HOST_PIPELINE_ID + Object.Widget.pipeline.1 { + stream_name "dai-copier.SSP.$HDMI_IN_2_NAME.capture" + } + Object.Widget.host-copier.1 { + stream_name $HDMI_IN_2_CP_PCM_CAPS + pcm_id $HDMI_IN_2_PCM_ID + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + in_channels 2 + in_rate 48000 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_channels 2 + out_rate 48000 + } + ] + } + } + ] + + io-gateway-capture [ + { + index $HDMI_IN_1_CP_DAI_PIPELINE_ID + + Object.Widget.pipeline.1 { + stream_name "dai-copier.SSP.$HDMI_IN_1_NAME.capture" + } + + Object.Widget.dai-copier."1" { + dai_index $HDMI_IN_1_INDEX + dai_type "SSP" + type dai_out + copier_type "SSP" + stream_name $HDMI_IN_1_NAME + node_type $I2S_LINK_INPUT_CLASS + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + in_channels 2 + in_rate 48000 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_channels 2 + out_rate 48000 + } + ] + } + } + { + index $HDMI_IN_2_CP_DAI_PIPELINE_ID + direction "capture" + Object.Widget.pipeline.1 { + stream_name "dai-copier.SSP.$HDMI_IN_2_NAME.capture" + } + + Object.Widget.dai-copier."1" { + dai_index $HDMI_IN_2_INDEX + dai_type "SSP" + type dai_out + copier_type "SSP" + stream_name $HDMI_IN_2_NAME + node_type $I2S_LINK_INPUT_CLASS + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + in_channels 2 + in_rate 48000 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_channels 2 + out_rate 48000 + } + ] + } + } + ] +} + +Object.Base.route [ + { + source "dai-copier.SSP.$HDMI_IN_1_NAME.capture" + sink "host-copier.$HDMI_IN_1_PCM_ID.capture" + } + { + source "dai-copier.SSP.$HDMI_IN_2_NAME.capture" + sink "host-copier.$HDMI_IN_2_PCM_ID.capture" + } +] + +Object.PCM.pcm [ + { + name $HDMI_IN_1_PCM_NAME + id $HDMI_IN_1_PCM_ID + direction "capture" + + Object.Base.fe_dai.1 { + name $HDMI_IN_1_PCM_NAME + } + + Object.PCM.pcm_caps.1 { + direction "capture" + name $HDMI_IN_1_CP_PCM_CAPS + formats 'S32_LE' + rate_min 48000 + rate_max 48000 + channels_min 2 + channels_max 2 + } + } + { + name $HDMI_IN_2_PCM_NAME + id $HDMI_IN_2_PCM_ID + direction "capture" + + Object.Base.fe_dai.1 { + name $HDMI_IN_2_PCM_NAME + } + + Object.PCM.pcm_caps.1 { + direction "capture" + name $HDMI_IN_2_CP_PCM_CAPS + formats 'S32_LE' + rate_min 48000 + rate_max 48000 + channels_min 2 + channels_max 2 + } + } +] diff --git a/tools/topology/topology2/platform/intel/hdmi-in-default.conf b/tools/topology/topology2/platform/intel/hdmi-in-default.conf new file mode 100644 index 000000000000..0d8e10c21017 --- /dev/null +++ b/tools/topology/topology2/platform/intel/hdmi-in-default.conf @@ -0,0 +1,28 @@ +# Default HDMI-IN variable definitions +Define { + # HDMI_IN_ID is dai link ID that is matched with machine driver + HDMI_IN_1_ID 6 + HDMI_IN_2_ID 7 + # HDMI_IN_INDEX is dai_index which passed to firmware + HDMI_IN_1_INDEX 0 + HDMI_IN_2_INDEX 2 + FORMAT s32le + HDMI_IN_MCLK 38400000 + HDMI_IN_1_NAME "SSP0-HDMI" + HDMI_IN_2_NAME "SSP2-HDMI" + + HDMI_IN_1_CP_HOST_PIPELINE_ID 7 + HDMI_IN_1_CP_DAI_PIPELINE_ID 8 + HDMI_IN_1_CP_PCM_CAPS "HDMI-In-1 Capture" + + HDMI_IN_2_CP_HOST_PIPELINE_ID 9 + HDMI_IN_2_CP_DAI_PIPELINE_ID 10 + HDMI_IN_2_CP_PCM_CAPS "HDMI-In-2 Capture" + + HDMI_IN_1_PCM_ID 1 + HDMI_IN_2_PCM_ID 2 + HDMI_IN_1_PCM_NAME "HDMI-In-1" + HDMI_IN_2_PCM_NAME "HDMI-In-2" + + HDMI_IN_CAPTURE false +} diff --git a/tools/topology/topology2/platform/intel/hdmi-in-ssp-config.conf b/tools/topology/topology2/platform/intel/hdmi-in-ssp-config.conf new file mode 100644 index 000000000000..2da8af66d294 --- /dev/null +++ b/tools/topology/topology2/platform/intel/hdmi-in-ssp-config.conf @@ -0,0 +1,56 @@ +#SSP DAI configuration to receive samples via I2S(in slave mode) +#from HDMI input converter chip. +Object.Dai.SSP [ + { + id $HDMI_IN_1_ID + dai_index $HDMI_IN_1_INDEX + direction "capture" + name $HDMI_IN_1_NAME + default_hw_conf_id 0 + sample_bits 32 + io_clk $HDMI_IN_MCLK + Object.Base.hw_config.1 { + id 0 + name "HDMI-In-1" + mclk_freq $HDMI_IN_MCLK + bclk_freq 3072000 + tdm_slot_width 32 + format "I2S" + bclk "codec_provider" + fsync "codec_provider" + fsync_freq 48000 + tdm_slots 2 + tx_slots 3 + rx_slots 3 + Object.Base.link_config.1 { + clock_source 0 + } + } + } + { + id $HDMI_IN_2_ID + dai_index $HDMI_IN_2_INDEX + direction "capture" + name $HDMI_IN_2_NAME + default_hw_conf_id 1 + sample_bits 32 + io_clk $HDMI_IN_MCLK + Object.Base.hw_config.1 { + id 0 + name "HDMI-In-2" + mclk_freq $HDMI_IN_MCLK + bclk_freq 3072000 + tdm_slot_width 32 + format "I2S" + bclk "codec_provider" + fsync "codec_provider" + fsync_freq 48000 + tdm_slots 2 + tx_slots 3 + rx_slots 3 + Object.Base.link_config.1 { + clock_source 0 + } + } + } +] diff --git a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf index c19423d62f2f..dd294600f93c 100644 --- a/tools/topology/topology2/platform/intel/sdw-amp-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-amp-generic.conf @@ -9,6 +9,7 @@ Define { SDW_AMP_IN_BE_ID 3 AMP_FEEDBACK_CH 2 SDW_AMP_FEEDBACK true + SDW_AMP_FMT_24 false } Object.Dai.ALH [ @@ -54,6 +55,19 @@ IncludeByKey.PASSTHROUGH { Object.Widget.alh-copier.1 { stream_name $SDW_SPK_STREAM node_type $ALH_LINK_OUTPUT_CLASS + IncludeByKey.SDW_AMP_FMT_24 { + "true" { + num_output_audio_formats 1 + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] + } + } } Object.Widget.gain.1 { Object.Control.mixer.1 { @@ -120,31 +134,60 @@ IncludeByKey.PASSTHROUGH { { in_bit_depth 16 in_valid_bit_depth 16 + in_sample_type $SAMPLE_TYPE_MSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } { in_bit_depth 32 in_valid_bit_depth 24 + in_sample_type $SAMPLE_TYPE_MSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } ] - num_output_audio_formats 3 - Object.Base.output_audio_format [ - { - out_bit_depth 16 - out_valid_bit_depth 16 - } - { - out_bit_depth 32 - out_valid_bit_depth 24 + IncludeByKey.SDW_AMP_FMT_24 { + "true" { + num_output_audio_formats 1 + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + + } + ] } - { - out_bit_depth 32 - out_valid_bit_depth 32 + "false" { + num_output_audio_formats 3 + num_output_audio_formats 3 + Object.Base.output_audio_format [ + { + out_bit_depth 16 + out_valid_bit_depth 16 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] } - ] + } } ] pipeline [ @@ -178,20 +221,36 @@ IncludeByKey.NUM_SDW_AMP_LINKS { num_input_audio_formats 1 num_output_audio_formats 1 num_input_pins 1 - - # 32-bit 48KHz 2ch Object.Base.input_audio_format [ { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_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 + IncludeByKey.SDW_AMP_FMT_24 { + "true" { + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] + } + } } ] IncludeByKey.SDW_AMP_FEEDBACK { @@ -209,17 +268,34 @@ IncludeByKey.NUM_SDW_AMP_LINKS { num_output_audio_formats 1 num_output_pins 1 - # 32-bit 48KHz 2ch - Object.Base.input_audio_format [ - { - in_bit_depth 32 - in_valid_bit_depth 32 + IncludeByKey.SDW_AMP_FMT_24 { + "true" { + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 24 + in_sample_type $SAMPLE_TYPE_MSB_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 + in_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" } ] } @@ -394,12 +470,16 @@ IncludeByKey.SDW_AMP_FEEDBACK { { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" } ] } diff --git a/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf b/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf index e8b0ca2dbb31..6c4f36d193f2 100644 --- a/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-dmic-generic.conf @@ -53,12 +53,16 @@ Object.Widget { { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" } ] } diff --git a/tools/topology/topology2/platform/intel/sdw-jack-generic.conf b/tools/topology/topology2/platform/intel/sdw-jack-generic.conf index 1b7a4494728b..8d71a19c1eb6 100644 --- a/tools/topology/topology2/platform/intel/sdw-jack-generic.conf +++ b/tools/topology/topology2/platform/intel/sdw-jack-generic.conf @@ -8,8 +8,9 @@ IncludeByKey.PASSTHROUGH { } Define { - JACK_PLAYBACK_PCM_NAME "Jack Out" - JACK_CAPTURE_PCM_NAME "Jack In" + JACK_PLAYBACK_PCM_NAME "Jack Out" + JACK_CAPTURE_PCM_NAME "Jack In" + SDW_JACK_FMT_24 "false" } # @@ -75,6 +76,19 @@ IncludeByKey.PASSTHROUGH { Object.Widget.alh-copier.1 { stream_name $SDW_JACK_OUT_STREAM node_type $ALH_LINK_OUTPUT_CLASS + IncludeByKey.SDW_JACK_FMT_24 { + "true" { + num_output_audio_formats 1 + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256)) | ($out_sample_type * 65536)]" + } + ] + } + } } Object.Widget.gain.1 { Object.Control.mixer.1 { @@ -140,31 +154,58 @@ IncludeByKey.PASSTHROUGH { { in_bit_depth 16 in_valid_bit_depth 16 + in_sample_type $SAMPLE_TYPE_MSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } { in_bit_depth 32 in_valid_bit_depth 24 + in_sample_type $SAMPLE_TYPE_MSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } { in_bit_depth 32 in_valid_bit_depth 32 + in_sample_type $SAMPLE_TYPE_MSB_INTEGER + in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]" } ] - num_output_audio_formats 3 - Object.Base.output_audio_format [ - { - out_bit_depth 16 - out_valid_bit_depth 16 + IncludeByKey.SDW_JACK_FMT_24 { + "true" { + num_output_audio_formats 1 + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] } - { - out_bit_depth 32 - out_valid_bit_depth 24 - } - { - out_bit_depth 32 - out_valid_bit_depth 32 + "false" { + num_output_audio_formats 3 + Object.Base.output_audio_format [ + { + out_bit_depth 16 + out_valid_bit_depth 16 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + { + out_bit_depth 32 + out_valid_bit_depth 24 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" + } + ] } - ] + } } ] pipeline [ @@ -282,16 +323,34 @@ Object.Widget { num_output_audio_formats 1 num_output_pins 1 - Object.Base.input_audio_format [ - { - in_bit_depth 32 - in_valid_bit_depth 32 + IncludeByKey.SDW_JACK_FMT_24 { + "true" { + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 24 + in_sample_type $SAMPLE_TYPE_MSB_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 + in_sample_type $SAMPLE_TYPE_MSB_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 + out_sample_type $SAMPLE_TYPE_MSB_INTEGER + out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]" } ] } diff --git a/tools/topology/topology2/avs-tplg/CMakeLists.txt b/tools/topology/topology2/production/CMakeLists.txt similarity index 69% rename from tools/topology/topology2/avs-tplg/CMakeLists.txt rename to tools/topology/topology2/production/CMakeLists.txt index 3dd21c511d89..9389d4da2c75 100644 --- a/tools/topology/topology2/avs-tplg/CMakeLists.txt +++ b/tools/topology/topology2/production/CMakeLists.txt @@ -1,8 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause -include(tplg-targets.cmake) +include(tplg-targets-hda-generic.cmake) +include(tplg-targets-cavs25.cmake) +include(tplg-targets-ace1.cmake) +include(tplg-targets-ace2.cmake) -add_custom_target(topology2_cavs) +add_custom_target(topology2_prod) foreach(tplg ${TPLGS}) set(defines "") @@ -22,6 +25,6 @@ foreach(tplg ${TPLGS}) "${CMAKE_CURRENT_SOURCE_DIR}/../${input}" "${output}" "${CMAKE_CURRENT_SOURCE_DIR}/../" "${defines}") - add_custom_target(topology2_avs_${output} DEPENDS ${output}.tplg) - add_dependencies(topology2_cavs topology2_avs_${output}) + add_custom_target(topology2_${output} DEPENDS ${output}.tplg) + add_dependencies(topology2_prod topology2_${output}) endforeach() diff --git a/tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake b/tools/topology/topology2/production/tplg-targets-ace1.cmake similarity index 60% rename from tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake rename to tools/topology/topology2/production/tplg-targets-ace1.cmake index 50ff31b92e28..46927ef29b3e 100644 --- a/tools/topology/topology2/sof-ace-tplg/tplg-targets.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace1.cmake @@ -1,28 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Array of "input-file-name;output-file-name;comma separated pre-processor variables" -set(TPLGS -# HDMI only topology with passthrough pipelines -"sof-hda-generic\;sof-hda-generic-idisp\;USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,\ -DEEPBUFFER_D0I3_COMPATIBLE=true" -# HDA topology with mixer-based pipelines for HDA and passthrough pipelines for HDMI -"sof-hda-generic\;sof-hda-generic\;HDA_CONFIG=mix,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,\ -DEEPBUFFER_D0I3_COMPATIBLE=true" -# If the alsatplg plugins for NHLT are not available, the NHLT blobs will not be added to the -# topologies below. -"sof-hda-generic\;sof-hda-generic-4ch\;PLATFORM=mtl,\ -HDA_CONFIG=mix,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,PREPROCESS_PLUGINS=nhlt,\ -NHLT_BIN=nhlt-sof-hda-generic-4ch.bin,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,\ -DEEPBUFFER_D0I3_COMPATIBLE=true" -"sof-hda-generic\;sof-hda-generic-2ch\;PLATFORM=mtl,\ -HDA_CONFIG=mix,NUM_DMICS=2,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-2ch.bin,\ -USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100,DEEPBUFFER_D0I3_COMPATIBLE=true" - +list(APPEND TPLGS # SDW + DMIC topology with passthrough pipelines # We will change NUM_HDMIS to 3 once HDMI is enabled on MTL RVP "cavs-sdw\;sof-mtl-rt711-4ch\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -DMIC0_ID=2,DMIC1_ID=3,NUM_HDMIS=0,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-rt711-4ch.bin,\ -DEEPBUFFER_FW_DMA_MS=100,DEEPBUFFER_D0I3_COMPATIBLE=true" +DMIC0_ID=2,DMIC1_ID=3,NUM_HDMIS=0,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-rt711-4ch.bin" "cavs-sdw\;sof-mtl-rt711-l0-rt1316-l23-rt714-l1\;PLATFORM=mtl,NUM_SDW_AMP_LINKS=2,SDW_DMIC=1,\ NUM_HDMIS=0,SDW_SPK_STREAM=SDW2-Playback,SDW_SPK_IN_STREAM=SDW2-Capture,SDW_DMIC_STREAM=SDW1-Capture" @@ -32,7 +15,7 @@ SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture- SDW_JACK_OUT_STREAM=Playback-SimpleJack,SDW_JACK_IN_STREAM=Capture-SimpleJack" "cavs-sdw\;sof-mtl-rt1318-l12-rt714-l0\;PLATFORM=mtl,SDW_JACK=false,SDW_DMIC=1,\ -USE_CHAIN_DMA=true,NUM_SDW_AMP_LINKS=2,SDW_SPK_STREAM=SDW1-Playback,SDW_SPK_IN_STREAM=SDW1-Capture,\ +NUM_SDW_AMP_LINKS=2,SDW_SPK_STREAM=SDW1-Playback,SDW_SPK_IN_STREAM=SDW1-Capture,\ SDW_DMIC_STREAM=SDW0-Capture" "cavs-sdw\;sof-mtl-rt713-l0-rt1316-l12-rt1713-l3\;PLATFORM=mtl,NUM_SDW_AMP_LINKS=2,SDW_DMIC=1" @@ -44,48 +27,56 @@ SDW_DMIC_STREAM=SDW0-Capture" SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture-SmartMic,\ SDW_JACK_OUT_STREAM=Playback-SimpleJack,SDW_JACK_IN_STREAM=Capture-SimpleJack" +"cavs-sdw\;sof-mtl-cs42l43-l0-cs35l56-l12\;PLATFORM=mtl,NUM_SDW_AMP_LINKS=2,SDW_DMIC=1,\ +NUM_HDMIS=0,SDW_SPK_STREAM=Playback-SmartAmp,SDW_SPK_IN_STREAM=Capture-SmartAmp,\ +SDW_DMIC_STREAM=Capture-SmartMic,SDW_JACK_OUT_STREAM=Playback-SimpleJack,\ +SDW_JACK_IN_STREAM=Capture-SimpleJack,SDW_AMP_FMT_24=true,SDW_JACK_FMT_24=true" + # Below topologies are used on Chromebooks "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,USE_CHAIN_DMA=true,DEEPBUFFER_D0I3_COMPATIBLE=true,\ -GOOGLE_RTC_AEC_SUPPORT=1" +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,USE_CHAIN_DMA=true,\ -DEEPBUFFER_D0I3_COMPATIBLE=true,GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,GOOGLE_AEC_DP_CORE_ID=2" +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" "cavs-rt5682\;sof-mtl-max98357a-rt5682-ssp2-ssp0-2ch-pdm1\;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,USE_CHAIN_DMA=true,\ -DEEPBUFFER_FW_DMA_MS=10,DEEPBUFFER_D0I3_COMPATIBLE=true,GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,\ +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" "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,\ SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ -INCLUDE_ECHO_REF=true,USE_CHAIN_DMA=true,DEEPBUFFER_D0I3_COMPATIBLE=true,INCLUDE_BT_OFFLOAD=false" +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,\ +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 +"cavs-es83x6\;sof-mtl-es83x6-ssp1-hdmi-ssp02\;PLATFORM=mtl,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-mtl-es83x6-ssp1-hdmi-ssp02.bin,HEADSET_SSP_DAI_INDEX=1,\ +HEADSET_CODEC_NAME=SSP1-Codec,HDMI_IN_CAPTURE=true" # SDW + DMIC + HDMI "cavs-sdw\;sof-mtl-sdw-cs42l42-l0-max98363-l2\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ -PDM1_MIC_B_ENABLE=1,DMIC0_ID=3,DMIC1_ID=4,USE_CHAIN_DMA=true,\ +PDM1_MIC_B_ENABLE=1,DMIC0_ID=3,DMIC1_ID=4,\ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-mtl-sdw-cs42l42-l0-max98363-l2.bin,\ BT_NAME=SSP1-BT,BT_INDEX=1,BT_PCM_ID=20,BT_ID=8,BT_PCM_NAME=Bluetooth,ADD_BT=true,\ NUM_SDW_AMP_LINKS=1,SDW_SPK_STREAM=SDW2-Playback,SDW_AMP_FEEDBACK=false,\ -SDW_JACK_CAPTURE_CH=1,DEEPBUFFER_FW_DMA_MS=100,DEEPBUFFER_D0I3_COMPATIBLE=true" - -# SDW topology for LNL RVP -"cavs-sdw\;sof-lnl-rt711-4ch\;PLATFORM=lnl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -DMIC0_ID=2,DMIC1_ID=3,NUM_HDMIS=0,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-lnl-rt711-4ch.bin,\ -DEEPBUFFER_FW_DMA_MS=100,DEEPBUFFER_D0I3_COMPATIBLE=true" - -"cavs-sdw\;sof-lnl-rt711-l0-rt1316-l23-rt714-l1\;PLATFORM=lnl,NUM_SDW_AMP_LINKS=2,SDW_DMIC=1,\ -NUM_HDMIS=0,SDW_SPK_STREAM=SDW2-Playback,SDW_SPK_IN_STREAM=SDW2-Capture,SDW_DMIC_STREAM=SDW1-Capture" +SDW_JACK_CAPTURE_CH=1" ) diff --git a/tools/topology/topology2/production/tplg-targets-ace2.cmake b/tools/topology/topology2/production/tplg-targets-ace2.cmake new file mode 100644 index 000000000000..552a0e29f448 --- /dev/null +++ b/tools/topology/topology2/production/tplg-targets-ace2.cmake @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: BSD-3-Clause + +# Array of "input-file-name;output-file-name;comma separated pre-processor variables" +list(APPEND TPLGS +# SDW topology for LNL RVP +"cavs-sdw\;sof-lnl-rt711-4ch\;PLATFORM=lnl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ +DMIC0_ID=2,DMIC1_ID=3,NUM_HDMIS=0,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-lnl-rt711-4ch.bin" + +"cavs-sdw\;sof-lnl-rt711-l0-rt1316-l23-rt714-l1\;PLATFORM=lnl,NUM_SDW_AMP_LINKS=2,SDW_DMIC=1,\ +NUM_HDMIS=0,SDW_SPK_STREAM=SDW2-Playback,SDW_SPK_IN_STREAM=SDW2-Capture,SDW_DMIC_STREAM=SDW1-Capture" + +"cavs-sdw\;sof-lnl-rt712-l2-rt1712-l3\;PLATFORM=lnl,SDW_DMIC=1,NUM_HDMIS=0,NUM_SDW_AMP_LINKS=1,\ +SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture-SmartMic,\ +SDW_JACK_OUT_STREAM=Playback-SimpleJack,SDW_JACK_IN_STREAM=Capture-SimpleJack" + +"cavs-sdw\;sof-lnl-rt722-l0\;PLATFORM=lnl,SDW_DMIC=1,NUM_HDMIS=0,NUM_SDW_AMP_LINKS=1,\ +SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture-SmartMic,\ +SDW_JACK_OUT_STREAM=Playback-SimpleJack,SDW_JACK_IN_STREAM=Capture-SimpleJack" + +) diff --git a/tools/topology/topology2/avs-tplg/tplg-targets.cmake b/tools/topology/topology2/production/tplg-targets-cavs25.cmake similarity index 62% rename from tools/topology/topology2/avs-tplg/tplg-targets.cmake rename to tools/topology/topology2/production/tplg-targets-cavs25.cmake index 5aeb446793ba..b83fabd928a5 100644 --- a/tools/topology/topology2/avs-tplg/tplg-targets.cmake +++ b/tools/topology/topology2/production/tplg-targets-cavs25.cmake @@ -1,20 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Array of "input-file-name;output-file-name;comma separated pre-processor variables" -set(TPLGS -# CAVS HDMI only topology with passthrough pipelines -"sof-hda-generic\;sof-hda-generic-idisp\;USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100" -# CAVS HDA topology with mixer-based pipelines for HDA and passthrough pipelines for HDMI -"sof-hda-generic\;sof-hda-generic\;HDA_CONFIG=mix,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100" -# If the alsatplg plugins for NHLT are not available, the NHLT blobs will not be added to the -# topologies below. -"sof-hda-generic\;sof-hda-generic-2ch\;\ -HDA_CONFIG=mix,NUM_DMICS=2,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-2ch.bin,USE_CHAIN_DMA=true,\ -DEEPBUFFER_FW_DMA_MS=100" -"sof-hda-generic\;sof-hda-generic-4ch\;\ -HDA_CONFIG=mix,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ -PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-4ch.bin,USE_CHAIN_DMA=true,DEEPBUFFER_FW_DMA_MS=100" - +list(APPEND TPLGS # IPC4 topology for TGL rt711 Headset + rt1316 Amplifier + rt714 DMIC "cavs-sdw\;sof-tgl-rt711-rt1316-rt714\;NUM_SDW_AMP_LINKS=2,SDW_DMIC=1,\ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-rt711-rt1316-rt714.bin" @@ -34,13 +21,18 @@ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-rt715-rt711-rt1308-mono.bin" DMIC1_ID=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,SDW_AMP_FEEDBACK=false,\ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-tgl-rt711-rt1308-4ch.bin" +"cavs-sdw\;sof-tgl-cs42l43-l3-cs35l56-l01\;PLATFORM=tgl,NUM_SDW_AMP_LINKS=2,SDW_DMIC=1,\ +NUM_HDMIS=0,SDW_SPK_STREAM=Playback-SmartAmp,SDW_SPK_IN_STREAM=Capture-SmartAmp,\ +SDW_DMIC_STREAM=Capture-SmartMic,SDW_JACK_OUT_STREAM=Playback-SimpleJack,\ +SDW_JACK_IN_STREAM=Capture-SimpleJack,SDW_AMP_FMT_24=true,SDW_JACK_FMT_24=true" + # IPC4 topology for TGL rt712 Headset, Amp and DMIC "cavs-sdw\;sof-tgl-rt712\;SDW_JACK_OUT_STREAM=SDW0-Playback-SimpleJack,\ SDW_JACK_IN_STREAM=SDW0-Capture-SimpleJack,SDW_SPK_STREAM=SDW0-Playback-SmartAmp,\ SDW_DMIC_STREAM=SDW1-Capture-SmartMic,HDMI1_ID=5,HDMI2_ID=6,HDMI3_ID=7,\ NUM_SDW_AMP_LINKS=1,SDW_AMP_FEEDBACK=false,SDW_DMIC=1,SDW_DMIC_STREAM=SDW1-Capture-SmartMic" -"cavs-sdw\;sof-adl-rt711-4ch\;DEEPBUFFER_FW_DMA_MS=100,NUM_DMICS=4,DMIC0_ID=2,\ -DMIC1_ID=3,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,HDMI1_ID=4,HDMI2_ID=5,\ +"cavs-sdw\;sof-adl-rt711-4ch\;NUM_DMICS=4,DMIC0_ID=2,DMIC1_ID=3,\ +PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,HDMI1_ID=4,HDMI2_ID=5,\ HDMI3_ID=6,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-adl-rt711-4ch.bin" ) diff --git a/tools/topology/topology2/production/tplg-targets-hda-generic.cmake b/tools/topology/topology2/production/tplg-targets-hda-generic.cmake new file mode 100644 index 000000000000..484f57fa08ad --- /dev/null +++ b/tools/topology/topology2/production/tplg-targets-hda-generic.cmake @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: BSD-3-Clause + +# Array of "input-file-name;output-file-name;comma separated pre-processor variables" +list(APPEND TPLGS +# HDMI only topology with passthrough pipelines +"sof-hda-generic\;sof-hda-generic-idisp\;" +# HDA topology with mixer-based pipelines for HDA and +# passthrough pipelines for HDMI +"sof-hda-generic\;sof-hda-generic\;HDA_CONFIG=mix" +# HDA topology with mixer-based pipelines for HDA and +# passthrough pipelines for HDMI and +# 2 or 4 DMIC, no NHLT blob included in topology +"sof-hda-generic\;sof-hda-generic-2ch\;HDA_CONFIG=mix,NUM_DMICS=2" +"sof-hda-generic\;sof-hda-generic-4ch\;HDA_CONFIG=mix,NUM_DMICS=4,\ +PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1" + +# HDA topology with mixer-based pipelines for HDA and +# passthrough pipelines for HDMI and +# 2 or 4 DMIC, no NHLT blob included in topology + +# Note: If the alsatplg plugins for NHLT are not available, the NHLT blobs will +# not be added to the topologies below. + +# Topologies for CAVS2.5 architecture +"sof-hda-generic\;sof-hda-generic-cavs25-2ch\;HDA_CONFIG=mix,NUM_DMICS=2,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-cavs25-2ch.bin" +"sof-hda-generic\;sof-hda-generic-cavs25-4ch\;HDA_CONFIG=mix,NUM_DMICS=4,\ +PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-cavs25-4ch.bin" + +# Topologies for ACE1 and ACE2 architectures +"sof-hda-generic\;sof-hda-generic-ace1-2ch\;PLATFORM=mtl,HDA_CONFIG=mix,NUM_DMICS=2,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-ace1-2ch.bin" +"sof-hda-generic\;sof-hda-generic-ace1-4ch\;PLATFORM=mtl,HDA_CONFIG=mix,NUM_DMICS=4,\ +PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-hda-generic-ace1-4ch.bin" +) diff --git a/tools/topology/topology2/sof-ace-tplg/CMakeLists.txt b/tools/topology/topology2/sof-ace-tplg/CMakeLists.txt deleted file mode 100644 index 2e512cd14e56..000000000000 --- a/tools/topology/topology2/sof-ace-tplg/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause - -include(tplg-targets.cmake) - -add_custom_target(topology2_ace) - -foreach(tplg ${TPLGS}) - set(defines "") - list(LENGTH tplg length) - list(GET tplg 0 input) - list(GET tplg 1 output) - - math(EXPR last_index "${length}-1") - - # Get the pre-processor definitions from the 3rd item in the list for each topology - # ex: "hda-generic\;hda-generic-2ch\;HDA_CONFIG=gain,DMIC_CH=2", "defines" would contain "HDA_CONFIG=gain,DMIC_CH=2" - if (${last_index} EQUAL 2) - list(GET tplg ${last_index} defines) - endif() - - add_alsatplg2_command("${CMAKE_CURRENT_BINARY_DIR}/../abi.conf" abi_target - "${CMAKE_CURRENT_SOURCE_DIR}/../${input}" "${output}" - "${CMAKE_CURRENT_SOURCE_DIR}/../" "${defines}") - - add_custom_target(topology2_ace_${output} DEPENDS ${output}.tplg) - add_dependencies(topology2_ace topology2_ace_${output}) -endforeach() diff --git a/tools/topology/topology2/sof-hda-generic.conf b/tools/topology/topology2/sof-hda-generic.conf index 260cadb924bc..84675a75ab82 100644 --- a/tools/topology/topology2/sof-hda-generic.conf +++ b/tools/topology/topology2/sof-hda-generic.conf @@ -44,7 +44,6 @@ Define { HDA_CONFIG "none" PLATFORM "none" NUM_DMICS 0 - USE_CHAIN_DMA "false" # doesn't it need to define DMIC0_HOST_PIPELINE_SINK and DMIC0_DAI_PIPELINE_SRC? DMIC0_HOST_PIPELINE_SINK 'gain.11.1' DMIC0_DAI_PIPELINE_SRC 'module-copier.12.2' diff --git a/tools/tplg_parser/buffer.c b/tools/tplg_parser/buffer.c index 7440c3f6cd22..1690693d8a03 100644 --- a/tools/tplg_parser/buffer.c +++ b/tools/tplg_parser/buffer.c @@ -30,6 +30,8 @@ static const struct sof_topology_token buffer_tokens[] = { offsetof(struct sof_ipc_buffer, size), 0}, {SOF_TKN_BUF_CAPS, SND_SOC_TPLG_TUPLE_TYPE_WORD, tplg_token_get_uint32_t, offsetof(struct sof_ipc_buffer, caps), 0}, + {SOF_TKN_BUF_FLAGS, SND_SOC_TPLG_TUPLE_TYPE_WORD, tplg_token_get_uint32_t, + offsetof(struct sof_ipc_buffer, flags), 0}, }; static const struct sof_topology_token buffer_comp_tokens[] = {