diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c index 13c85a5066d..191e4ebe5c0 100644 --- a/drivers/serial/uart_stm32.c +++ b/drivers/serial/uart_stm32.c @@ -1163,6 +1163,9 @@ static inline void async_evt_tx_done(struct uart_stm32_data *data) /* Reset tx buffer */ data->dma_tx.buffer_length = 0; data->dma_tx.counter = 0; +#ifdef CONFIG_PM + data->tx_int_stream_on = false; +#endif async_user_callback(data, &event); } @@ -1180,6 +1183,9 @@ static inline void async_evt_tx_abort(struct uart_stm32_data *data) /* Reset tx buffer */ data->dma_tx.buffer_length = 0; data->dma_tx.counter = 0; +#ifdef CONFIG_PM + data->tx_int_stream_on = false; +#endif async_user_callback(data, &event); } @@ -1603,6 +1609,10 @@ static int uart_stm32_async_tx(const struct device *dev, } #endif /* CONFIG_DCACHE */ +#ifdef CONFIG_PM + data->tx_poll_stream_on = false; + data->tx_int_stream_on = true; +#endif data->dma_tx.buffer = (uint8_t *)tx_data; data->dma_tx.buffer_length = buf_size; data->dma_tx.timeout = timeout;