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: Akash Asthana <akashast@codeaurora.org>
This commit is contained in:
Akash Asthana 2021-01-11 14:02:47 +05:30
commit 846289482b

View file

@ -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,11 +1982,11 @@ 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;
}
if (s_irq_status & (S_CMD_CANCEL_EN | S_CMD_ABORT_EN))
ret = true;
return ret;
}