Add a flag to specify whether the pipeline processing work can be scheduled via a timer or an IRQ source. IRQ scheduling will primarily be used by pipelines that include a DAI.
Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com --- topology/m4/local.m4 | 5 +++-- topology/sof/pipe-dai-capture.m4 | 2 +- topology/sof/pipe-dai-playback.m4 | 2 +- topology/sof/pipe-low-latency-capture.m4 | 2 +- topology/sof/pipe-low-latency-playback.m4 | 2 +- topology/sof/pipe-passthrough-playback.m4 | 2 +- topology/sof/pipe-passthrough-vol-playback.m4 | 2 +- topology/sof/pipe-pcm-media.m4 | 2 +- topology/sof/pipe-tone.m4 | 2 +- topology/sof/tokens.m4 | 1 + 10 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/topology/m4/local.m4 b/topology/m4/local.m4 index 5ff0a3d..50c6b5d 100644 --- a/topology/m4/local.m4 +++ b/topology/m4/local.m4 @@ -370,7 +370,7 @@ define(`NPIPELINE_BUFFER', `BUF'$1`.'$2) dnl Pipeline name) define(`N_PIPELINE', `PIPELINE.'PIPELINE_ID`.'$1)
-dnl W_PIPELINE(stream, deadline, priority, frames, core, platform) +dnl W_PIPELINE(stream, deadline, priority, frames, core, timer, platform) define(`W_PIPELINE', `SectionVendorTuples."'N_PIPELINE($1)`_tuples" {' ` tokens "sof_sched_tokens"' @@ -379,6 +379,7 @@ define(`W_PIPELINE', ` SOF_TKN_SCHED_PRIORITY' STR($3) ` SOF_TKN_SCHED_CORE' STR($5) ` SOF_TKN_SCHED_FRAMES' STR($4) +` SOF_TKN_SCHED_TIMER' STR($6) ` }' `}' `SectionData."'N_PIPELINE($1)`_data" {' @@ -391,7 +392,7 @@ define(`W_PIPELINE', ` stream_name "'$1`"' ` data [' ` "'N_PIPELINE($1)`_data"' -` "'$6`"' +` "'$7`"' ` ]' `}')
diff --git a/topology/sof/pipe-dai-capture.m4 b/topology/sof/pipe-dai-capture.m4 index cc44c0e..45c6ff4 100644 --- a/topology/sof/pipe-dai-capture.m4 +++ b/topology/sof/pipe-dai-capture.m4 @@ -11,7 +11,7 @@ W_DAI_IN(DAI_SNAME, DAI_TYPE, DAI_INDEX, DAI_FORMAT, 2, 0, 0, dai0c_plat_conf) # # DAI pipeline - always use 0 for DAIs # -W_PIPELINE(N_DAI_IN, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_dai_schedule_plat) +W_PIPELINE(N_DAI_IN, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, 0, pipe_dai_schedule_plat)
# # Graph connections to pipelines diff --git a/topology/sof/pipe-dai-playback.m4 b/topology/sof/pipe-dai-playback.m4 index f0967c2..f99aac0 100644 --- a/topology/sof/pipe-dai-playback.m4 +++ b/topology/sof/pipe-dai-playback.m4 @@ -11,7 +11,7 @@ W_DAI_OUT(DAI_SNAME, DAI_TYPE, DAI_INDEX, DAI_FORMAT, 0, 2, 2, dai0p_plat_conf) # # DAI pipeline - always use 0 for DAIs # -W_PIPELINE(N_DAI_OUT, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_dai_schedule_plat) +W_PIPELINE(N_DAI_OUT, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, 0, pipe_dai_schedule_plat)
# # Graph connections to pipelines diff --git a/topology/sof/pipe-low-latency-capture.m4 b/topology/sof/pipe-low-latency-capture.m4 index d041dca..22df648 100644 --- a/topology/sof/pipe-low-latency-capture.m4 +++ b/topology/sof/pipe-low-latency-capture.m4 @@ -81,7 +81,7 @@ indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(0)) # Pipeline Configuration. #
-W_PIPELINE(N_PGA(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_ll_schedule_plat) +#W_PIPELINE(N_PGA(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_ll_schedule_plat)
# # PCM Configuration diff --git a/topology/sof/pipe-low-latency-playback.m4 b/topology/sof/pipe-low-latency-playback.m4 index 3db55cf..c29165e 100644 --- a/topology/sof/pipe-low-latency-playback.m4 +++ b/topology/sof/pipe-low-latency-playback.m4 @@ -146,7 +146,7 @@ indir(`define', concat(`PIPELINE_MIXER_', PIPELINE_ID), N_MIXER(0)) # Pipeline Configuration. #
-W_PIPELINE(N_PGA(1), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_ll_schedule_plat) +#W_PIPELINE(N_PGA(1), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_ll_schedule_plat)
# # PCM Configuration diff --git a/topology/sof/pipe-passthrough-playback.m4 b/topology/sof/pipe-passthrough-playback.m4 index 732e173..46ed949 100644 --- a/topology/sof/pipe-passthrough-playback.m4 +++ b/topology/sof/pipe-passthrough-playback.m4 @@ -28,7 +28,7 @@ W_DAI_OUT(DAI_SNAME, DAI_TYPE, DAI_INDEX, DAI_FORMAT, 0, 2, 2, dai0p_plat_conf) # # DAI pipeline - always use 0 for DAIs # -W_PIPELINE(N_DAI_OUT, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_dai_schedule_plat) +W_PIPELINE(N_DAI_OUT, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, 0, pipe_dai_schedule_plat)
# # Pipeline Graph diff --git a/topology/sof/pipe-passthrough-vol-playback.m4 b/topology/sof/pipe-passthrough-vol-playback.m4 index be3f9ec..ffc9000 100644 --- a/topology/sof/pipe-passthrough-vol-playback.m4 +++ b/topology/sof/pipe-passthrough-vol-playback.m4 @@ -65,7 +65,7 @@ W_DAI_OUT(DAI_SNAME, DAI_TYPE, DAI_INDEX, DAI_FORMAT, 0, DAI_PERIODS, # DAI pipeline - always use 0 for DAIs # W_PIPELINE(N_DAI_OUT, SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, - SCHEDULE_CORE, pipe_dai_schedule_plat) + SCHEDULE_CORE, 0, pipe_dai_schedule_plat)
# # Pipeline Graph diff --git a/topology/sof/pipe-pcm-media.m4 b/topology/sof/pipe-pcm-media.m4 index b766e23..b04b353 100644 --- a/topology/sof/pipe-pcm-media.m4 +++ b/topology/sof/pipe-pcm-media.m4 @@ -111,7 +111,7 @@ indir(`define', concat(`PIPELINE_SOURCE_', PIPELINE_ID), N_BUFFER(2)) # Pipeline Configuration. #
-W_PIPELINE(N_SRC(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_media_schedule_plat) +W_PIPELINE(N_SRC(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, 1, pipe_media_schedule_plat)
# # PCM Configuration diff --git a/topology/sof/pipe-tone.m4 b/topology/sof/pipe-tone.m4 index 0cfb73c..ccead10 100644 --- a/topology/sof/pipe-tone.m4 +++ b/topology/sof/pipe-tone.m4 @@ -84,4 +84,4 @@ indir(`define', concat(`PIPELINE_SOURCE_', PIPELINE_ID), N_BUFFER(1)) # Pipeline Configuration. #
-W_PIPELINE(N_TONE(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, pipe_tone_schedule_plat) +W_PIPELINE(N_TONE(0), SCHEDULE_DEADLINE, SCHEDULE_PRIORITY, SCHEDULE_FRAMES, SCHEDULE_CORE, 1, pipe_tone_schedule_plat) diff --git a/topology/sof/tokens.m4 b/topology/sof/tokens.m4 index 530220a..704effc 100644 --- a/topology/sof/tokens.m4 +++ b/topology/sof/tokens.m4 @@ -28,6 +28,7 @@ SectionVendorTokens."sof_sched_tokens" { SOF_TKN_SCHED_MIPS "202" SOF_TKN_SCHED_CORE "203" SOF_TKN_SCHED_FRAMES "204" + SOF_TKN_SCHED_TIMER "205" }
SectionVendorTokens."sof_volume_tokens" {