Переглянути джерело

[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>
Al Viro 20 роки тому
батько
коміт
3d9c994840
1 змінених файлів з 7 додано та 3 видалено
  1. 7 3
      drivers/serial/sunsu.c

+ 7 - 3
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);
 	}