summaryrefslogtreecommitdiff
path: root/drivers/serial/sunsu.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2005-09-06 10:35:05 +0400
committerDavid S. Miller <davem@davemloft.net>2005-09-06 10:35:05 +0400
commit3d9c994840f0e217c391871ddbb84a506d275658 (patch)
tree982de5c45f41b6372f722fc3339f28be84c2efe9 /drivers/serial/sunsu.c
parente5e259466f2fe68251b1e1092949ef3d4dabb254 (diff)
downloadlinux-3d9c994840f0e217c391871ddbb84a506d275658.tar.xz
[SUNSU]: Compile fixes.
sunsu had been broken by ->stop_tx/->start_tx API changes. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/serial/sunsu.c')
-rw-r--r--drivers/serial/sunsu.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index 0cc879eb1c02..5959e6755a81 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -269,7 +269,10 @@ static void sunsu_stop_tx(struct uart_port *port)
__stop_tx(up);
- if (up->port.type == PORT_16C950 && tty_stop /*FIXME*/) {
+ /*
+ * We really want to stop the transmitter from sending.
+ */
+ if (up->port.type == PORT_16C950) {
up->acr |= UART_ACR_TXDIS;
serial_icr_write(up, UART_ACR, up->acr);
}
@@ -283,10 +286,11 @@ static void sunsu_start_tx(struct uart_port *port)
up->ier |= UART_IER_THRI;
serial_out(up, UART_IER, up->ier);
}
+
/*
- * We only do this from uart_start
+ * Re-enable the transmitter if we disabled it.
*/
- if (tty_start && up->port.type == PORT_16C950 /*FIXME*/) {
+ if (up->port.type == PORT_16C950 && up->acr & UART_ACR_TXDIS) {
up->acr &= ~UART_ACR_TXDIS;
serial_icr_write(up, UART_ACR, up->acr);
}