Add a comment about masking of CTI interrupt in 16550A UART.
[qemu] / hw / serial.c
index 28d99f2..2167b79 100644 (file)
@@ -192,6 +192,9 @@ static void serial_update_irq(SerialState *s)
     if ((s->ier & UART_IER_RLSI) && (s->lsr & UART_LSR_INT_ANY)) {
         tmp_iir = UART_IIR_RLSI;
     } else if ((s->ier & UART_IER_RDI) && s->timeout_ipending) {
+        /* Note that(s->ier & UART_IER_RDI) can mask this interrupt,
+         * this is not in the specification but is observed on existing
+         * hardware.  */
         tmp_iir = UART_IIR_CTI;
     } else if ((s->ier & UART_IER_RDI) && (s->lsr & UART_LSR_DR)) {
         if (!(s->fcr & UART_FCR_FE)) {