diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-07-23 14:01:47 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-07-23 14:01:47 +0000 |
commit | b7c7b18129e137bd24240800d7fac02eee3b1edf (patch) | |
tree | 39e0c9240114c33781afdfa7fb42d046d0dc636f | |
parent | 98352369101d2f3097e7f75d291b0a438c4dbbe4 (diff) | |
download | qemu-b7c7b18129e137bd24240800d7fac02eee3b1edf.tar.gz qemu-b7c7b18129e137bd24240800d7fac02eee3b1edf.tar.bz2 qemu-b7c7b18129e137bd24240800d7fac02eee3b1edf.zip |
fixed VIA irq register access
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1513 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | hw/cuda.c | 9 |
1 files changed, 3 insertions, 6 deletions
@@ -298,9 +298,11 @@ static uint32_t cuda_readb(void *opaque, target_phys_addr_t addr) break; case 13: val = s->ifr; + if (s->ifr & s->ier) + val |= 0x80; break; case 14: - val = s->ier; + val = s->ier | 0x80; break; default: case 15: @@ -379,7 +381,6 @@ static void cuda_writeb(void *opaque, target_phys_addr_t addr, uint32_t val) cuda_update_irq(s); break; case 14: -#if 0 if (val & IER_SET) { /* set bits */ s->ier |= val & 0x7f; @@ -387,10 +388,6 @@ static void cuda_writeb(void *opaque, target_phys_addr_t addr, uint32_t val) /* reset bits */ s->ier &= ~val; } -#else - /* XXX: please explain me why the SPEC is not correct ! */ - s->ier = val; -#endif cuda_update_irq(s); break; default: |