summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTudor Ambarus <tudor.ambarus@linaro.org>2024-01-19 10:45:08 +0000
committerSasha Levin <sashal@kernel.org>2024-03-26 18:22:42 -0400
commit6e839e4153c9881d79f94263fa352db35aa82b20 (patch)
tree27251f7439b90ed56ebc8743ab43d9ec1ef4f834
parente75ae3225cd1e1648c5140abf21d8c76b4b5e10a (diff)
downloadlinux-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.c5
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 */