|
@@ -266,9 +266,11 @@ static void m32r_sio_start_tx(struct uart_port *port)
|
|
|
if (!(up->ier & UART_IER_THRI)) {
|
|
|
up->ier |= UART_IER_THRI;
|
|
|
serial_out(up, UART_IER, up->ier);
|
|
|
- serial_out(up, UART_TX, xmit->buf[xmit->tail]);
|
|
|
- xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
|
|
|
- up->port.icount.tx++;
|
|
|
+ if (!uart_circ_empty(xmit)) {
|
|
|
+ serial_out(up, UART_TX, xmit->buf[xmit->tail]);
|
|
|
+ xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
|
|
|
+ up->port.icount.tx++;
|
|
|
+ }
|
|
|
}
|
|
|
while((serial_in(up, UART_LSR) & UART_EMPTY) != UART_EMPTY);
|
|
|
#else
|