qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [5239] 16550A UART: RHR irq enable bit also masks the Rx ti


From: Andrzej Zaborowski
Subject: [Qemu-devel] [5239] 16550A UART: RHR irq enable bit also masks the Rx timeout irq.
Date: Wed, 17 Sep 2008 00:21:06 +0000

Revision: 5239
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5239
Author:   balrog
Date:     2008-09-17 00:21:05 +0000 (Wed, 17 Sep 2008)

Log Message:
-----------
16550A UART: RHR irq enable bit also masks the Rx timeout irq.

The "Rx timeout" (aka. Character Timeout Indication) has no separate mask
bit in the IER register and according to the specs reading RHR is the only
way to reset the irq.  However on the hardware (tested on OMAP2 UART which
is an extended 16550A) the RHR_IT bit in IER disables the irc, too.  Linux
bluetooth serial dongle driver for N800 depends on this behavior.

Modified Paths:
--------------
    trunk/hw/serial.c

Modified: trunk/hw/serial.c
===================================================================
--- trunk/hw/serial.c   2008-09-16 22:44:25 UTC (rev 5238)
+++ trunk/hw/serial.c   2008-09-17 00:21:05 UTC (rev 5239)
@@ -191,7 +191,7 @@
 
     if ((s->ier & UART_IER_RLSI) && (s->lsr & UART_LSR_INT_ANY)) {
         tmp_iir = UART_IIR_RLSI;
-    } else if (s->timeout_ipending) {
+    } else if ((s->ier & UART_IER_RDI) && s->timeout_ipending) {
         tmp_iir = UART_IIR_CTI;
     } else if ((s->ier & UART_IER_RDI) && (s->lsr & UART_LSR_DR)) {
         if (!(s->fcr & UART_FCR_FE)) {






reply via email to

[Prev in Thread] Current Thread [Next in Thread]