From 7b21050f19968533212bb7a54236912ebef0431d Mon Sep 17 00:00:00 2001 From: Julien D'ascenzio Date: Tue, 26 Oct 2021 18:03:31 +0200 Subject: [PATCH] drivers/uart: stm32: fix a bug during transmission If a transmission is made with poll_out and immediately after an other transmission is made with interrupt api the transmission is locked. We fix this behavior by clearing the tx_poll_stream_on flag during the irq_tx_enable function Signed-off-by: Julien D'ascenzio --- drivers/serial/uart_stm32.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c index fc06d1ebc43..66cca05053e 100644 --- a/drivers/serial/uart_stm32.c +++ b/drivers/serial/uart_stm32.c @@ -594,11 +594,13 @@ static void uart_stm32_irq_tx_enable(const struct device *dev) { USART_TypeDef *UartInstance = UART_STRUCT(dev); - LL_USART_EnableIT_TC(UartInstance); - #ifdef CONFIG_PM + struct uart_stm32_data *data = DEV_DATA(dev); + + data->tx_poll_stream_on = false; uart_stm32_pm_constraint_set(dev); #endif + LL_USART_EnableIT_TC(UartInstance); } static void uart_stm32_irq_tx_disable(const struct device *dev)