From 137c90bbc6185b38c16f131e61c00ba4b6a8d2b1 Mon Sep 17 00:00:00 2001 From: Karol Trzcinski Date: Thu, 29 Oct 2020 16:28:54 +0100 Subject: [PATCH] buffer: Move functions using trace system to buffer.c Then trace location in output trace file is correct. Signed-off-by: Karol Trzcinski --- src/audio/buffer.c | 39 ++++++++++++++++ src/include/sof/audio/buffer.h | 44 ++----------------- test/cmocka/src/audio/component/mock.c | 6 +++ .../src/audio/pipeline/pipeline_mocks.c | 14 ++++++ 4 files changed, 63 insertions(+), 40 deletions(-) diff --git a/src/audio/buffer.c b/src/audio/buffer.c index 47b6e64b0..899fd3a84 100644 --- a/src/audio/buffer.c +++ b/src/audio/buffer.c @@ -99,6 +99,16 @@ struct comp_buffer *buffer_new(struct sof_ipc_buffer *desc) return buffer; } +void buffer_zero(struct comp_buffer *buffer) +{ + buf_dbg(buffer, "stream_zero()"); + + bzero(buffer->stream.addr, buffer->stream.size); + if (buffer->caps & SOF_MEM_CAPS_DMA) + dcache_writeback_region(buffer->stream.addr, + buffer->stream.size); +} + int buffer_set_size(struct comp_buffer *buffer, uint32_t size) { void *new_ptr = NULL; @@ -131,6 +141,35 @@ int buffer_set_size(struct comp_buffer *buffer, uint32_t size) return 0; } +int buffer_set_params(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, + bool force_update) +{ + int ret; + int i; + + if (!params) { + buf_err(buffer, "buffer_set_params(): !params"); + return -EINVAL; + } + + if (buffer->hw_params_configured && !force_update) + return 0; + + ret = audio_stream_set_params(&buffer->stream, params); + if (ret < 0) { + buf_err(buffer, "buffer_set_params(): audio_stream_set_params failed"); + return -EINVAL; + } + + buffer->buffer_fmt = params->buffer_fmt; + for (i = 0; i < SOF_IPC_MAX_CHANNELS; i++) + buffer->chmap[i] = params->chmap[i]; + + buffer->hw_params_configured = true; + + return 0; +} + bool buffer_params_match(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, uint32_t flag) { diff --git a/src/include/sof/audio/buffer.h b/src/include/sof/audio/buffer.h index d70f0d1f1..b5f7f83b7 100644 --- a/src/include/sof/audio/buffer.h +++ b/src/include/sof/audio/buffer.h @@ -158,6 +158,7 @@ struct comp_buffer *buffer_alloc(uint32_t size, uint32_t caps, uint32_t align); struct comp_buffer *buffer_new(struct sof_ipc_buffer *desc); int buffer_set_size(struct comp_buffer *buffer, uint32_t size); void buffer_free(struct comp_buffer *buffer); +void buffer_zero(struct comp_buffer *buffer); /* called by a component after producing data into this buffer */ void comp_update_buffer_produce(struct comp_buffer *buffer, uint32_t bytes); @@ -165,6 +166,9 @@ void comp_update_buffer_produce(struct comp_buffer *buffer, uint32_t bytes); /* called by a component after consuming data from this buffer */ void comp_update_buffer_consume(struct comp_buffer *buffer, uint32_t bytes); +int buffer_set_params(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, + bool force_update); + bool buffer_params_match(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, uint32_t flag); @@ -224,16 +228,6 @@ static inline void buffer_unlock(struct comp_buffer *buffer, uint32_t flags) spin_unlock_irq(lock, flags); } -static inline void buffer_zero(struct comp_buffer *buffer) -{ - buf_dbg(buffer, "stream_zero()"); - - bzero(buffer->stream.addr, buffer->stream.size); - if (buffer->caps & SOF_MEM_CAPS_DMA) - dcache_writeback_region(buffer->stream.addr, - buffer->stream.size); -} - static inline void buffer_reset_pos(struct comp_buffer *buffer, void *data) { uint32_t flags = 0; @@ -269,34 +263,4 @@ static inline void buffer_reset_params(struct comp_buffer *buffer, void *data) buffer_unlock(buffer, flags); } -static inline int buffer_set_params(struct comp_buffer *buffer, - struct sof_ipc_stream_params *params, - bool force_update) -{ - int ret; - int i; - - if (!params) { - buf_err(buffer, "buffer_set_params(): !params"); - return -EINVAL; - } - - if (buffer->hw_params_configured && !force_update) - return 0; - - ret = audio_stream_set_params(&buffer->stream, params); - if (ret < 0) { - buf_err(buffer, "buffer_set_params(): audio_stream_set_params failed"); - return -EINVAL; - } - - buffer->buffer_fmt = params->buffer_fmt; - for (i = 0; i < SOF_IPC_MAX_CHANNELS; i++) - buffer->chmap[i] = params->chmap[i]; - - buffer->hw_params_configured = true; - - return 0; -} - #endif /* __SOF_AUDIO_BUFFER_H__ */ diff --git a/test/cmocka/src/audio/component/mock.c b/test/cmocka/src/audio/component/mock.c index b54ceee3e..dfb6f725f 100644 --- a/test/cmocka/src/audio/component/mock.c +++ b/test/cmocka/src/audio/component/mock.c @@ -48,4 +48,10 @@ struct sof *sof_get(void) return &sof; } +int buffer_set_params(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, + bool force_update) +{ + return 0; +} + #endif diff --git a/test/cmocka/src/audio/pipeline/pipeline_mocks.c b/test/cmocka/src/audio/pipeline/pipeline_mocks.c index 6e1fabaab..7e91f63f8 100644 --- a/test/cmocka/src/audio/pipeline/pipeline_mocks.c +++ b/test/cmocka/src/audio/pipeline/pipeline_mocks.c @@ -131,6 +131,20 @@ int comp_verify_params(struct comp_dev *dev, uint32_t flag, return 0; } +void buffer_zero(struct comp_buffer *buffer) +{ + (void)buffer; +} + +int buffer_set_params(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, + bool force_update) +{ + (void)buffer; + (void)params; + (void)force_update; + return 0; +} + bool buffer_params_match(struct comp_buffer *buffer, struct sof_ipc_stream_params *params, uint32_t flag) {