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

Commit 84628948 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 6318d62c
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -1913,18 +1913,15 @@ static bool handle_tx_dma_xfer(u32 m_irq_status, struct uart_port *uport)
					SE_DMA_TX_IRQ_CLR);

		if (dma_tx_status & (TX_RESET_DONE | TX_GENI_CANCEL_IRQ))
			ret = true;

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

		if (ret)
			return ret;
			return true;

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

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

	return ret;
}

@@ -1985,10 +1982,10 @@ static bool handle_rx_dma_xfer(u32 s_irq_status, struct uart_port *uport)

		if (dma_rx_status & (RX_EOT | RX_GENI_CANCEL_IRQ | RX_DMA_DONE))
			ret = true;
	}

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

	return ret;
}