aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/pmac_zilog.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/serial/pmac_zilog.c')
-rw-r--r--drivers/tty/serial/pmac_zilog.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/tty/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c
index e9d420ff3931..f7ad5b903055 100644
--- a/drivers/tty/serial/pmac_zilog.c
+++ b/drivers/tty/serial/pmac_zilog.c
@@ -653,6 +653,8 @@ static void pmz_start_tx(struct uart_port *port)
653 } else { 653 } else {
654 struct circ_buf *xmit = &port->state->xmit; 654 struct circ_buf *xmit = &port->state->xmit;
655 655
656 if (uart_circ_empty(xmit))
657 goto out;
656 write_zsdata(uap, xmit->buf[xmit->tail]); 658 write_zsdata(uap, xmit->buf[xmit->tail]);
657 zssync(uap); 659 zssync(uap);
658 xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); 660 xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
@@ -661,6 +663,7 @@ static void pmz_start_tx(struct uart_port *port)
661 if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) 663 if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
662 uart_write_wakeup(&uap->port); 664 uart_write_wakeup(&uap->port);
663 } 665 }
666 out:
664 pmz_debug("pmz: start_tx() done.\n"); 667 pmz_debug("pmz: start_tx() done.\n");
665} 668}
666 669
@@ -1092,7 +1095,7 @@ static void pmz_convert_to_zs(struct uart_pmac_port *uap, unsigned int cflag,
1092 uap->port.read_status_mask = Rx_OVR; 1095 uap->port.read_status_mask = Rx_OVR;
1093 if (iflag & INPCK) 1096 if (iflag & INPCK)
1094 uap->port.read_status_mask |= CRC_ERR | PAR_ERR; 1097 uap->port.read_status_mask |= CRC_ERR | PAR_ERR;
1095 if (iflag & (BRKINT | PARMRK)) 1098 if (iflag & (IGNBRK | BRKINT | PARMRK))
1096 uap->port.read_status_mask |= BRK_ABRT; 1099 uap->port.read_status_mask |= BRK_ABRT;
1097 1100
1098 uap->port.ignore_status_mask = 0; 1101 uap->port.ignore_status_mask = 0;