mirror of https://github.com/thesofproject/sof.git
SMP: Fix improper cache invalidation.
Cache was invalidated in improper order, which led to using rubbish data on slave core during pipeline trigger start. Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
This commit is contained in:
parent
84de2e32c9
commit
73cfb3c92f
|
@ -120,12 +120,13 @@ static int pipeline_for_each_comp(struct comp_dev *current,
|
|||
/* run this operation further */
|
||||
list_for_item(clist, buffer_list) {
|
||||
buffer = buffer_from_list(clist, struct comp_buffer, dir);
|
||||
buffer_comp = buffer_get_comp(buffer, dir);
|
||||
|
||||
/* execute operation on buffer */
|
||||
if (buff_func)
|
||||
buff_func(buffer);
|
||||
|
||||
buffer_comp = buffer_get_comp(buffer, dir);
|
||||
|
||||
/* don't go further if this component is not connected */
|
||||
if (!buffer_comp)
|
||||
continue;
|
||||
|
@ -364,14 +365,14 @@ static int pipeline_comp_cache(struct comp_dev *current, void *data, int dir)
|
|||
tracev_pipe("pipeline_comp_cache(), current->comp.id = %u, dir = %u",
|
||||
current->comp.id, dir);
|
||||
|
||||
comp_cache(current, ppl_data->cmd);
|
||||
|
||||
if (!comp_is_single_pipeline(current, ppl_data->start)) {
|
||||
tracev_pipe("pipeline_comp_cache(), "
|
||||
"current is from another pipeline");
|
||||
return 0;
|
||||
}
|
||||
|
||||
comp_cache(current, ppl_data->cmd);
|
||||
|
||||
return pipeline_for_each_comp(current, &pipeline_comp_cache, data,
|
||||
comp_buffer_cache_op(ppl_data->cmd),
|
||||
dir);
|
||||
|
|
Loading…
Reference in New Issue