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
This commit is contained in:
parent
225d4be709
commit
96c4f56984
|
@ -427,17 +427,17 @@ static void slavio_serial_mem_writeb(void *opaque, target_phys_addr_t addr, uint
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
SER_DPRINTF("Write channel %c, ch %d\n", CHN_C(s), val);
|
SER_DPRINTF("Write channel %c, ch %d\n", CHN_C(s), val);
|
||||||
|
s->tx = val;
|
||||||
if (s->wregs[5] & 8) { // tx enabled
|
if (s->wregs[5] & 8) { // tx enabled
|
||||||
s->tx = val;
|
|
||||||
if (s->chr)
|
if (s->chr)
|
||||||
qemu_chr_write(s->chr, &s->tx, 1);
|
qemu_chr_write(s->chr, &s->tx, 1);
|
||||||
else if (s->type == kbd) {
|
else if (s->type == kbd) {
|
||||||
handle_kbd_command(s, val);
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue