From e00f91da419c2afeaa87c422abb1525b510bb470 Mon Sep 17 00:00:00 2001 From: Francois Ramu Date: Tue, 4 Oct 2022 17:18:42 +0200 Subject: [PATCH] drivers: serial: uart driver for stm32U5 suspends dma channel When DMA transfer is enabled on the stm32U5, the UART Tx channel must be suspended before stopping. This will let the on-going transfer ends properly Signed-off-by: Francois Ramu --- drivers/serial/uart_stm32.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c index f2b258acfb9..d9730ffbf57 100644 --- a/drivers/serial/uart_stm32.c +++ b/drivers/serial/uart_stm32.c @@ -1377,6 +1377,9 @@ static int uart_stm32_async_tx_abort(const struct device *dev) data->dma_tx.counter = tx_buffer_length - stat.pending_length; } +#if DT_HAS_COMPAT_STATUS_OKAY(st_stm32u5_dma) + dma_suspend(data->dma_tx.dma_dev, data->dma_tx.dma_channel); +#endif /* st_stm32u5_dma */ dma_stop(data->dma_tx.dma_dev, data->dma_tx.dma_channel); async_evt_tx_abort(data);