[Top][All Lists]
[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)) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [5239] 16550A UART: RHR irq enable bit also masks the Rx timeout irq.,
Andrzej Zaborowski <=