[Sound-open-firmware] [PATCH] topology: pipeline: Add flag to selcect either timer or IRQ scheduling
Liam Girdwood
liam.r.girdwood at linux.intel.com
Mon Sep 11 17:13:59 CEST 2017
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 at 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" {
--
2.11.0
More information about the Sound-open-firmware
mailing list