pipeline: copy: Only perform copy within pipeline

Don't propagate the copy into other pipelines that may have different
scheduling.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This commit is contained in:
Liam Girdwood 2017-09-15 15:23:06 +01:00
parent 875a5094eb
commit 2550480f80
1 changed files with 8 additions and 0 deletions

View File

@ -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) {