tty: 8250_omap: use dmaengine_prep_slave_sg()
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Fri, 5 Apr 2024 06:08:21 +0000 (08:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Apr 2024 13:28:03 +0000 (15:28 +0200)
This is a preparatory for the serial-to-kfifo switch. kfifo understands
only scatter-gatter approach, so switch to that.

No functional change intended, it's just dmaengine_prep_slave_single()
inline expanded.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20240405060826.2521-11-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_omap.c

index 66901d93089a3cbcd3e0f7d16f85936cc859f30c..879e77b307014ff51368902c9124cc8cc55366f2 100644 (file)
@@ -1140,6 +1140,7 @@ static int omap_8250_tx_dma(struct uart_8250_port *p)
        struct omap8250_priv            *priv = p->port.private_data;
        struct circ_buf                 *xmit = &p->port.state->xmit;
        struct dma_async_tx_descriptor  *desc;
+       struct scatterlist sg;
        unsigned int    skip_byte = 0;
        int ret;
 
@@ -1191,9 +1192,11 @@ static int omap_8250_tx_dma(struct uart_8250_port *p)
                skip_byte = 1;
        }
 
-       desc = dmaengine_prep_slave_single(dma->txchan,
-                       dma->tx_addr + xmit->tail + skip_byte,
-                       dma->tx_size - skip_byte, DMA_MEM_TO_DEV,
+       sg_init_table(&sg, 1);
+       sg_dma_address(&sg) = dma->tx_addr + xmit->tail + skip_byte;
+       sg_dma_len(&sg) = dma->tx_size - skip_byte;
+
+       desc = dmaengine_prep_slave_sg(dma->txchan, &sg, 1, DMA_MEM_TO_DEV,
                        DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
        if (!desc) {
                ret = -EBUSY;