TTY: switch tty_flip_buffer_push
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / card / sdio_uart.c
index bd57a11acc7949e7237be40a442c865c418c61a1..c931dfe6a59cb80ac893d3d2754eac7b9a07301d 100644 (file)
@@ -381,7 +381,6 @@ static void sdio_uart_stop_rx(struct sdio_uart_port *port)
 static void sdio_uart_receive_chars(struct sdio_uart_port *port,
                                    unsigned int *status)
 {
-       struct tty_struct *tty = tty_port_tty_get(&port->port);
        unsigned int ch, flag;
        int max_count = 256;
 
@@ -418,23 +417,19 @@ static void sdio_uart_receive_chars(struct sdio_uart_port *port,
                }
 
                if ((*status & port->ignore_status_mask & ~UART_LSR_OE) == 0)
-                       if (tty)
-                               tty_insert_flip_char(tty, ch, flag);
+                       tty_insert_flip_char(&port->port, ch, flag);
 
                /*
                 * Overrun is special.  Since it's reported immediately,
                 * it doesn't affect the current character.
                 */
                if (*status & ~port->ignore_status_mask & UART_LSR_OE)
-                       if (tty)
-                               tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+                       tty_insert_flip_char(&port->port, 0, TTY_OVERRUN);
 
                *status = sdio_in(port, UART_LSR);
        } while ((*status & UART_LSR_DR) && (max_count-- > 0));
-       if (tty) {
-               tty_flip_buffer_push(tty);
-               tty_kref_put(tty);
-       }
+
+       tty_flip_buffer_push(&port->port);
 }
 
 static void sdio_uart_transmit_chars(struct sdio_uart_port *port)