topology1: sof-cavs-nocodec: convert all playback pipelines to mixer-based pipelines

Convert all playback pipelines to have a mixer so adding a deep-buffer
pipeline will be simpler.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This commit is contained in:
Ranjani Sridharan 2021-07-22 12:14:17 -07:00 committed by Liam Girdwood
parent 808c4512c5
commit 56d1fe652c
1 changed files with 52 additions and 33 deletions

View File

@ -105,13 +105,6 @@ dnl period, priority, core,
dnl pcm_min_rate, pcm_max_rate, pipeline_rate,
dnl time_domain, sched_comp)
# Low Latency playback pipeline 1 on PCM 0 using max 2 channels of PIPE_BITS.
# Set 1000us deadline on core 2 with priority 0
PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4,
1, 0, 2, PIPE_BITS,
1000, 0, SSP0_CORE_ID,
48000, 48000, 48000)
# Volume switch capture pipeline 2 on PCM 0 using max 2 channels of PIPE_BITS.
# Set 1000us deadline on core 2 with priority 0
PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4,
@ -119,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,
@ -133,13 +119,6 @@ PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4,
1000, 0, SSP1_CORE_ID,
48000, 48000, 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
PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4,
5, 2, 2, PIPE_BITS,
1000, 0, SSP2_CORE_ID,
48000, 48000, 48000)
# Volume switch capture pipeline 6 on PCM 2 using max 2 channels of PIPE_BITS.
# Set 1000us deadline on core 0 with priority 0
PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4,
@ -158,10 +137,20 @@ dnl deadline, priority, core, time_domain)
# playback DAI is SSP0 using 2 periods
# Buffers use DAI_BITS format, 1000us deadline on core 0 with priority 0
DAI_ADD(sof/pipe-dai-playback.m4,
# 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,
1, SSP, SSP0_IDX, NoCodec-0,
PIPELINE_SOURCE_1, 2, DAI_BITS,
1000, 0, SSP0_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER)
NOT_USED_IGNORED, 2, DAI_BITS,
1000, 0, SSP0_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER, 2, 48000)
# Low Latency playback pipeline 1 on PCM 0 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,
7, 0, 2, PIPE_BITS,
1000, 0, SSP0_CORE_ID,
48000, 48000, 48000,
SCHEDULE_TIME_DOMAIN_TIMER,
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
@ -172,10 +161,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
@ -186,10 +184,19 @@ 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
DAI_ADD(sof/pipe-dai-playback.m4,
DAI_ADD(sof/pipe-mixer-dai-playback.m4,
5, SSP, SSP2_IDX, NoCodec-2,
PIPELINE_SOURCE_5, 2, DAI_BITS,
1000, 0, SSP2_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER)
NOT_USED_IGNORED, 2, DAI_BITS,
1000, 0, SSP2_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER, 2, 48000)
# 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,
9, 2, 2, PIPE_BITS,
1000, 0, SSP2_CORE_ID,
48000, 48000, 48000,
SCHEDULE_TIME_DOMAIN_TIMER,
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
@ -198,10 +205,22 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_6, 2, DAI_BITS,
1000, 0, SSP2_CORE_ID, SCHEDULE_TIME_DOMAIN_TIMER)
SectionGraph."mixer-host" {
index "0"
lines [
# connect mixer dai pipelines to PCM pipelines
dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_7)
dapm(PIPELINE_MIXER_3, PIPELINE_SOURCE_8)
dapm(PIPELINE_MIXER_5, PIPELINE_SOURCE_9)
]
}
dnl PCM_DUPLEX_ADD(name, pcm_id, playback, capture)
PCM_DUPLEX_ADD(`Port'SSP0_IDX, 0, PIPELINE_PCM_1, 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_5, PIPELINE_PCM_6)
PCM_DUPLEX_ADD(`Port'SSP0_IDX, 0, PIPELINE_PCM_7, PIPELINE_PCM_2)
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)
#
# BE configurations - overrides config in ACPI if present