lkml.org 
[lkml]   [2022]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 17/88] serial: imx: fix overrun interrupts in DMA mode
    Date
    From: Johan Hovold <johan@kernel.org>

    commit 3ee82c6e41f3d2212647ce0bc5a05a0f69097824 upstream.

    Commit 76821e222c18 ("serial: imx: ensure that RX irqs are off if RX is
    off") accidentally enabled overrun interrupts unconditionally when
    deferring DMA enable until after the receiver has been enabled during
    startup.

    Fix this by using the DMA-initialised instead of DMA-enabled flag to
    determine whether overrun interrupts should be enabled.

    Note that overrun interrupts are already accounted for in
    imx_uart_clear_rx_errors() when using DMA since commit 41d98b5da92f
    ("serial: imx-serial - update RX error counters when DMA is used").

    Fixes: 76821e222c18 ("serial: imx: ensure that RX irqs are off if RX is off")
    Cc: stable@vger.kernel.org # 4.17
    Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20220411081957.7846-1-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/tty/serial/imx.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/tty/serial/imx.c
    +++ b/drivers/tty/serial/imx.c
    @@ -1369,7 +1369,7 @@ static int imx_uart_startup(struct uart_
    imx_uart_writel(sport, ucr1, UCR1);

    ucr4 = imx_uart_readl(sport, UCR4) & ~UCR4_OREN;
    - if (!sport->dma_is_enabled)
    + if (!dma_is_inited)
    ucr4 |= UCR4_OREN;
    imx_uart_writel(sport, ucr4, UCR4);


    \
     
     \ /
      Last update: 2022-05-10 15:30    [W:2.937 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site