aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2007-08-11 07:54:26 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2007-08-11 07:54:26 +0000
commit96c4f569846dccf552dbf5ca059a734eb51d3aae (patch)
tree680f3d12d8f9aed153bfbe8f3cab13f4c1b4ec93 /hw
parent225d4be7099f0cfdf5c85b4e4be1fa1e5169543c (diff)
Generate interrupts and update state even if output is disabled (OpenBSD)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3116 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw')
-rw-r--r--hw/slavio_serial.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/slavio_serial.c b/hw/slavio_serial.c
index 36dbdcf163..86e661ccd7 100644
--- a/hw/slavio_serial.c
+++ b/hw/slavio_serial.c
@@ -427,17 +427,17 @@ static void slavio_serial_mem_writeb(void *opaque, target_phys_addr_t addr, uint
break;
case 1:
SER_DPRINTF("Write channel %c, ch %d\n", CHN_C(s), val);
+ s->tx = val;
if (s->wregs[5] & 8) { // tx enabled
- s->tx = val;
if (s->chr)
qemu_chr_write(s->chr, &s->tx, 1);
else if (s->type == kbd) {
handle_kbd_command(s, val);
}
- s->rregs[0] |= 4; // Tx buffer empty
- s->rregs[1] |= 1; // All sent
- set_txint(s);
}
+ s->rregs[0] |= 4; // Tx buffer empty
+ s->rregs[1] |= 1; // All sent
+ set_txint(s);
break;
default:
break;