From fd7f8a99f3b08640a7fe2b2f3c3e6b68068b4983 Mon Sep 17 00:00:00 2001 From: Peter Crosthwaite Date: Tue, 2 Apr 2013 17:59:29 +0000 Subject: [PATCH] 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 Signed-off-by: Peter Maydell --- hw/pl330.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/pl330.c b/hw/pl330.c index 1a04773a7..60aa4a8f9 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) -- 2.39.2