Skip to content

Commit d9499cf

Browse files
brentluabonislawski
authored andcommitted
mux: ignore active sink on other pipeline
When mux is on capture pipeline, sinks could not be active/paused when processing COMP_TRIGGER_STOP command. However, active sink could be on another pipeline and should be ignored or the pipeline task will not exit and cause DSP panic if the core running the task is disabled later. PCMP ----> smart_amp ----> SSP(A) # playback ppl ^ | PCMC <---- demux <----- SSP(B) # echo reference ppl Signed-off-by: Brent Lu <brent.lu@intel.com>
1 parent 1c7d769 commit d9499cf

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/audio/mux/mux.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,9 @@ static int mux_sink_status_count(struct comp_dev *mux, uint32_t status)
794794
source_list);
795795
struct comp_buffer __sparse_cache *sink_c = buffer_acquire(sink);
796796

797-
if (sink_c->sink && sink_c->sink->state == status)
797+
/* ignore active sink on other pipeline */
798+
if (sink_c->sink && sink_c->sink->state == status &&
799+
sink_c->sink->pipeline->pipeline_id == mux->pipeline->pipeline_id)
798800
count++;
799801
buffer_release(sink_c);
800802
}

0 commit comments

Comments
 (0)