Skip to content

Commit 984b0ea

Browse files
smalaefabiobaltieri
authored andcommitted
drivers: dma: siwx917: Declare config parameters as const
Marked DMA configuration parameters(passed from application) as `const` Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
1 parent 3071190 commit 984b0ea

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

drivers/dma/dma_silabs_siwx91x.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,10 @@ static inline int siwx91x_dma_addr_adjustment(uint32_t adjustment)
9595
}
9696

9797
static int dma_channel_config(const struct device *dev, RSI_UDMA_HANDLE_T udma_handle,
98-
uint32_t channel, struct dma_config *config,
98+
uint32_t channel, const struct dma_config *config,
9999
UDMA_Channel_Info *channel_info)
100100
{
101+
uint32_t dma_transfer_num = config->head_block->block_size / config->source_data_size;
101102
const struct dma_siwx91x_config *cfg = dev->config;
102103
UDMA_RESOURCES udma_resources = {
103104
.reg = cfg->reg,
@@ -128,12 +129,11 @@ static int dma_channel_config(const struct device *dev, RSI_UDMA_HANDLE_T udma_h
128129
}
129130

130131
/* Obtain the number of transfers */
131-
config->head_block->block_size /= config->source_data_size;
132-
if (config->head_block->block_size >= DMA_MAX_TRANSFER_COUNT) {
132+
if (dma_transfer_num >= DMA_MAX_TRANSFER_COUNT) {
133133
/* Maximum number of transfers is 1024 */
134134
channel_control.totalNumOfDMATrans = DMA_MAX_TRANSFER_COUNT - 1;
135135
} else {
136-
channel_control.totalNumOfDMATrans = config->head_block->block_size;
136+
channel_control.totalNumOfDMATrans = dma_transfer_num;
137137
}
138138

139139
if (siwx91x_dma_data_width(config->source_data_size) < 0 ||
@@ -167,8 +167,9 @@ static int dma_channel_config(const struct device *dev, RSI_UDMA_HANDLE_T udma_h
167167
status = UDMAx_ChannelConfigure(&udma_resources, (uint8_t)channel,
168168
config->head_block->source_address,
169169
config->head_block->dest_address,
170-
config->head_block->block_size, channel_control,
171-
&channel_config, NULL, channel_info, udma_handle);
170+
dma_transfer_num, channel_control,
171+
&channel_config, NULL, channel_info,
172+
udma_handle);
172173
if (status) {
173174
return -EIO;
174175
}

0 commit comments

Comments
 (0)