[Sound-open-firmware] [PATCH] pipeline: copy: Only perform copy within pipeline
Liam Girdwood
liam.r.girdwood at linux.intel.com
Wed Sep 20 15:58:00 CEST 2017
Don't propagate the copy into other pipelines that may have different
scheduling.
Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
src/audio/pipeline.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/audio/pipeline.c b/src/audio/pipeline.c
index 626cc92..2800d64 100644
--- a/src/audio/pipeline.c
+++ b/src/audio/pipeline.c
@@ -691,6 +691,10 @@ static int pipeline_copy_from_upstream(struct comp_dev *start,
if (!buffer->connected || buffer->source->state != COMP_STATE_RUNNING)
continue;
+ /* dont go upstream if this source is from another pipeline */
+ if (buffer->source->pipeline != current->pipeline)
+ continue;
+
/* continue upstream */
err = pipeline_copy_from_upstream(start, buffer->source);
if (err < 0) {
@@ -745,6 +749,10 @@ static int pipeline_copy_to_downstream(struct comp_dev *start,
if (!buffer->connected || buffer->sink->state != COMP_STATE_RUNNING)
continue;
+ /* dont go downstream if this sink is from another pipeline */
+ if (buffer->sink->pipeline != current->pipeline)
+ continue;
+
/* continue downstream */
err = pipeline_copy_to_downstream(start, buffer->sink);
if (err < 0) {
--
2.11.0
More information about the Sound-open-firmware
mailing list