OSDN Git Service

tty: serial: fsl_lpuart: Fix the wrong RXWATER setting for rx dma case
authorSherry Sun <sherry.sun@nxp.com>
Mon, 30 Jan 2023 06:44:46 +0000 (14:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Jan 2023 09:53:39 +0000 (10:53 +0100)
The RXWATER value must be greater than 0 according to the LPUART
reference manual. And when the number of datawords in the receive
FIFO is greater than RXWATER, an interrupt or a DMA request is
generated, so no need to set the different value for lpuart interrupt
case and dma case. Here delete the wrong RXWATER setting for dma case
directly.

Fixes: 42b68768e51b ("serial: fsl_lpuart: DMA support for 32-bit variant")
Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
Link: https://lore.kernel.org/r/20230130064449.9564-4-sherry.sun@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/fsl_lpuart.c

index 868c278..ba6ade7 100644 (file)
@@ -1729,12 +1729,6 @@ static void lpuart32_configure(struct lpuart_port *sport)
 {
        unsigned long temp;
 
-       if (sport->lpuart_dma_rx_use) {
-               /* RXWATER must be 0 */
-               temp = lpuart32_read(&sport->port, UARTWATER);
-               temp &= ~(UARTWATER_WATER_MASK << UARTWATER_RXWATER_OFF);
-               lpuart32_write(&sport->port, temp, UARTWATER);
-       }
        temp = lpuart32_read(&sport->port, UARTCTRL);
        if (!sport->lpuart_dma_rx_use)
                temp |= UARTCTRL_RIE | UARTCTRL_ILIE;