From 452efba63bc4a2f1f580c96b087cbfae58b81785 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sun, 24 Jan 2010 14:28:21 +0000 Subject: [PATCH] Sparc32: fix free-run timer According to Sun4M System Architecture Manual chapter 5.3.2, a limit of 0 will not generate interrupts. Signed-off-by: Blue Swirl --- hw/slavio_timer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c index cd2cf5772b..ef36fe4c99 100644 --- a/hw/slavio_timer.c +++ b/hw/slavio_timer.c @@ -128,7 +128,8 @@ static void slavio_timer_irq(void *opaque) slavio_timer_get_out(t); DPRINTF("callback: count %x%08x\n", t->counthigh, t->count); t->reached = TIMER_REACHED; - if (!slavio_timer_is_user(tc)) { + /* there is no interrupt if user timer or free-run */ + if (!slavio_timer_is_user(tc) && t->limit != 0) { qemu_irq_raise(t->irq); } } -- GitLab