serial: sprd: Use uart_xmit_advance()
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 19 Oct 2022 09:11:40 +0000 (12:11 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Nov 2022 02:35:42 +0000 (03:35 +0100)
Take advantage of the new uart_xmit_advance() helper.

Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20221019091151.6692-34-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sprd_serial.c

index 3f34f7bb77002c1d70821c9a0e65bf4cf2ea8091..492a3bdab5ba280c5367533944b8be60a7106bbc 100644 (file)
@@ -206,7 +206,6 @@ static void sprd_stop_tx_dma(struct uart_port *port)
 {
        struct sprd_uart_port *sp =
                container_of(port, struct sprd_uart_port, port);
-       struct circ_buf *xmit = &port->state->xmit;
        struct dma_tx_state state;
        u32 trans_len;
 
@@ -215,8 +214,7 @@ static void sprd_stop_tx_dma(struct uart_port *port)
        dmaengine_tx_status(sp->tx_dma.chn, sp->tx_dma.cookie, &state);
        if (state.residue) {
                trans_len = state.residue - sp->tx_dma.phys_addr;
-               xmit->tail = (xmit->tail + trans_len) & (UART_XMIT_SIZE - 1);
-               port->icount.tx += trans_len;
+               uart_xmit_advance(port, trans_len);
                dma_unmap_single(port->dev, sp->tx_dma.phys_addr,
                                 sp->tx_dma.trans_len, DMA_TO_DEVICE);
        }
@@ -253,8 +251,7 @@ static void sprd_complete_tx_dma(void *data)
        dma_unmap_single(port->dev, sp->tx_dma.phys_addr,
                         sp->tx_dma.trans_len, DMA_TO_DEVICE);
 
-       xmit->tail = (xmit->tail + sp->tx_dma.trans_len) & (UART_XMIT_SIZE - 1);
-       port->icount.tx += sp->tx_dma.trans_len;
+       uart_xmit_advance(port, sp->tx_dma.trans_len);
 
        if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
                uart_write_wakeup(port);