A10: Correct handling of the serial busy interrupt

This commit is contained in:
Gregory Nutt 2013-12-08 08:51:19 -06:00
parent c131e94d04
commit e4358ad7ff

View File

@ -1176,11 +1176,22 @@ static int uart_interrupt(struct uart_dev_s *dev)
/* Busy detect. Just ignore. Cleared by reading the status register */
case UART_IIR_IID_BUSY:
break;
{
/* Read from the UART status register to clear the BUSY condition */
/* Otherwise, there is no (handled) interrupt pending */
status = up_serialin(priv, A1X_UART_USR_OFFSET);
break;
}
/* No further interrupts pending... return now */
case UART_IIR_IID_NONE:
{
return OK;
}
/* Otherwise we have received an interrupt that we cannot handle */
default:
{
lldbg("Unexpected IIR: %02x\n", status);