Skip to content

Commit dd4c512

Browse files
buf: move chmap to stream_params structure
chmap is a parameter common for all types of buffers, should be accessible through sink/src api, so it needs to be kept in sof_audio_stream_params an API inroduced for accessing the parameter Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
1 parent 68d8ea0 commit dd4c512

File tree

11 files changed

+23
-12
lines changed

11 files changed

+23
-12
lines changed

src/audio/buffers/comp_buffer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ int buffer_set_params(struct comp_buffer *buffer,
440440

441441
audio_stream_set_buffer_fmt(&buffer->stream, params->buffer_fmt);
442442
for (i = 0; i < SOF_IPC_MAX_CHANNELS; i++)
443-
buffer->chmap[i] = params->chmap[i];
443+
audio_buffer_set_chmap(&buffer->audio_buffer, i, params->chmap[i]);
444444

445445
audio_buffer_set_hw_params_configured(&buffer->audio_buffer);
446446

src/audio/copier/copier_dai.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,8 @@ int copier_dai_params(struct copier_data *cd, struct comp_dev *dev,
540540
return ret;
541541

542542
for (j = 0; j < SOF_IPC_MAX_CHANNELS; j++)
543-
cd->dd[dai_index]->dma_buffer->chmap[j] = (cd->chan_map[dai_index] >> j * 4) & 0xf;
543+
audio_buffer_set_chmap(&cd->dd[dai_index]->dma_buffer->audio_buffer,
544+
j, (cd->chan_map[dai_index] >> j * 4) & 0xf);
544545

545546
/* set channel copy func */
546547
container_size = audio_stream_sample_bytes(&cd->multi_endpoint_buffer->stream);

src/audio/copier/copier_generic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ int create_endpoint_buffer(struct comp_dev *dev,
192192
copier_cfg->base.audio_fmt.interleaving_style);
193193

194194
for (i = 0; i < SOF_IPC_MAX_CHANNELS; i++)
195-
buffer->chmap[i] = (chan_map >> i * 4) & 0xf;
195+
audio_buffer_set_chmap(&buffer->audio_buffer, i, (chan_map >> i * 4) & 0xf);
196196

197197
audio_buffer_set_hw_params_configured(&buffer->audio_buffer);
198198

src/audio/dai-zephyr.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,8 @@ dai_dma_multi_endpoint_cb(struct dai_data *dd, struct comp_dev *dev, uint32_t fr
426426

427427
/* copy all channels one by one */
428428
for (i = 0; i < audio_stream_get_channels(&dd->dma_buffer->stream); i++) {
429-
uint32_t multi_buf_channel = dd->dma_buffer->chmap[i];
429+
uint32_t multi_buf_channel = audio_buffer_get_chmap(&dd->dma_buffer->audio_buffer,
430+
i);
430431

431432
if (dev->direction == SOF_IPC_STREAM_PLAYBACK)
432433
dd->channel_copy(&multi_endpoint_buffer->stream, multi_buf_channel,

src/audio/pipeline/pipeline-params.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ static void pipeline_update_buffer_pcm_params(struct comp_buffer *buffer,
121121
params->rate = audio_stream_get_rate(&buffer->stream);
122122
params->channels = audio_stream_get_channels(&buffer->stream);
123123
for (i = 0; i < SOF_IPC_MAX_CHANNELS; i++)
124-
params->chmap[i] = buffer->chmap[i];
124+
params->chmap[i] = audio_buffer_get_chmap(&buffer->audio_buffer, i);
125125
}
126126

127127
/* fetch hardware stream parameters from DAI */

src/include/ipc/stream.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@
2323
/*
2424
* Stream configuration.
2525
*/
26-
27-
#define SOF_IPC_MAX_CHANNELS 8
28-
2926
/* common sample rates for use in masks */
3027
#define SOF_RATE_8000 (1 << 0) /**< 8000Hz */
3128
#define SOF_RATE_11025 (1 << 1) /**< 11025Hz */

src/include/module/audio/audio_stream.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ struct sof_audio_stream_params {
5151

5252
uint32_t buffer_fmt; /**< enum sof_ipc_buffer_format */
5353

54+
uint16_t chmap[SOF_IPC_MAX_CHANNELS]; /**< channel map - SOF_CHMAP_ */
55+
5456
bool hw_params_configured; /**< indicates whether hw params were set */
5557
};
5658

src/include/module/ipc/stream.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#ifndef __MODULE_IPC_STREAM_H__
1111
#define __MODULE_IPC_STREAM_H__
1212

13+
#define SOF_IPC_MAX_CHANNELS 8
14+
1315
/* stream PCM frame format */
1416
enum sof_ipc_frame {
1517
SOF_IPC_FRAME_S16_LE = 0,

src/include/sof/audio/audio_buffer.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,17 @@ static inline void audio_buffer_reset_params(struct sof_audio_buffer *buffer)
194194
buffer->audio_stream_params->hw_params_configured = false;
195195
}
196196

197+
static inline uint16_t audio_buffer_get_chmap(struct sof_audio_buffer *buffer, size_t index)
198+
{
199+
return buffer->audio_stream_params->chmap[index];
200+
}
201+
202+
static inline void audio_buffer_set_chmap(struct sof_audio_buffer *buffer, size_t index,
203+
uint16_t value)
204+
{
205+
buffer->audio_stream_params->chmap[index] = value;
206+
}
207+
197208
/**
198209
* @brief return a handler to stream params structure
199210
*/

src/include/sof/audio/buffer.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,6 @@ struct comp_buffer {
141141
/* lists */
142142
struct list_item source_list; /* list in comp buffers */
143143
struct list_item sink_list; /* list in comp buffers */
144-
145-
/* runtime stream params */
146-
uint16_t chmap[SOF_IPC_MAX_CHANNELS]; /**< channel map - SOF_CHMAP_ */
147144
};
148145

149146
/* Only to be used for synchronous same-core notifications! */

0 commit comments

Comments
 (0)