aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Crosthwaite <peter.crosthwaite@xilinx.com>2013-04-02 17:59:29 +0000
committerPeter Maydell <peter.maydell@linaro.org>2013-04-05 16:59:09 +0100
commitfd7f8a99f3b08640a7fe2b2f3c3e6b68068b4983 (patch)
treee9f3db64efe88e1d67ec620e35280c10aa23ec1d
parentd8d24fb78cf21205bf672d85231712dc1f0bbb39 (diff)
downloadqemu-fd7f8a99f3b08640a7fe2b2f3c3e6b68068b4983.zip
qemu-fd7f8a99f3b08640a7fe2b2f3c3e6b68068b4983.tar.gz
qemu-fd7f8a99f3b08640a7fe2b2f3c3e6b68068b4983.tar.bz2
pl330: Don't inhibit ES bits on INTEN
This if-else logic inhibits setting of the event status (ES) bits when interrupts are enabled. This is incorrect. ES should be set regardless on INTEN state. INTEN only inhibits the signalling of events to PL330 threads, not setting of the ES register. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--hw/pl330.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/hw/pl330.c b/hw/pl330.c
index 1a04773..60aa4a8 100644
--- a/hw/pl330.c
+++ b/hw/pl330.c
@@ -870,9 +870,8 @@ static void pl330_dmasev(PL330Chan *ch, uint8_t opcode, uint8_t *args, int len)
ch->parent->int_status |= (1 << ev_id);
DB_PRINT("event interrupt raised %d\n", ev_id);
qemu_irq_raise(ch->parent->irq[ev_id]);
- } else {
- ch->parent->ev_status |= (1 << ev_id);
}
+ ch->parent->ev_status |= (1 << ev_id);
}
static void pl330_dmast(PL330Chan *ch, uint8_t opcode, uint8_t *args, int len)