From ebb465e63e2dc1082bf38b378c72909276db0000 Mon Sep 17 00:00:00 2001 From: Venkata Manasa Kakarla Date: Mon, 5 Oct 2020 15:40:36 +0530 Subject: [PATCH] serial:msm_geni_serial: Handling the cts counter in uart driver Handle the CTS counter whenever the change in CTS interrupt occur. Using the M_IO_DATA_ASSERT bit in interrupt register, this will get set when CTS is high. Change-Id: I43c629f4d026af4a7e82d0d6d01b826259b0b1b5 Signed-off-by: Venkata Manasa Kakarla --- drivers/tty/serial/msm_geni_serial.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/msm_geni_serial.c b/drivers/tty/serial/msm_geni_serial.c index 9f3b02aa61ff..661a78d41107 100644 --- a/drivers/tty/serial/msm_geni_serial.c +++ b/drivers/tty/serial/msm_geni_serial.c @@ -122,7 +122,9 @@ #define DATA_BYTES_PER_LINE (32) #define M_IRQ_BITS (M_RX_FIFO_WATERMARK_EN | M_RX_FIFO_LAST_EN |\ - M_CMD_CANCEL_EN | M_CMD_ABORT_EN) + M_CMD_CANCEL_EN | M_CMD_ABORT_EN |\ + M_IO_DATA_ASSERT_EN | M_IO_DATA_DEASSERT_EN) + #define S_IRQ_BITS (S_RX_FIFO_WATERMARK_EN | S_RX_FIFO_LAST_EN |\ S_CMD_CANCEL_EN | S_CMD_ABORT_EN) #define DMA_TX_IRQ_BITS (TX_RESET_DONE | TX_DMA_DONE |\ @@ -2035,6 +2037,13 @@ static void msm_geni_serial_handle_isr(struct uart_port *uport, goto exit_geni_serial_isr; } + if (m_irq_status & (M_IO_DATA_ASSERT_EN | M_IO_DATA_DEASSERT_EN)) { + uport->icount.cts++; + IPC_LOG_MSG(msm_port->ipc_log_misc, + "%s. cts counter:%d\n", __func__, + uport->icount.cts); + } + if (s_irq_status & S_RX_FIFO_WR_ERR_EN) { uport->icount.overrun++; tty_insert_flip_char(tport, 0, TTY_OVERRUN);