serial: tegra: clear tx_in_progress in flush func
Cleared tx_in_progress when tegra_uart_flush_buffer is called. If tegra_uart_flush_buffer is called before complete to transmit through DMA, next transmit could not be started because tx_in_progress is not cleared. Bug 3098159 Change-Id: I4b6b001314479313d7854d04a10d8394357a37cf Signed-off-by: Alvin Park <apark@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-4.9/+/2405363 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: automaticguardword <automaticguardword@nvidia.com> Reviewed-by: Hardik T Shah <hardikts@nvidia.com> Reviewed-by: Phoenix Jung <pjung@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Signed-off-by: CTCaer <ctcaer@gmail.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* High-speed serial driver for NVIDIA Tegra SoCs
|
* High-speed serial driver for NVIDIA Tegra SoCs
|
||||||
*
|
*
|
||||||
* Copyright (c) 2012-2019, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2012-2020, NVIDIA CORPORATION. All rights reserved.
|
||||||
*
|
*
|
||||||
* Author: Laxman Dewangan <ldewangan@nvidia.com>
|
* Author: Laxman Dewangan <ldewangan@nvidia.com>
|
||||||
*/
|
*/
|
||||||
@@ -1260,8 +1260,10 @@ static void tegra_uart_flush_buffer(struct uart_port *u)
|
|||||||
struct tegra_uart_port *tup = to_tegra_uport(u);
|
struct tegra_uart_port *tup = to_tegra_uport(u);
|
||||||
|
|
||||||
tup->tx_bytes = 0;
|
tup->tx_bytes = 0;
|
||||||
if (tup->tx_dma_chan)
|
if (tup->tx_dma_chan) {
|
||||||
dmaengine_terminate_all(tup->tx_dma_chan);
|
dmaengine_terminate_all(tup->tx_dma_chan);
|
||||||
|
tup->tx_in_progress = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tegra_uart_shutdown(struct uart_port *u)
|
static void tegra_uart_shutdown(struct uart_port *u)
|
||||||
|
|||||||
Reference in New Issue
Block a user