Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dedc64e0 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Greg Kroah-Hartman
Browse files

serial: imx: Stop to receive in .stop_rx()



When the UART is used in DMA mode, .stop_rx() does nothing if the port
isn't suspended. This is wrong as .stop_rx() should stop receiving
characters unconditionally. When the port is about to be closed the DMA
channel is stopped in .shutdown(), so this isn't necessary to be in
.stop_rx() here, too.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 02b0abd3
Loading
Loading
Loading
Loading
+0 −9
Original line number Original line Diff line number Diff line
@@ -442,15 +442,6 @@ static void imx_stop_rx(struct uart_port *port)
	struct imx_port *sport = (struct imx_port *)port;
	struct imx_port *sport = (struct imx_port *)port;
	u32 ucr1, ucr2;
	u32 ucr1, ucr2;


	if (sport->dma_is_rxing) {
		if (sport->port.suspended) {
			dmaengine_terminate_all(sport->dma_chan_rx);
			sport->dma_is_rxing = 0;
		} else {
			return;
		}
	}

	ucr2 = imx_uart_readl(sport, UCR2);
	ucr2 = imx_uart_readl(sport, UCR2);
	imx_uart_writel(sport, ucr2 & ~UCR2_RXEN, UCR2);
	imx_uart_writel(sport, ucr2 & ~UCR2_RXEN, UCR2);