pipeline: timer driven ppl copy called synchronously

Timer driven pipeline_copy should execute task
synchronously. No need to involve scheduler.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This commit is contained in:
Tomasz Lauda 2018-12-13 11:06:18 +01:00 committed by Liam Girdwood
parent 95c0a2136c
commit 0e4ab04d28
1 changed files with 8 additions and 2 deletions

View File

@ -1261,8 +1261,14 @@ static int pipeline_xrun_recover(struct pipeline *p)
/* notify pipeline that this component requires buffers emptied/filled */ /* notify pipeline that this component requires buffers emptied/filled */
void pipeline_schedule_copy(struct pipeline *p, uint64_t start) void pipeline_schedule_copy(struct pipeline *p, uint64_t start)
{ {
if (p->sched_comp->state == COMP_STATE_ACTIVE) if (p->sched_comp->state == COMP_STATE_ACTIVE) {
schedule_task(&p->pipe_task, start, p->ipc_pipe.deadline); /* timer driven pipeline should execute task synchronously */
if (p->ipc_pipe.timer_delay)
pipeline_copy(p->sched_comp);
else
schedule_task(&p->pipe_task, start,
p->ipc_pipe.deadline);
}
} }
/* notify pipeline that this component requires buffers emptied/filled /* notify pipeline that this component requires buffers emptied/filled