Skip to content

Commit 110c61b

Browse files
Alain Volmatcfriedt
authored andcommitted
drivers: dma: stm32: avoid clear TE in case of hal_override
If hal_override is set, avoid reporting an error and clear the transfer error (TE) bit so that HAL code can properly handle it. Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
1 parent 3158211 commit 110c61b

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

drivers/dma/dma_stm32.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,13 @@ static void dma_stm32_irq_handler(const struct device *dev, uint32_t id)
133133
stream->dma_callback(dev, stream->user_data,
134134
callback_arg, -EIO);
135135
} else {
136-
LOG_ERR("Transfer Error.");
137-
stream->busy = false;
138-
dma_stm32_dump_stream_irq(dev, id);
139-
dma_stm32_clear_stream_irq(dev, id);
136+
/* Let HAL DMA handle flags on its own */
137+
if (!stream->hal_override) {
138+
LOG_ERR("Transfer Error.");
139+
stream->busy = false;
140+
dma_stm32_dump_stream_irq(dev, id);
141+
dma_stm32_clear_stream_irq(dev, id);
142+
}
140143
stream->dma_callback(dev, stream->user_data,
141144
callback_arg, -EIO);
142145
}

0 commit comments

Comments
 (0)