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

Commit 3ffb7e88 authored by Karthikeyan Ramasubramanian's avatar Karthikeyan Ramasubramanian
Browse files

tty: serial: msm_geni_serial: Configure the IO control registers



During handover from early console to regular console, configure the
IO control registers to avoid losing the console.

CRs-Fixed: 2124301
Change-Id: I73b7a41b77fcf37080c1eb7a69df3f76608700b3
Signed-off-by: default avatarKarthikeyan Ramasubramanian <kramasub@codeaurora.org>
parent f1826f49
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -527,6 +527,7 @@ static void msm_geni_serial_poll_cancel_tx(struct uart_port *uport)
static void msm_geni_serial_abort_rx(struct uart_port *uport)
{
	unsigned int irq_clear = S_CMD_DONE_EN;
	unsigned int io_op_ctrl = DEFAULT_IO_OUTPUT_CTRL_MSK;

	geni_abort_s_cmd(uport->membase);
	/* Ensure this goes through before polling. */
@@ -535,7 +536,10 @@ static void msm_geni_serial_abort_rx(struct uart_port *uport)
	msm_geni_serial_poll_bit(uport, SE_GENI_S_CMD_CTRL_REG,
					S_GENI_CMD_ABORT, false);
	geni_write_reg_nolog(irq_clear, uport->membase, SE_GENI_S_IRQ_CLEAR);
	geni_write_reg(io_op_ctrl, uport->membase, GENI_OUTPUT_CTRL);
	geni_write_reg(FORCE_DEFAULT, uport->membase, GENI_FORCE_DEFAULT_REG);
	/* Ensure this goes through before returning. */
	mb();
}

#ifdef CONFIG_CONSOLE_POLL
@@ -1470,6 +1474,9 @@ static int msm_geni_serial_port_setup(struct uart_port *uport)
	if (ret)
		goto exit_portsetup;

	geni_write_reg(0x7F, uport->membase, GENI_OUTPUT_CTRL);
	geni_write_reg(FORCE_DEFAULT, uport->membase, GENI_FORCE_DEFAULT_REG);

	msm_port->port_setup = true;
	/*
	 * Ensure Port setup related IO completes before returning to