summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/serial-tegra.c
diff options
context:
space:
mode:
authorPradeep Goudagunta <pgoudagunta@nvidia.com>2014-06-06 16:48:08 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-07-10 15:53:20 -0700
commit5e3dbfca3b14a4a2950255c1628cd53b384d963e (patch)
tree179c7922d6132716bbf39ed758c3321b2bcb6264 /drivers/tty/serial/serial-tegra.c
parent080029b149258b9ccb05f26ee5f5d18e359bce2d (diff)
downloadop-kernel-dev-5e3dbfca3b14a4a2950255c1628cd53b384d963e.zip
op-kernel-dev-5e3dbfca3b14a4a2950255c1628cd53b384d963e.tar.gz
serial: tegra: update tx_circular buffer only when TX_DMA is in progress
When channel is require to stop transmit then update the Tx circular buffer only when DMA based transfer is in progress. If there is no DMA based transfer then no need to update the Tx buffer. Signed-off-by: Pradeep Goudagunta <pgoudagunta@nvidia.com> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/serial-tegra.c')
-rw-r--r--drivers/tty/serial/serial-tegra.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/tty/serial/serial-tegra.c b/drivers/tty/serial/serial-tegra.c
index d5c2a28..117d8d13 100644
--- a/drivers/tty/serial/serial-tegra.c
+++ b/drivers/tty/serial/serial-tegra.c
@@ -482,6 +482,9 @@ static void tegra_uart_stop_tx(struct uart_port *u)
struct dma_tx_state state;
int count;
+ if (tup->tx_in_progress != TEGRA_UART_TX_DMA)
+ return;
+
dmaengine_terminate_all(tup->tx_dma_chan);
dmaengine_tx_status(tup->tx_dma_chan, tup->tx_cookie, &state);
count = tup->tx_bytes_requested - state.residue;
OpenPOWER on IntegriCloud