Skip to content

Commit b31388f

Browse files
dbalutaDaniel Baluta
authored andcommitted
buffers: Fix set_underrun/set_overrun calls
After commit 5821682 ("heap: simplify heap API") flags sent via IPC by the App processor are merged with caps. There is an overlap after this merged so SOF_BUF_OVERRUN_PERMITTED overlaps with SOF_MEM_FLAG_DMA for example. Also, it looks like the old `flags` are mostly unused. For now just remove the call audio_stream_set_underrun/audio_stream_set_overrun inside buffer_alloc_struct and set it in the buffer_new() function where we do have access to unmodified flags received from Linux. In the future, we might completely remove the `old` flags. Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
1 parent 42c0875 commit b31388f

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/audio/buffers/comp_buffer.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,6 @@ static struct comp_buffer *buffer_alloc_struct(void *stream_addr, size_t size,
217217
audio_stream_set_addr(&buffer->stream, stream_addr);
218218
buffer_init_stream(buffer, size);
219219

220-
audio_stream_set_underrun(&buffer->stream, !!(flags & SOF_BUF_UNDERRUN_PERMITTED));
221-
audio_stream_set_overrun(&buffer->stream, !!(flags & SOF_BUF_OVERRUN_PERMITTED));
222-
223220
comp_buffer_reset_source_list(buffer);
224221
comp_buffer_reset_sink_list(buffer);
225222

src/ipc/ipc-helper.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ __cold struct comp_buffer *buffer_new(const struct sof_ipc_buffer *desc, bool is
8585
buffer->stream.runtime_stream_params.pipeline_id = desc->comp.pipeline_id;
8686
buffer->core = desc->comp.core;
8787

88+
audio_stream_set_underrun(&buffer->stream,
89+
!!(desc->flags & SOF_BUF_UNDERRUN_PERMITTED));
90+
audio_stream_set_overrun(&buffer->stream,
91+
!!(desc->flags & SOF_BUF_OVERRUN_PERMITTED));
92+
8893
memcpy_s(&buffer->tctx, sizeof(struct tr_ctx),
8994
&buffer_tr, sizeof(struct tr_ctx));
9095
}

0 commit comments

Comments
 (0)