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>
Fri, 10 Mar 2023 08:33:35 +0000 (09:33 +0100)
[ Upstream commit 9ad9df8447547febe9dd09b040f4528a09e495f0 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/tty/serial/fsl_lpuart.c

index 110c872..f6ac468 100644 (file)
@@ -1684,12 +1684,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;