[Sound-open-firmware] [PATCH] topology: Add format and scheduling info to DAI pipelines.

Liam Girdwood liam.r.girdwood at linux.intel.com
Wed Aug 30 23:56:16 CEST 2017


Some pipelines can be used to service DAIs before data is sent on to
other processing pipelines. Add scheduling and format info to DAI
pipelines.

Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
 topology/m4/build.m4         | 12 +++++++++++-
 topology/reef-apl-nocodec.m4 |  6 ++++--
 topology/reef-bdw-rt286.m4   |  6 ++++--
 topology/reef-bdw-rt5640.m4  |  6 ++++--
 topology/reef-bxt-nocodec.m4 |  6 ++++--
 topology/reef-byt-nocodec.m4 |  6 ++++--
 topology/reef-byt-rt5640.m4  |  6 ++++--
 topology/reef-byt-rt5651.m4  |  6 ++++--
 topology/reef-cht-nocodec.m4 |  6 ++++--
 topology/reef-hsw-rt5640.m4  |  6 ++++--
 10 files changed, 47 insertions(+), 19 deletions(-)

diff --git a/topology/m4/build.m4 b/topology/m4/build.m4
index 843dcbb..7d248da 100644
--- a/topology/m4/build.m4
+++ b/topology/m4/build.m4
@@ -81,7 +81,7 @@ define(`PIPELINE_ADD',
 `include($1)'
 )
 
-dnl DAI_ADD(pipeline, dai type, dai_index, stream_name, buffer, periods)
+dnl DAI_ADD(pipeline, dai type, dai_index, stream_name, buffer, periods, format, frames, deadline, priority, core)
 define(`DAI_ADD',
 `undefine(`PIPELINE_ID')'
 `undefine(`DAI_TYPE')'
@@ -89,6 +89,11 @@ define(`DAI_ADD',
 `undefine(`DAI_SNAME')'
 `undefine(`DAI_BUF')'
 `undefine(`DAI_PERIODS')'
+`undefine(`DAI_FORMAT')'
+`undefine(`SCHEDULE_FRAMES')'
+`undefine(`SCHEDULE_DEADLINE')'
+`undefine(`SCHEDULE_PRIORITY')'
+`undefine(`SCHEDULE_CORE')'
 `define(`PIPELINE_ID', 0)'
 `define(`DAI_TYPE', STR($2))'
 `define(`DAI_INDEX', STR($3))'
@@ -96,6 +101,11 @@ define(`DAI_ADD',
 `define(`DAI_BUF', $5)'
 `define(`DAI_NAME', $2$3)'
 `define(`DAI_PERIODS', $6)'
+`define(`DAI_FORMAT', $7)'
+`define(`SCHEDULE_FRAMES', $8)'
+`define(`SCHEDULE_DEADLINE', $9)'
+`define(`SCHEDULE_PRIORITY', $10)'
+`define(`SCHEDULE_CORE', $11)'
 `include($1)'
 )
 
diff --git a/topology/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4
index 93b57fe..ef80fd3 100644
--- a/topology/reef-apl-nocodec.m4
+++ b/topology/reef-apl-nocodec.m4
@@ -74,10 +74,12 @@ SectionGraph."pipe-apl-nocodec" {
 #
 
 # playback DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-bdw-rt286.m4 b/topology/reef-bdw-rt286.m4
index e4b600a..e3f8dd9 100644
--- a/topology/reef-bdw-rt286.m4
+++ b/topology/reef-bdw-rt286.m4
@@ -74,10 +74,12 @@ SectionGraph."pipe-bdw-rt286" {
 #
 
 # playback DAI is SSP0 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP0 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-bdw-rt5640.m4 b/topology/reef-bdw-rt5640.m4
index 5d96236..4344605 100644
--- a/topology/reef-bdw-rt5640.m4
+++ b/topology/reef-bdw-rt5640.m4
@@ -74,10 +74,12 @@ SectionGraph."pipe-bdw-rt5640" {
 #
 
 # playback DAI is SSP0 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP0 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-bxt-nocodec.m4 b/topology/reef-bxt-nocodec.m4
index a8fd320..2028323 100644
--- a/topology/reef-bxt-nocodec.m4
+++ b/topology/reef-bxt-nocodec.m4
@@ -74,10 +74,12 @@ SectionGraph."pipe-bxt-nocodec" {
 #
 
 # playback DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-byt-nocodec.m4 b/topology/reef-byt-nocodec.m4
index 01b223d..1c3cf5f 100644
--- a/topology/reef-byt-nocodec.m4
+++ b/topology/reef-byt-nocodec.m4
@@ -65,10 +65,12 @@ SectionGraph."pipe-byt-nocodec" {
 #
 
 # playback DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-byt-rt5640.m4 b/topology/reef-byt-rt5640.m4
index 00d31c7..0629d43 100644
--- a/topology/reef-byt-rt5640.m4
+++ b/topology/reef-byt-rt5640.m4
@@ -65,10 +65,12 @@ SectionGraph."pipe-byt-rt5640" {
 #
 
 # playback DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-byt-rt5651.m4 b/topology/reef-byt-rt5651.m4
index fd5263f..1b492b7 100644
--- a/topology/reef-byt-rt5651.m4
+++ b/topology/reef-byt-rt5651.m4
@@ -65,10 +65,12 @@ SectionGraph."pipe-byt-rt5651" {
 #
 
 # playback DAI is SSP2 using "Audio" DAPM stream name and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, Audio, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, Audio, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP2 using "Audio" DAPM stream name and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, Audio, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, Audio, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-cht-nocodec.m4 b/topology/reef-cht-nocodec.m4
index 334443b..ead0f75 100644
--- a/topology/reef-cht-nocodec.m4
+++ b/topology/reef-cht-nocodec.m4
@@ -65,10 +65,12 @@ SectionGraph."pipe-cht-nocodec" {
 #
 
 # playback DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP2 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
diff --git a/topology/reef-hsw-rt5640.m4 b/topology/reef-hsw-rt5640.m4
index 3a76223..e4d9392 100644
--- a/topology/reef-hsw-rt5640.m4
+++ b/topology/reef-hsw-rt5640.m4
@@ -74,10 +74,12 @@ SectionGraph."pipe-hsw-rt5640" {
 #
 
 # playback DAI is SSP0 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2, s24le, 48, 1000, 0, 0)
 
 # capture DAI is SSP0 using I2S DAPM stream and 2 periods
-DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2)
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priorty 0
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2, s24le, 48, 1000, 0, 0)
 
 #
 # BE configurations - overrides config in ACPI if present
-- 
2.11.0



More information about the Sound-open-firmware mailing list