diff options
-rw-r--r-- | hw/serial.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/serial.c b/hw/serial.c index 28d99f26cd..2167b79831 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -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)) { |