diff options
author | Tudor Ambarus <tudor.ambarus@linaro.org> | 2024-01-19 10:45:08 +0000 |
---|---|---|
committer | Sasha Levin <sashal@kernel.org> | 2024-03-26 18:22:42 -0400 |
commit | 6e839e4153c9881d79f94263fa352db35aa82b20 (patch) | |
tree | 27251f7439b90ed56ebc8743ab43d9ec1ef4f834 | |
parent | e75ae3225cd1e1648c5140abf21d8c76b4b5e10a (diff) | |
download | linux-stable-6e839e4153c9881d79f94263fa352db35aa82b20.tar.gz linux-stable-6e839e4153c9881d79f94263fa352db35aa82b20.tar.bz2 linux-stable-6e839e4153c9881d79f94263fa352db35aa82b20.zip |
tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT
[ Upstream commit 314c2b399288f0058a8c5b6683292cbde5f1531b ]
The core expects for tx_empty() either TIOCSER_TEMT when the tx is
empty or 0 otherwise. s3c24xx_serial_txempty_nofifo() might return
0x4, and at least uart_get_lsr_info() tries to clear exactly
TIOCSER_TEMT (BIT(1)). Fix tx_empty() to return TIOCSER_TEMT.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Link: https://lore.kernel.org/r/20240119104526.1221243-2-tudor.ambarus@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r-- | drivers/tty/serial/samsung.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 5f1f52cc6395..c76bf1c11e6f 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -800,11 +800,10 @@ static unsigned int s3c24xx_serial_tx_empty(struct uart_port *port) if ((ufstat & info->tx_fifomask) != 0 || (ufstat & info->tx_fifofull)) return 0; - - return 1; + return TIOCSER_TEMT; } - return s3c24xx_serial_txempty_nofifo(port); + return s3c24xx_serial_txempty_nofifo(port) ? TIOCSER_TEMT : 0; } /* no modem control lines */ |