Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/audio/host.c
Original file line number Diff line number Diff line change
Expand Up @@ -839,8 +839,6 @@ static int host_copy(struct comp_dev *dev)

tracev_host("cpy");

if (dev->state != COMP_STATE_ACTIVE)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont see how this improve XRUN or pause release. This commit messages give no detail.

return 0;

local_elem = list_first_item(&hd->config.elem_list,
struct dma_sg_elem, list);
Expand Down
11 changes: 8 additions & 3 deletions src/audio/pipeline.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,6 @@ static void pipeline_trigger_sched_comp(struct pipeline *p,
switch (cmd) {
case COMP_TRIGGER_PAUSE:
case COMP_TRIGGER_STOP:
pipeline_schedule_cancel(p);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What stops this being (re)scheduled after STOP ?

p->status = COMP_STATE_PAUSED;
break;
case COMP_TRIGGER_RELEASE:
Expand Down Expand Up @@ -771,9 +770,12 @@ static int pipeline_copy_from_upstream(struct comp_dev *start,
buffer = container_of(clist, struct comp_buffer, sink_list);

/* don't go upstream if this component is not connected */
if (!buffer->connected || buffer->source->state != COMP_STATE_ACTIVE)
if (!buffer->connected)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will breal pipelines with a mixer, where closing one source stream will probably stop the sink stream (even if other source streams are active )?

continue;

if (buffer->source->state != COMP_STATE_ACTIVE)
trace_pipe_error("pus");

/* don't go upstream if this source is from another pipeline */
if (buffer->source->pipeline != current->pipeline)
continue;
Expand Down Expand Up @@ -834,9 +836,12 @@ static int pipeline_copy_to_downstream(struct comp_dev *start,
buffer = container_of(clist, struct comp_buffer, source_list);

/* don't go downstream if this component is not connected */
if (!buffer->connected || buffer->sink->state != COMP_STATE_ACTIVE)
if (!buffer->connected)
continue;

if (buffer->sink->state != COMP_STATE_ACTIVE)
trace_pipe_error("pds");

/* don't go downstream if this sink is from another pipeline */
if (buffer->sink->pipeline != current->pipeline)
continue;
Expand Down