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

Commit 82e86ae9 authored by Dirk Behme's avatar Dirk Behme Committed by Greg Kroah-Hartman
Browse files

serial: imx: unmap scatter gather list in imx_flush_buffer



First, reformat the code to exit immediately. This allows us to add
more code in more readable format.

In case the TX DMA was still running, remove and disable it's resources.

Signed-off-by: default avatarDirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 24649821
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1250,10 +1250,17 @@ static void imx_shutdown(struct uart_port *port)
static void imx_flush_buffer(struct uart_port *port)
{
	struct imx_port *sport = (struct imx_port *)port;
	struct scatterlist *sgl = &sport->tx_sgl[0];

	if (!sport->dma_chan_tx)
		return;

	if (sport->dma_is_enabled) {
	sport->tx_bytes = 0;
	dmaengine_terminate_all(sport->dma_chan_tx);
	if (sport->dma_is_txing) {
		dma_unmap_sg(sport->port.dev, sgl, sport->dma_tx_nents,
			     DMA_TO_DEVICE);
		sport->dma_is_txing = false;
	}
}