Skip to content

Commit

Permalink
mux: ignore active sink on other pipeline
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
brentlu committed Oct 9, 2024
1 parent 1c7d769 commit 415b051
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/audio/mux/mux.c
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,9 @@ static int mux_sink_status_count(struct comp_dev *mux, uint32_t status)
source_list);
struct comp_buffer __sparse_cache *sink_c = buffer_acquire(sink);

if (sink_c->sink && sink_c->sink->state == status)
/* ignore active sink on other pipeline */
if (sink_c->sink && sink_c->sink->state == status &&
sink_c->sink->pipeline->pipeline_id == mux->pipeline->pipeline_id)
count++;
buffer_release(sink_c);
}
Expand Down

0 comments on commit 415b051

Please sign in to comment.