[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