Skip to content
  • Marcel Moolenaar's avatar
    In uart_intr() loop until all interrupts have been handled. Previously · 44ed791b
    Marcel Moolenaar authored
    an UART interface could get stuck when a new interrupt condition
    arose while servicing a previous interrupt. Since an interrupt was
    already pending, no new interrupt would be triggered.
    
    Avoid infinite recursion by flushing the Rx FIFO and marking an
    overrun condition when we could not move the data from the Rx
    FIFO to the receive buffer in toto. Failure to flush the Rx FIFO
    would leave the Rx ready condition pending.
    
    Note that the SAB 82532 already did this due to the nature of the
    chip.
    44ed791b