TTY: switch tty_flip_buffer_push
[firefly-linux-kernel-4.4.55.git] / drivers / tty / serial / sunsu.c
index 220da3f9724f1398a802d3cdb3f87ca33d1aefed..e343d6670854e3b0fa097a0e66135daa065ce2b9 100644 (file)
@@ -315,10 +315,10 @@ static void sunsu_enable_ms(struct uart_port *port)
        spin_unlock_irqrestore(&up->port.lock, flags);
 }
 
-static struct tty_struct *
+static void
 receive_chars(struct uart_sunsu_port *up, unsigned char *status)
 {
-       struct tty_struct *tty = up->port.state->port.tty;
+       struct tty_port *port = &up->port.state->port;
        unsigned char ch, flag;
        int max_count = 256;
        int saw_console_brk = 0;
@@ -376,22 +376,20 @@ receive_chars(struct uart_sunsu_port *up, unsigned char *status)
                if (uart_handle_sysrq_char(&up->port, ch))
                        goto ignore_char;
                if ((*status & up->port.ignore_status_mask) == 0)
-                       tty_insert_flip_char(tty, ch, flag);
+                       tty_insert_flip_char(port, ch, flag);
                if (*status & UART_LSR_OE)
                        /*
                         * Overrun is special, since it's reported
                         * immediately, and doesn't affect the current
                         * character.
                         */
-                        tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+                        tty_insert_flip_char(port, 0, TTY_OVERRUN);
        ignore_char:
                *status = serial_inp(up, UART_LSR);
        } while ((*status & UART_LSR_DR) && (max_count-- > 0));
 
        if (saw_console_brk)
                sun_do_break();
-
-       return tty;
 }
 
 static void transmit_chars(struct uart_sunsu_port *up)
@@ -460,20 +458,16 @@ static irqreturn_t sunsu_serial_interrupt(int irq, void *dev_id)
        spin_lock_irqsave(&up->port.lock, flags);
 
        do {
-               struct tty_struct *tty;
-
                status = serial_inp(up, UART_LSR);
-               tty = NULL;
                if (status & UART_LSR_DR)
-                       tty = receive_chars(up, &status);
+                       receive_chars(up, &status);
                check_modem_status(up);
                if (status & UART_LSR_THRE)
                        transmit_chars(up);
 
                spin_unlock_irqrestore(&up->port.lock, flags);
 
-               if (tty)
-                       tty_flip_buffer_push(tty);
+               tty_flip_buffer_push(&up->port.state->port);
 
                spin_lock_irqsave(&up->port.lock, flags);