diff --git a/tools/topology/topology1/sof-cavs-nocodec.m4 b/tools/topology/topology1/sof-cavs-nocodec.m4 index f52ac37ff66e..0033d6174267 100644 --- a/tools/topology/topology1/sof-cavs-nocodec.m4 +++ b/tools/topology/topology1/sof-cavs-nocodec.m4 @@ -112,13 +112,6 @@ PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4, 1000, 0, SSP0_CORE_ID, 48000, 48000, 48000) -# Low Latency playback pipeline 3 on PCM 1 using max 2 channels of PIPE_BITS. -# Set 1000us deadline on core 1 with priority 0 -PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, - 3, 1, 2, PIPE_BITS, - 1000, 0, SSP1_CORE_ID, - 48000, 48000, 48000) - # Volume switch capture pipeline 4 on PCM 1 using max 2 channels of PIPE_BITS. # Set 1000us deadline on core 1 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4, @@ -162,12 +155,13 @@ PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, # Deep buffer playback pipeline 11 on PCM 3 using max 2 channels of PIPE_BITS. # Set 1000us deadline on core 2 with priority 0. # TODO: Modify pipeline deadline to account for deep buffering -PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, +ifelse(PLATFORM, `bxt', `', +`PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, 11, 3, 2, PIPE_BITS, 1000, 0, SSP0_CORE_ID, 48000, 48000, 48000, SCHEDULE_TIME_DOMAIN_TIMER, - PIPELINE_PLAYBACK_SCHED_COMP_1) + PIPELINE_PLAYBACK_SCHED_COMP_1)') # capture DAI is SSP0 using 2 periods # Buffers use DAI_BITS format, 1000us deadline on core 0 with priority 0 @@ -178,10 +172,19 @@ DAI_ADD(sof/pipe-dai-capture.m4, # playback DAI is SSP1 using 2 periods # Buffers use DAI_BITS format, 1000us deadline on core 0 with priority 0 -DAI_ADD(sof/pipe-dai-playback.m4, +DAI_ADD(sof/pipe-mixer-dai-playback.m4, 3, SSP, SSP1_IDX, NoCodec-1, - PIPELINE_SOURCE_3, 2, DAI_BITS, - 1000, 0, SSP1_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER) + NOT_USED_IGNORED, 2, DAI_BITS, + 1000, 0, SSP1_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER, 2, 48000) + +# Low Latency playback pipeline 8 on PCM 1 using max 2 channels of PIPE_BITS. +# Set 1000us deadline on core 2 with priority 0 +PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 8, 1, 2, PIPE_BITS, + 1000, 0, SSP1_CORE_ID, + 48000, 48000, 48000, + SCHEDULE_TIME_DOMAIN_TIMER, + PIPELINE_PLAYBACK_SCHED_COMP_3) # capture DAI is SSP1 using 2 periods # Buffers use DAI_BITS format, 1000us deadline on core 0 with priority 0 @@ -192,30 +195,30 @@ DAI_ADD(sof/pipe-dai-capture.m4, # playback DAI is SSP2 using 2 periods # Buffers use DAI_BITS format, 1000us deadline on core 0 with priority 0 -# The 'NOT_USED_IGNORED' is due to dependencies and is adjusted later with an explicit dapm line. DAI_ADD(sof/pipe-mixer-dai-playback.m4, 5, SSP, SSP2_IDX, NoCodec-2, NOT_USED_IGNORED, 2, DAI_BITS, 1000, 0, SSP2_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER, 2, 48000) -# Low Latency playback pipeline 5 on PCM 2 using max 2 channels of PIPE_BITS. -# Set 1000us deadline on core 0 with priority 0 +# Low Latency playback pipeline 9 on PCM 2 using max 2 channels of PIPE_BITS. +# Set 1000us deadline on core 2 with priority 0 PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, - 8, 2, 2, PIPE_BITS, + 9, 2, 2, PIPE_BITS, 1000, 0, SSP2_CORE_ID, 48000, 48000, 48000, SCHEDULE_TIME_DOMAIN_TIMER, PIPELINE_PLAYBACK_SCHED_COMP_5) -# Deep buffer playback pipeline 12 on PCM 4 using max 2 channels of PIPE_BITS. +# Deep buffer playback pipeline 11 on PCM 3 using max 2 channels of PIPE_BITS. # Set 1000us deadline on core 2 with priority 0. # TODO: Modify pipeline deadline to account for deep buffering -PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, - 12, 4, 2, PIPE_BITS, +ifelse(PLATFORM, `bxt', +`PIPELINE_PCM_ADD(sof/pipe-host-volume-playback.m4, + 11, 3, 2, PIPE_BITS, 1000, 0, SSP2_CORE_ID, 48000, 48000, 48000, SCHEDULE_TIME_DOMAIN_TIMER, - PIPELINE_PLAYBACK_SCHED_COMP_5) + PIPELINE_PLAYBACK_SCHED_COMP_5)') # capture DAI is SSP2 using 2 periods # Buffers use DAI_BITS format, 1000us deadline on core 0 with priority 0 @@ -224,38 +227,28 @@ DAI_ADD(sof/pipe-dai-capture.m4, PIPELINE_SINK_6, 2, DAI_BITS, 1000, 0, SSP2_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER) -# Connect pipelines 7 and 11 to 1 -SectionGraph."Pipeline-1-11-7" { +SectionGraph."mixer-host" { index "0" lines [ - # PCM pipeline 7 to DAI pipeline 1 + # connect mixer dai pipelines to PCM pipelines dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_7) - # PCM pipeline 11 to DAI pipeline 1 - dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_11) - - ] -} - -# Connect pipelines 8 and 12 to 5 -SectionGraph."Pipeline-5-12-8" { - index "0" - - lines [ - # PCM pipeline 8 to DAI pipeline 5 - dapm(PIPELINE_MIXER_5, PIPELINE_SOURCE_8) - # PCM pipeline 12 to DAI pipeline 5 - dapm(PIPELINE_MIXER_5, PIPELINE_SOURCE_12) + dapm(PIPELINE_MIXER_3, PIPELINE_SOURCE_8) + dapm(PIPELINE_MIXER_5, PIPELINE_SOURCE_9) + ifelse(PLATFORM, `bxt', + `dapm(PIPELINE_MIXER_5, PIPELINE_SOURCE_11)', + `dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_11)') ] } dnl PCM_DUPLEX_ADD(name, pcm_id, playback, capture) PCM_DUPLEX_ADD(`Port'SSP0_IDX, 0, PIPELINE_PCM_7, PIPELINE_PCM_2) -PCM_DUPLEX_ADD(`Port'SSP1_IDX, 1, PIPELINE_PCM_3, PIPELINE_PCM_4) -PCM_DUPLEX_ADD(`Port'SSP2_IDX, 2, PIPELINE_PCM_8, PIPELINE_PCM_6) -PCM_PLAYBACK_ADD(`Port'SSP0_IDX` Deep Buffer', 3, PIPELINE_PCM_11) -PCM_PLAYBACK_ADD(`Port'SSP2_IDX` Deep Buffer', 4, PIPELINE_PCM_12) +PCM_DUPLEX_ADD(`Port'SSP1_IDX, 1, PIPELINE_PCM_8, PIPELINE_PCM_4) +PCM_DUPLEX_ADD(`Port'SSP2_IDX, 2, PIPELINE_PCM_9, PIPELINE_PCM_6) +ifelse(PLATFORM,`bxt', +`PCM_PLAYBACK_ADD(`Port'SSP2_IDX` Deep Buffer', 3, PIPELINE_PCM_11)', +`PCM_PLAYBACK_ADD(`Port'SSP0_IDX` Deep Buffer', 3, PIPELINE_PCM_11)') # # BE configurations - overrides config in ACPI if present