TTY: switch tty_flip_buffer_push
[linux-2.6-block.git] / drivers / tty / serial / bfin_sport_uart.c
index f5d117379b605653b4e8641e94490b92723e2eb4..487c173b0f72f107f1c671175908e47936f98186 100644 (file)
@@ -149,7 +149,7 @@ static int sport_uart_setup(struct sport_uart_port *up, int size, int baud_rate)
 static irqreturn_t sport_uart_rx_irq(int irq, void *dev_id)
 {
        struct sport_uart_port *up = dev_id;
-       struct tty_struct *tty = up->port.state->port.tty;
+       struct tty_port *port = &up->port.state->port;
        unsigned int ch;
 
        spin_lock(&up->port.lock);
@@ -159,9 +159,10 @@ static irqreturn_t sport_uart_rx_irq(int irq, void *dev_id)
                up->port.icount.rx++;
 
                if (!uart_handle_sysrq_char(&up->port, ch))
-                       tty_insert_flip_char(tty, ch, TTY_NORMAL);
+                       tty_insert_flip_char(port, ch, TTY_NORMAL);
        }
-       tty_flip_buffer_push(tty);
+       /* XXX this won't deadlock with lowlat? */
+       tty_flip_buffer_push(port);
 
        spin_unlock(&up->port.lock);
 
@@ -182,7 +183,6 @@ static irqreturn_t sport_uart_tx_irq(int irq, void *dev_id)
 static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
 {
        struct sport_uart_port *up = dev_id;
-       struct tty_struct *tty = up->port.state->port.tty;
        unsigned int stat = SPORT_GET_STAT(up);
 
        spin_lock(&up->port.lock);
@@ -190,7 +190,7 @@ static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
        /* Overflow in RX FIFO */
        if (stat & ROVF) {
                up->port.icount.overrun++;
-               tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+               tty_insert_flip_char(&up->port.state->port, 0, TTY_OVERRUN);
                SPORT_PUT_STAT(up, ROVF); /* Clear ROVF bit */
        }
        /* These should not happen */
@@ -205,6 +205,8 @@ static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
        SSYNC();
 
        spin_unlock(&up->port.lock);
+       /* XXX we don't push the overrun bit to TTY? */
+
        return IRQ_HANDLED;
 }