ENGR000122300 fix iMX23 auart output wrong error message

AUART should not output error when modem status interrupt pending,
hardware does not support DSRMIS,DCDMIS and RIMIS bit.

Signed-off-by: Frank Li <Frank.Li@freescale.com>
This commit is contained in:
Frank Li
2010-04-19 14:12:50 +08:00
committed by Matt Sealey
parent eaaee1c156
commit be7b51f402

View File

@@ -565,9 +565,33 @@ static irqreturn_t mxs_auart_irq_handle(int irq, void *context)
mxs_auart_tx_chars(s);
istat &= ~BM_UARTAPP_INTR_TXIS;
}
if (istat & 0xFFFF)
/* modem status interrupt bits are undefined
after reset,and the hardware do not support
DSRMIS,DCDMIS and RIMIS bit,so we should ingore
them when they are pending. */
if (istat & (BM_UARTAPP_INTR_ABDIS
| BM_UARTAPP_INTR_OEIS
| BM_UARTAPP_INTR_BEIS
| BM_UARTAPP_INTR_PEIS
| BM_UARTAPP_INTR_FEIS
| BM_UARTAPP_INTR_RTIS
| BM_UARTAPP_INTR_TXIS
| BM_UARTAPP_INTR_RXIS
| BM_UARTAPP_INTR_CTSMIS)) {
dev_info(s->dev, "Unhandled status %x\n", istat);
__raw_writel(istatus & 0xFFFF,
}
__raw_writel(istatus & (BM_UARTAPP_INTR_ABDIS
| BM_UARTAPP_INTR_OEIS
| BM_UARTAPP_INTR_BEIS
| BM_UARTAPP_INTR_PEIS
| BM_UARTAPP_INTR_FEIS
| BM_UARTAPP_INTR_RTIS
| BM_UARTAPP_INTR_TXIS
| BM_UARTAPP_INTR_RXIS
| BM_UARTAPP_INTR_DSRMIS
| BM_UARTAPP_INTR_DCDMIS
| BM_UARTAPP_INTR_CTSMIS
| BM_UARTAPP_INTR_RIMIS),
s->port.membase + HW_UARTAPP_INTR_CLR);
return IRQ_HANDLED;