diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 3731077a94fc..d4c652b4df14 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -163,8 +163,8 @@ set(TPLGS "sof-tgl-max98357a-rt5682\;sof-adl-max98390-rt5682-rtnr-google-aec\;-DCODEC=MAX98390\;-DFMT=s32le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DCHANNELS=2\;-DGOOGLE_RTC_AUDIO_PROCESSING\;-DRTNR\;-DNOHOTWORD\;-DNO16KDMIC" "sof-tgl-max98357a-rt5682\;sof-adl-max98390-ssp2-rt5682-ssp0\;-DCODEC=MAX98390\;-DFMT=s32le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=2" "sof-tgl-max98357a-rt5682\;sof-adl-rt5682\;-DNO_AMP\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682" - "sof-tgl-max98357a-rt5682\;sof-adl-rt1019-rt5682\;-DCODEC=RT1019\;-DFMT=s16le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DSPK_MIC_PERIOD_US=10000" - "sof-tgl-max98357a-rt5682\;sof-adl-rt1019-rt5682-waves\;-DCODEC=RT1019\;-DFMT=s16le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DWAVES" + "sof-tgl-max98357a-rt5682\;sof-adl-rt1019-rt5682\;-DCODEC=RT1019\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DSPK_MIC_PERIOD_US=10000" + "sof-tgl-max98357a-rt5682\;sof-adl-rt1019-rt5682-waves\;-DCODEC=RT1019\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DWAVES" "sof-tgl-max98357a-rt5682\;sof-adl-cs35l41\;-DCODEC=CS35L41\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_ssp_amp\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DNO_HEADPHONE" "sof-tgl-max98357a-rt5682\;sof-adl-cs35l41-waves\;-DCODEC=CS35L41\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_ssp_amp\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DNO_HEADPHONE\;-DWAVES\;-DNOHOTWORD\;-DNO16KDMIC" "sof-tgl-max98357a-rt5682\;sof-adl-cs35l41-google-aec-waves\;-DCODEC=CS35L41\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_ssp_amp\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DNO_HEADPHONE\;-DGOOGLE_RTC_AUDIO_PROCESSING\;-DWAVES\;-DNOHOTWORD\;-DNO16KDMIC\;-DSPK_MIC_PERIOD_US=10000" diff --git a/tools/topology/topology1/m4/dts_codec_adapter.m4 b/tools/topology/topology1/m4/dts_codec_adapter.m4 index bcbd023190fd..49ba3d8bdec8 100644 --- a/tools/topology/topology1/m4/dts_codec_adapter.m4 +++ b/tools/topology/topology1/m4/dts_codec_adapter.m4 @@ -10,8 +10,6 @@ define(`CA_SETUP_CONTROLBYTES', define(`CA_SETUP_CONTROLBYTES_MAX', 8192) define(`CA_SETUP_CONTROLBYTES_NAME', `DTS Codec Setup ') -define(`CA_SCHEDULE_CORE', 0) - DECLARE_SOF_RT_UUID("DTS codec", dts_uuid, 0xd95fc34f, 0x370f, 0x4ac7, 0xbc, 0x86, 0xbf, 0xdc, 0x5b, 0xe2, 0x41, 0xe6) define(`CA_UUID', dts_uuid) diff --git a/tools/topology/topology1/sof-adl-nau8825.m4 b/tools/topology/topology1/sof-adl-nau8825.m4 index 8cb3c9dde1c9..2ae7daf0f884 100644 --- a/tools/topology/topology1/sof-adl-nau8825.m4 +++ b/tools/topology/topology1/sof-adl-nau8825.m4 @@ -95,6 +95,9 @@ ifdef(`BT_OFFLOAD', ` ifdef(`SPK_MIC_PERIOD_US',`', `define(`SPK_MIC_PERIOD_US', 1000)') +# Run Speakers pipeline on core#1 by default for low power considering +ifdef(`SPK_PLAYBACK_CORE', `', `define(`SPK_PLAYBACK_CORE', `1')') + ifdef(`NO_AMP',,` ifdef(`SMART_AMP',` # Smart amplifier related @@ -107,6 +110,8 @@ define(`SMART_SSP_NAME', concat(concat(`SSP', AMP_SSP),`-Codec')) define(`SMART_BE_ID', 7) #define SSP mclk define(`SSP_MCLK', 24576000) +#define Core ID +define(`SMART_AMP_CORE', SPK_PLAYBACK_CORE) # Playback related define(`SMART_PB_PPL_ID', 1) define(`SMART_PB_CH_NUM', 2) @@ -178,7 +183,7 @@ ifdef(`SMART_AMP',,` # Schedule 48 frames per 1000us deadline with priority 0 on core 0 PIPELINE_PCM_ADD(sof/pipe-volume-demux-playback.m4, 1, 0, 2, s32le, - SPK_MIC_PERIOD_US, 0, 0, + SPK_MIC_PERIOD_US, 0, SPK_PLAYBACK_CORE, 48000, 48000, 48000)')') # Low Latency playback pipeline 2 on PCM 1 using max 2 channels of s32le. @@ -282,19 +287,19 @@ ifdef(`SMART_AMP',,` DAI_ADD(sof/pipe-dai-playback.m4, 1, SSP, SPK_SSP_INDEX, SPK_SSP_NAME, PIPELINE_SOURCE_1, 2, FMT, - SPK_MIC_PERIOD_US, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + SPK_MIC_PERIOD_US, 0, SPK_PLAYBACK_CORE, SCHEDULE_TIME_DOMAIN_TIMER) # The echo refenrence pipeline has no connections in it, # it is used for the capture DAI widget to dock. DAI_ADD(sof/pipe-echo-ref-dai-capture.m4, 29, SSP, SPK_SSP_INDEX, SPK_SSP_NAME, PIPELINE_SINK_29, 3, FMT, - 1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + 1000, 0, SPK_PLAYBACK_CORE, SCHEDULE_TIME_DOMAIN_TIMER) # Capture pipeline 9 from demux on PCM 6 using max 2 channels of s32le. PIPELINE_PCM_ADD(sof/pipe-passthrough-capture-sched.m4, 9, 6, 2, s32le, - 1000, 1, 0, + 1000, 1, SPK_PLAYBACK_CORE, 48000, 48000, 48000, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_1) diff --git a/tools/topology/topology1/sof-eq-iir-dts-codec-smart-amplifier.m4 b/tools/topology/topology1/sof-eq-iir-dts-codec-smart-amplifier.m4 index 5fac391444fc..e8e1f068cb34 100644 --- a/tools/topology/topology1/sof-eq-iir-dts-codec-smart-amplifier.m4 +++ b/tools/topology/topology1/sof-eq-iir-dts-codec-smart-amplifier.m4 @@ -119,7 +119,7 @@ dnl time_domain, sched_comp) # Set 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-eq-iir-dts-codec-smart-amp-playback.m4, SMART_PB_PPL_ID, SMART_PCM_ID, SMART_PB_CH_NUM, s32le, - 1000, 0, 0, + 1000, 0, SMART_AMP_CORE, 48000, 48000, 48000) # Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s32le. @@ -128,13 +128,13 @@ ifelse(SDW, `1', ` PIPELINE_PCM_ADD(sof/pipe-amp-ref-capture.m4, SMART_REF_PPL_ID, eval(SMART_PCM_ID + 1), SMART_REF_CH_NUM, s32le, - 1000, 0, 0, + 1000, 0, SMART_AMP_CORE, 48000, 48000, 48000) ', ` PIPELINE_PCM_ADD(sof/pipe-amp-ref-capture.m4, SMART_REF_PPL_ID, SMART_PCM_ID, SMART_REF_CH_NUM, s32le, - 1000, 0, 0, + 1000, 0, SMART_AMP_CORE, 48000, 48000, 48000) ') @@ -154,14 +154,14 @@ ifelse(SDW, `1', DAI_ADD(sof/pipe-dai-playback.m4, SMART_PB_PPL_ID, ALH, SMART_ALH_INDEX, SMART_ALH_PLAYBACK_NAME, SMART_PIPE_SOURCE, 2, s24le, - 1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + 1000, 0, SMART_AMP_CORE, SCHEDULE_TIME_DOMAIN_TIMER) # capture DAI is ALH(ALH_INDEX) using 2 periods # Buffers use s32le format, 1000us deadline on core 0 with priority 0 DAI_ADD(sof/pipe-dai-capture.m4, SMART_REF_PPL_ID, ALH, eval(SMART_ALH_INDEX + 1), SMART_ALH_CAPTURE_NAME, SMART_PIPE_SINK, 2, s24le, - 1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + 1000, 0, SMART_AMP_CORE, SCHEDULE_TIME_DOMAIN_TIMER) ', ` # playback DAI is SSP(SPP_INDEX) using 2 periods @@ -169,14 +169,14 @@ DAI_ADD(sof/pipe-dai-capture.m4, DAI_ADD(sof/pipe-dai-playback.m4, SMART_PB_PPL_ID, SSP, SMART_SSP_INDEX, SMART_SSP_NAME, SMART_PIPE_SOURCE, 2, s32le, - 1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + 1000, 0, SMART_AMP_CORE, SCHEDULE_TIME_DOMAIN_TIMER) # capture DAI is SSP(SSP_INDEX) using 2 periods # Buffers use s32le format, 1000us deadline on core 0 with priority 0 DAI_ADD(sof/pipe-dai-capture.m4, SMART_REF_PPL_ID, SSP, SMART_SSP_INDEX, SMART_SSP_NAME, SMART_PIPE_SINK, 2, s32le, - 1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + 1000, 0, SMART_AMP_CORE, SCHEDULE_TIME_DOMAIN_TIMER) ') # Connect demux to smart_amp diff --git a/tools/topology/topology1/sof-tgl-max98357a-rt5682.m4 b/tools/topology/topology1/sof-tgl-max98357a-rt5682.m4 index 1c3856ebc5de..cf3c28b07820 100644 --- a/tools/topology/topology1/sof-tgl-max98357a-rt5682.m4 +++ b/tools/topology/topology1/sof-tgl-max98357a-rt5682.m4 @@ -159,7 +159,9 @@ ifdef(`GOOGLE_RTC_AUDIO_PROCESSING', `define(`DMIC_48k_PERIOD_US', 5000)')' ) -ifdef(`GOOGLE_RTC_AUDIO_PROCESSING', `define(`SPK_PLAYBACK_CORE', DMIC_PIPELINE_48k_CORE_ID)', `define(`SPK_PLAYBACK_CORE', `0')') +# Run Speakers pipeline on core#1 by default for low power considering +ifdef(`GOOGLE_RTC_AUDIO_PROCESSING', `define(`SPK_PLAYBACK_CORE', DMIC_PIPELINE_48k_CORE_ID)', + `ifdef(`SPK_PLAYBACK_CORE', `', `define(`SPK_PLAYBACK_CORE', `1')')') # Google RTC Audio processing processes 10ms at a time. It needs to have time to process it. ifdef(`GOOGLE_RTC_AUDIO_PROCESSING', `define(`DMIC_48k_PERIOD', 10000)', `') diff --git a/tools/topology/topology1/sof-tgl-max98373-rt5682.m4 b/tools/topology/topology1/sof-tgl-max98373-rt5682.m4 index 7c71cc44a309..5d92bb3c7f92 100644 --- a/tools/topology/topology1/sof-tgl-max98373-rt5682.m4 +++ b/tools/topology/topology1/sof-tgl-max98373-rt5682.m4 @@ -38,6 +38,8 @@ DEBUG_START # PCM99 <---- volume <---- DMIC01 (dmic 48k capture) # PCM100 <---- kpb <---- DMIC16K (dmic 16k capture) +# Run Speakers pipeline on core#1 by default for low power considering +ifdef(`SPK_PLAYBACK_CORE', `', `define(`SPK_PLAYBACK_CORE', `1')') ifdef(`AMP_SSP',`',`fatal_error(note: Define AMP_SSP for speaker amp SSP Index)') # Smart amplifier related @@ -50,6 +52,8 @@ define(`SMART_SSP_NAME', concat(concat(`SSP', AMP_SSP),`-Codec')) define(`SMART_BE_ID', 7) #define SSP mclk define(`SSP_MCLK', 24576000) +# Run Smart Amp pipeline on core#1 by default for low power considering +define(`SMART_AMP_CORE', SPK_PLAYBACK_CORE) # Playback related define(`SMART_PB_PPL_ID', 1) define(`SMART_PB_CH_NUM', 2)