mirror of https://github.com/thesofproject/sof.git
topology: Run spk pipelines on same core as AEC
In order to avoid inter core communication while running GOOGLE_RTC_AUDIO_PROCESSING, this change ensure that the speaker processing and the amplifier feedbacks are running on the same core as the AEC. Signed-off-by: Lionel Koenig <lionelk@google.com>
This commit is contained in:
parent
f753241cf1
commit
52358064fe
|
@ -144,6 +144,7 @@ set(TPLGS
|
|||
"sof-tgl-max98357a-rt5682\;sof-tgl-rt1011-rt5682\;-DCODEC=RT1011\;-DFMT=s24le\;-DPLATFORM=tgl\;-DAMP_SSP=1"
|
||||
"sof-tgl-max98357a-rt5682\;sof-tgl-max98357a-rt5682-rtnr\;-DCODEC=MAX98357A\;-DFMT=s16le\;-DPLATFORM=tgl\;-DAMP_SSP=1\;-DCHANNELS=2\;-DRTNR"
|
||||
"sof-tgl-max98357a-rt5682\;sof-adl-max98390-rt5682\;-DCODEC=MAX98390\;-DFMT=s32le\;-DPLATFORM=adl\;-DAMP_SSP=1\;-DBT_OFFLOAD"
|
||||
"sof-tgl-max98357a-rt5682\;sof-adl-max98390-rt5682-google-aec\;-DCODEC=MAX98390\;-DFMT=s32le\;-DPLATFORM=adl\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DGOOGLE_RTC_AUDIO_PROCESSING"
|
||||
"sof-tgl-max98357a-rt5682\;sof-adl-max98390-rt5682-rtnr\;-DCODEC=MAX98390\;-DFMT=s32le\;-DPLATFORM=adl\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DCHANNELS=2\;-DRTNR"
|
||||
"sof-tgl-max98357a-rt5682\;sof-adl-max98390-ssp2-rt5682-ssp0\;-DCODEC=MAX98390\;-DFMT=s32le\;-DPLATFORM=adl\;-DAMP_SSP=2"
|
||||
"sof-tgl-max98357a-rt5682\;sof-adl-rt5682\;-DNO_AMP\;-DPLATFORM=adl"
|
||||
|
|
|
@ -134,6 +134,8 @@ define(DMIC_PIPELINE_KWD_ID, `12')
|
|||
define(DMIC_DAI_LINK_16k_ID, `2')
|
||||
define(DMIC_PIPELINE_48k_CORE_ID, `1')
|
||||
|
||||
ifdef(`GOOGLE_RTC_AUDIO_PROCESSING', `define(`SPK_PLAYBACK_CORE', DMIC_PIPELINE_48k_CORE_ID)', `define(`SPK_PLAYBACK_CORE', `0')')
|
||||
|
||||
# define pcm, pipeline and dai id
|
||||
define(KWD_PIPE_SCH_DEADLINE_US, 5000)
|
||||
|
||||
|
@ -163,7 +165,7 @@ PIPELINE_PCM_ADD(
|
|||
ifdef(`2CH_2WAY', sof/pipe-demux-eq-iir-playback.m4,
|
||||
sof/pipe-volume-demux-playback.m4))),
|
||||
1, 0, ifdef(`4CH_PASSTHROUGH', `4', `2'), s32le,
|
||||
SPK_MIC_PERIOD_US, 0, 0,
|
||||
SPK_MIC_PERIOD_US, 0, SPK_PLAYBACK_CORE,
|
||||
48000, 48000, 48000)
|
||||
undefine(`ENDPOINT_NAME')')
|
||||
|
||||
|
@ -226,14 +228,14 @@ ifdef(`NO_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)
|
||||
|
||||
ifelse(CODEC, `MAX98390', `
|
||||
# Low Latency capture pipeline 9 on PCM 6 using max 4 channels of s32le.
|
||||
# Schedule 48 frames per 1000us deadline on core 0 with priority 0
|
||||
PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4,
|
||||
9, 6, 4, s32le,
|
||||
1000, 0, 0,
|
||||
SPK_MIC_PERIOD_US, 0, SPK_PLAYBACK_CORE,
|
||||
48000, 48000, 48000)
|
||||
|
||||
# capture DAI is SSP1 using 2 periods
|
||||
|
@ -241,7 +243,7 @@ PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4,
|
|||
DAI_ADD(sof/pipe-dai-capture.m4,
|
||||
9, SSP, SPK_SSP_INDEX, SPK_SSP_NAME,
|
||||
PIPELINE_SINK_9, 2, FMT,
|
||||
1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
|
||||
SPK_MIC_PERIOD_US, 0, SPK_PLAYBACK_CORE, SCHEDULE_TIME_DOMAIN_TIMER)
|
||||
',
|
||||
`
|
||||
ifdef(`2CH_2WAY',`# No echo reference for 2-way speakers',
|
||||
|
@ -251,7 +253,7 @@ W_DAI_IN(SSP, SPK_SSP_INDEX, SPK_SSP_NAME, FMT, 3, 0)
|
|||
`# Capture pipeline 9 from demux on PCM 6 using max 'ifdef(`4CH_PASSTHROUGH', `4', `2')` channels of s32le.'
|
||||
PIPELINE_PCM_ADD(sof/pipe-passthrough-capture-sched.m4,
|
||||
9, 6, ifdef(`4CH_PASSTHROUGH', `4', `2'), s32le,
|
||||
1000, 1, 0,
|
||||
SPK_MIC_PERIOD_US, 1, SPK_PLAYBACK_CORE,
|
||||
48000, 48000, 48000,
|
||||
SCHEDULE_TIME_DOMAIN_TIMER,
|
||||
PIPELINE_PLAYBACK_SCHED_COMP_1)
|
||||
|
|
|
@ -41,13 +41,13 @@ W_GOOGLE_RTC_AUDIO_PROCESSING(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE,
|
|||
# Capture Buffers
|
||||
W_BUFFER(0, COMP_BUFFER_SIZE(2,
|
||||
COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)),
|
||||
PLATFORM_HOST_MEM_CAP, SCHEDULE_CORE)
|
||||
PLATFORM_HOST_MEM_CAP)
|
||||
W_BUFFER(1, COMP_BUFFER_SIZE(DAI_PERIODS,
|
||||
COMP_SAMPLE_SIZE(DAI_FORMAT), PIPELINE_CHANNELS, COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)),
|
||||
PLATFORM_DAI_MEM_CAP, SCHEDULE_CORE)
|
||||
PLATFORM_DAI_MEM_CAP)
|
||||
W_BUFFER(2, COMP_BUFFER_SIZE(DAI_PERIODS,
|
||||
COMP_SAMPLE_SIZE(DAI_FORMAT), PIPELINE_CHANNELS, COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)),
|
||||
PLATFORM_DAI_MEM_CAP, SCHEDULE_CORE)
|
||||
PLATFORM_DAI_MEM_CAP)
|
||||
|
||||
define(`N_AEC_REF_BUF',`BUF'PIPELINE_ID`.'2)
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue