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

Commit 83c8a8b1 authored by Akash Asthana's avatar Akash Asthana
Browse files

tty: serial: msm_geni_serial: Fix timeout for Rx abort



Fix false warning for RX abort command. Abort command sets abort
interrupt bit in s_irq_status register. Separate it from dma_rx_stat
block to handle it independently.

Interrupts generated for RX abort:
sirq:0x21 mirq:0x80000000 dma_txirq:0x0 dma_rxirq:0x0.

Change-Id: I927de3924f7527068807fadcd4f83742638ae802
Signed-off-by: default avatarAkash Asthana <akashast@codeaurora.org>
parent 79b29ad5
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -1994,13 +1994,13 @@ static void msm_geni_serial_handle_isr(struct uart_port *uport,
						TX_GENI_CANCEL_IRQ))
				m_cmd_done = true;

			if (m_irq_status & (M_CMD_CANCEL_EN | M_CMD_ABORT_EN))
				m_cmd_done = true;

			if ((dma_tx_status & TX_DMA_DONE) && !m_cmd_done)
				msm_geni_serial_handle_dma_tx(uport);
		}

		if (m_irq_status & (M_CMD_CANCEL_EN | M_CMD_ABORT_EN))
			m_cmd_done = true;

		if (dma_rx_status) {
			geni_write_reg_nolog(dma_rx_status, uport->membase,
						SE_DMA_RX_IRQ_CLR);
@@ -2053,11 +2053,11 @@ static void msm_geni_serial_handle_isr(struct uart_port *uport,
			if (dma_rx_status & (RX_EOT | RX_GENI_CANCEL_IRQ |
								RX_DMA_DONE))
				s_cmd_done = true;
		}

		if (s_irq_status & (S_CMD_CANCEL_EN | S_CMD_ABORT_EN))
			s_cmd_done = true;
	}
	}

exit_geni_serial_isr:
	if (m_cmd_done) {