summaryrefslogtreecommitdiffstats
path: root/hw
diff options
context:
space:
mode:
authorMark Cave-Ayland2018-06-13 10:30:14 +0200
committerDavid Gibson2018-06-16 08:32:33 +0200
commit32a8c27b5dfc834abf7ada7c55fcc69c97ae0140 (patch)
treece1b05d5660ab20bf73fd563ecc65a0382c02125 /hw
parentmos6522: only clear the shift register interrupt upon write (diff)
downloadqemu-32a8c27b5dfc834abf7ada7c55fcc69c97ae0140.tar.gz
qemu-32a8c27b5dfc834abf7ada7c55fcc69c97ae0140.tar.xz
qemu-32a8c27b5dfc834abf7ada7c55fcc69c97ae0140.zip
mos6522: remove additional interrupt flag filter from mos6522_update_irq()
The datasheet indicates that the interrupt is generated by ANDing the interrupt flags register (IFR) with the interrupt enable register (IER) but currently there is an extra filter for the SR and timer interrupts. Remove this extra filter to allow interrupts to be generated by external inputs on bits 1 and 2 of ports A and B. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw')
-rw-r--r--hw/misc/mos6522.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c
index ad5041d8c0..8d5b419825 100644
--- a/hw/misc/mos6522.c
+++ b/hw/misc/mos6522.c
@@ -40,7 +40,7 @@ static void mos6522_timer_update(MOS6522State *s, MOS6522Timer *ti,
static void mos6522_update_irq(MOS6522State *s)
{
- if (s->ifr & s->ier & (SR_INT | T1_INT | T2_INT)) {
+ if (s->ifr & s->ier) {
qemu_irq_raise(s->irq);
} else {
qemu_irq_lower(s->irq);