serial: mpc52xx: let tx_empty callback return either 0 or TIOCSER_TEMT
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 27 Jul 2015 16:09:33 +0000 (18:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2015 05:07:20 +0000 (22:07 -0700)
Documenation/serial/driver requests that the tx_empty callback should
return 0 if there are still chars in the fifo or shifter or TIOCSER_TEMT
(0x01) if no character is pending to be sent.

Fix the mpc52xx serial driver to not return MPC52xx_PSC_SR_TXEMP (i.e.
0x0800) but TIOCSER_TEMT as documented.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/mpc52xx_uart.c

index 6fc07eb9d74ef6b9b4c2d81ae98c91c822f61e47..41de374d9784384ece372732e972a3de7c52e84f 100644 (file)
@@ -239,8 +239,9 @@ static int mpc52xx_psc_tx_rdy(struct uart_port *port)
 
 static int mpc52xx_psc_tx_empty(struct uart_port *port)
 {
-       return in_be16(&PSC(port)->mpc52xx_psc_status)
-           & MPC52xx_PSC_SR_TXEMP;
+       u16 sts = in_be16(&PSC(port)->mpc52xx_psc_status);
+
+       return (sts & MPC52xx_PSC_SR_TXEMP) ? TIOCSER_TEMT : 0;
 }
 
 static void mpc52xx_psc_start_tx(struct uart_port *port)
This page took 0.027337 seconds and 5 git commands to generate.