diff options
Diffstat (limited to 'drivers/serial/sunsu.c')
-rw-r--r-- | drivers/serial/sunsu.c | 10 |
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) | |||
269 | 269 | ||
270 | __stop_tx(up); | 270 | __stop_tx(up); |
271 | 271 | ||
272 | if (up->port.type == PORT_16C950 && tty_stop /*FIXME*/) { | 272 | /* |
273 | * We really want to stop the transmitter from sending. | ||
274 | */ | ||
275 | if (up->port.type == PORT_16C950) { | ||
273 | up->acr |= UART_ACR_TXDIS; | 276 | up->acr |= UART_ACR_TXDIS; |
274 | serial_icr_write(up, UART_ACR, up->acr); | 277 | serial_icr_write(up, UART_ACR, up->acr); |
275 | } | 278 | } |
@@ -283,10 +286,11 @@ static void sunsu_start_tx(struct uart_port *port) | |||
283 | up->ier |= UART_IER_THRI; | 286 | up->ier |= UART_IER_THRI; |
284 | serial_out(up, UART_IER, up->ier); | 287 | serial_out(up, UART_IER, up->ier); |
285 | } | 288 | } |
289 | |||
286 | /* | 290 | /* |
287 | * We only do this from uart_start | 291 | * Re-enable the transmitter if we disabled it. |
288 | */ | 292 | */ |
289 | if (tty_start && up->port.type == PORT_16C950 /*FIXME*/) { | 293 | if (up->port.type == PORT_16C950 && up->acr & UART_ACR_TXDIS) { |
290 | up->acr &= ~UART_ACR_TXDIS; | 294 | up->acr &= ~UART_ACR_TXDIS; |
291 | serial_icr_write(up, UART_ACR, up->acr); | 295 | serial_icr_write(up, UART_ACR, up->acr); |
292 | } | 296 | } |