Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7283d75b authored by Prudhvi Yarlagadda's avatar Prudhvi Yarlagadda
Browse files

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: default avatarPrudhvi Yarlagadda <pyarlaga@codeaurora.org>
parent 286149f5
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1362,14 +1362,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);