summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2009-09-18 19:29:24 +0000
committerJuergen Lock <nox@FreeBSD.org>2009-09-18 19:29:24 +0000
commitc7acb4aa306c1b324ba8429d0ec5c4fbd80b36d8 (patch)
tree64fd18c6a5310407285d851e9ede4fa697ca2634 /emulators
parentc943dce67270391ce3a235da9938c1508387f8a0 (diff)
Notes
Diffstat (limited to 'emulators')
-rw-r--r--emulators/qemu/Makefile2
-rw-r--r--emulators/qemu/files/patch-hw-serial.c18
2 files changed, 19 insertions, 1 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index 3e848fc5602e..a2fd1511e0c3 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -7,7 +7,7 @@
PORTNAME= qemu
PORTVERSION= 0.10.6
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= emulators
MASTER_SITES= ${MASTER_SITE_SAVANNAH} \
http://bellard.org/qemu/
diff --git a/emulators/qemu/files/patch-hw-serial.c b/emulators/qemu/files/patch-hw-serial.c
new file mode 100644
index 000000000000..a195b85360de
--- /dev/null
+++ b/emulators/qemu/files/patch-hw-serial.c
@@ -0,0 +1,18 @@
+Index: qemu/hw/serial.c
+@@ -196,12 +195,10 @@ static void serial_update_irq(SerialStat
+ * 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)) {
+- tmp_iir = UART_IIR_RDI;
+- } else if (s->recv_fifo.count >= s->recv_fifo.itl) {
+- tmp_iir = UART_IIR_RDI;
+- }
++ } else if ((s->ier & UART_IER_RDI) && (s->lsr & UART_LSR_DR) &&
++ (!(s->fcr & UART_FCR_FE) ||
++ s->recv_fifo.count >= s->recv_fifo.itl)) {
++ tmp_iir = UART_IIR_RDI;
+ } else if ((s->ier & UART_IER_THRI) && s->thr_ipending) {
+ tmp_iir = UART_IIR_THRI;
+ } else if ((s->ier & UART_IER_MSI) && (s->msr & UART_MSR_ANY_DELTA)) {