module-adapter: attach and detach buffers correctly

When attaching multiple buffers via their uncached list heads, we
have to make sure to synchronise cache of adjacent buffers.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
Guennadi Liakhovetski 2022-12-12 15:33:11 +01:00 committed by Liam Girdwood
parent a95ea9bfb1
commit c426f810cb
1 changed files with 3 additions and 3 deletions

View File

@ -311,7 +311,7 @@ int module_adapter_prepare(struct comp_dev *dev)
goto free;
}
list_item_append(&buffer->sink_list, &mod->sink_buffer_list);
buffer_attach(buffer, &mod->sink_buffer_list, PPL_DIR_UPSTREAM);
buffer_c = buffer_acquire(buffer);
buffer_set_params(buffer_c, mod->stream_params, BUFFER_UPDATE_FORCE);
@ -347,7 +347,7 @@ free:
struct comp_buffer *buffer = container_of(blist, struct comp_buffer,
sink_list);
list_item_del(&buffer->sink_list);
buffer_detach(buffer, &mod->sink_buffer_list, PPL_DIR_UPSTREAM);
buffer_free(buffer);
}
out_free:
@ -911,7 +911,7 @@ void module_adapter_free(struct comp_dev *dev)
struct comp_buffer *buffer = container_of(blist, struct comp_buffer,
sink_list);
list_item_del(&buffer->sink_list);
buffer_detach(buffer, &mod->sink_buffer_list, PPL_DIR_UPSTREAM);
buffer_free(buffer);
}