From 8d08ca8e4872fef9bbe252c8f6a0af6c7e185a0e Mon Sep 17 00:00:00 2001 From: Prudhvi Yarlagadda Date: Wed, 25 Nov 2020 18:43:05 +0530 Subject: [PATCH] serial: msm_geni_serial: Correct start rx sequence Correct start_rx sequence to keep the dma buffers available before starting rx engine. This is needed to handle rx data which might come between starting of rx engine and having dma buffer available. Change-Id: I194890ba8f51d6a917d6b1682f6b21ca443ca38b Signed-off-by: Prudhvi Yarlagadda --- drivers/tty/serial/msm_geni_serial.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/msm_geni_serial.c b/drivers/tty/serial/msm_geni_serial.c index 6d7e6fd35397..e2d94c714226 100644 --- a/drivers/tty/serial/msm_geni_serial.c +++ b/drivers/tty/serial/msm_geni_serial.c @@ -1342,14 +1342,14 @@ static void start_rx_sequencer(struct uart_port *uport) msm_geni_serial_stop_rx(uport); } - /* Start RX with the RFR_OPEN to keep RFR in always ready state */ - msm_geni_serial_enable_interrupts(uport); - geni_setup_s_cmd(uport->membase, UART_START_READ, geni_se_param); - if (port->xfer_mode == SE_DMA) geni_se_rx_dma_start(uport->membase, DMA_RX_BUF_SIZE, &port->rx_dma); + /* Start RX with the RFR_OPEN to keep RFR in always ready state */ + geni_setup_s_cmd(uport->membase, UART_START_READ, geni_se_param); + msm_geni_serial_enable_interrupts(uport); + /* Ensure that the above writes go through */ mb(); geni_status = geni_read_reg_nolog(uport->membase, SE_GENI_STATUS);