+++ /dev/null
-From 2d843653785d83e84dd658e7ca9643ae0a42aaa5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 4 Mar 2021 17:23:07 +0100
-Subject: serial: stm32: fix tx_empty condition
-
-From: Erwan Le Ray <erwan.leray@foss.st.com>
-
-[ Upstream commit 3db1d52466dc11dca4e47ef12a6e6e97f846af62 ]
-
-In "tx_empty", we should poll TC bit in both DMA and PIO modes (instead of
-TXE) to check transmission data register has been transmitted independently
-of the FIFO mode. TC indicates that both transmit register and shift
-register are empty. When shift register is empty, tx_empty should return
-TIOCSER_TEMT instead of TC value.
-
-Cleans the USART_CR_TC TCCF register define (transmission complete clear
-flag) as it is duplicate of USART_ICR_TCCF.
-
-Fixes: 48a6092fb41f ("serial: stm32-usart: Add STM32 USART Driver")
-Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>
-Link: https://lore.kernel.org/r/20210304162308.8984-13-erwan.leray@foss.st.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/tty/serial/stm32-usart.c | 5 ++++-
- drivers/tty/serial/stm32-usart.h | 3 ---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c
-index f325019887b2..25a92bf4067d 100644
---- a/drivers/tty/serial/stm32-usart.c
-+++ b/drivers/tty/serial/stm32-usart.c
-@@ -355,7 +355,10 @@ static unsigned int stm32_tx_empty(struct uart_port *port)
- struct stm32_port *stm32_port = to_stm32_port(port);
- struct stm32_usart_offsets *ofs = &stm32_port->info->ofs;
-
-- return readl_relaxed(port->membase + ofs->isr) & USART_SR_TXE;
-+ if (readl_relaxed(port->membase + ofs->isr) & USART_SR_TC)
-+ return TIOCSER_TEMT;
-+
-+ return 0;
- }
-
- static void stm32_set_mctrl(struct uart_port *port, unsigned int mctrl)
-diff --git a/drivers/tty/serial/stm32-usart.h b/drivers/tty/serial/stm32-usart.h
-index cd97ceb76e4f..377d510d77bc 100644
---- a/drivers/tty/serial/stm32-usart.h
-+++ b/drivers/tty/serial/stm32-usart.h
-@@ -99,9 +99,6 @@ struct stm32_usart_info stm32f7_info = {
- /* Dummy bits */
- #define USART_SR_DUMMY_RX BIT(16)
-
--/* USART_ICR (F7) */
--#define USART_CR_TC BIT(6)
--
- /* USART_DR */
- #define USART_DR_MASK GENMASK(8, 0)
-
---
-2.30.2
-