瀏覽代碼

serial: omap8250: Terminate rx dma only for flushes

DMA completed normally does not require termination; only terminate
paused rx dma stemming from rx dma flush.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Hurley 9 年之前
父節點
當前提交
d1f981506b
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/tty/serial/8250/8250_omap.c

+ 1 - 1
drivers/tty/serial/8250/8250_omap.c

@@ -767,7 +767,6 @@ static void __dma_rx_do_complete(struct uart_8250_port *p)
 
 	dma->rx_running = 0;
 	dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state);
-	dmaengine_terminate_all(dma->rxchan);
 
 	count = dma->rx_size - state.residue;
 
@@ -808,6 +807,7 @@ static void omap_8250_rx_dma_flush(struct uart_8250_port *p)
 	spin_unlock_irqrestore(&priv->rx_dma_lock, flags);
 
 	__dma_rx_do_complete(p);
+	dmaengine_terminate_all(dma->rxchan);
 }
 
 static int omap_8250_rx_dma(struct uart_8250_port *p)