serial: 8250_dma: Switch to using tty_port
[firefly-linux-kernel-4.4.55.git] / drivers / tty / serial / 8250 / 8250_dma.c
index 95516a15a4410a14d7479f4bff6601e74fefbb69..02333fc17f411514c115f89e87da357635c8cba1 100644 (file)
@@ -43,8 +43,9 @@ static void __dma_rx_complete(void *param)
 {
        struct uart_8250_port   *p = param;
        struct uart_8250_dma    *dma = p->dma;
-       struct tty_struct       *tty = p->port.state->port.tty;
+       struct tty_port         *tty_port = &p->port.state->port;
        struct dma_tx_state     state;
+       int                     count;
 
        dma_sync_single_for_cpu(dma->rxchan->device->dev, dma->rx_addr,
                                dma->rx_size, DMA_FROM_DEVICE);
@@ -52,10 +53,12 @@ static void __dma_rx_complete(void *param)
        dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state);
        dmaengine_terminate_all(dma->rxchan);
 
-       tty_insert_flip_string(tty, dma->rx_buf, dma->rx_size - state.residue);
-       p->port.icount.rx += dma->rx_size - state.residue;
+       count = dma->rx_size - state.residue;
 
-       tty_flip_buffer_push(tty);
+       tty_insert_flip_string(tty_port, dma->rx_buf, count);
+       p->port.icount.rx += count;
+
+       tty_flip_buffer_push(tty_port);
 }
 
 int serial8250_tx_dma(struct uart_8250_port *p)