From 095ed32dd71f95c4e6ed67b197ed82acb9f82c71 Mon Sep 17 00:00:00 2001 From: Mitul Golani Date: Mon, 29 Apr 2019 18:25:00 +0530 Subject: [PATCH] serial: msm_serial_hs: Align to HW assisted flow control support If client enables HW AUTOCTS mode then set UPSTAT_AUTOCTS,otherwise serial core disables TX fully at the framework layer and no communication happens. Signed-off-by: Mitul Golani Change-Id: I13d6048fc2aeacd2f0078fc38f43e07cfd5a5850 --- drivers/tty/serial/msm_serial_hs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c index 064494366f01..9a9ea7c62db1 100644 --- a/drivers/tty/serial/msm_serial_hs.c +++ b/drivers/tty/serial/msm_serial_hs.c @@ -3,7 +3,7 @@ * MSM 7k High speed uart driver * * Copyright (c) 2008 Google Inc. - * Copyright (c) 2007-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2007-2019, The Linux Foundation. All rights reserved. * Modified: Nick Pelly * * All source code in this file is licensed under the following license @@ -1185,6 +1185,7 @@ static void msm_hs_set_termios(struct uart_port *uport, data |= EIGHT_BPC; break; } + uport->status &= ~(UPSTAT_AUTOCTS); /* stop bits */ if (c_cflag & CSTOPB) { data |= STOP_BIT_TWO; @@ -1229,6 +1230,7 @@ static void msm_hs_set_termios(struct uart_port *uport, if (c_cflag & CRTSCTS) { data |= UARTDM_MR1_CTS_CTL_BMSK; data |= UARTDM_MR1_RX_RDY_CTL_BMSK; + uport->status |= UPSTAT_AUTOCTS; msm_uport->flow_control = true; } msm_hs_write(uport, UART_DM_MR1, data);