diff -urN RC13-git3-sata_qstor/drivers/serial/sunsu.c RC13-git3-sunsu/drivers/serial/sunsu.c --- RC13-git3-sata_qstor/drivers/serial/sunsu.c 2005-09-02 14:09:46.000000000 -0400 +++ RC13-git3-sunsu/drivers/serial/sunsu.c 2005-09-04 08:52:53.000000000 -0400 @@ -269,7 +269,10 @@ __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 @@ 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); }