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 <pyarlaga@codeaurora.org>
This commit is contained in:
Prudhvi Yarlagadda 2020-11-25 18:43:05 +05:30 • committed by Gerrit - the friendly Code Review server
commit 8d08ca8e48

View file

@ -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);