[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