[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 2/2] arm_mptimer: Respect IT bit state
From: |
Dmitry Osipenko |
Subject: |
[Qemu-devel] [PATCH v3 2/2] arm_mptimer: Respect IT bit state |
Date: |
Mon, 6 Jul 2015 01:47:48 +0300 |
The timer should fire interrupt only if IT(interrupt enable) bit state of
control register is enabled and the timer should update IRQ status on IT
bit change as it would mask/unmask the interrupt line.
Signed-off-by: Dmitry Osipenko <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
---
v2: Added missed IRQ status update on control register write as per
Peter Crosthwaite comment.
v3: No code change, just re-send.
hw/timer/arm_mptimer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/timer/arm_mptimer.c b/hw/timer/arm_mptimer.c
index 0e132b1..22fa46e 100644
--- a/hw/timer/arm_mptimer.c
+++ b/hw/timer/arm_mptimer.c
@@ -38,7 +38,7 @@ static inline int get_current_cpu(ARMMPTimerState *s)
static inline void timerblock_update_irq(TimerBlock *tb)
{
- qemu_set_irq(tb->irq, tb->status);
+ qemu_set_irq(tb->irq, tb->status && (tb->control & 4));
}
/* Return conversion factor from mpcore timer ticks to qemu timer ticks. */
@@ -122,6 +122,9 @@ static void timerblock_write(void *opaque, hwaddr addr,
case 8: /* Control. */
old = tb->control;
tb->control = value;
+ if ((old & 4) != (value & 4)) {
+ timerblock_update_irq(tb);
+ }
if (value & 1) {
if ((old & 1) && (tb->count != 0)) {
/* Do nothing if timer is ticking right now. */
--
2.4.4
- Re: [Qemu-devel] [PATCH 1/2] arm_mptimer: Fix timer shutdown and mode change, (continued)
[Qemu-devel] [PATCH v2 2/2] arm_mptimer: Respect IT bit state, Dmitry Osipenko, 2015/07/05
Re: [Qemu-devel] [v2] arm_mptimer fixes, Peter Crosthwaite, 2015/07/05
[Qemu-devel] [PATCH v3 0/2] arm_mptimer fixes, Dmitry Osipenko, 2015/07/05
- [Qemu-devel] [PATCH v2 1/2] arm_mptimer: Fix timer shutdown and mode change, Dmitry Osipenko, 2015/07/05
- [Qemu-devel] [PATCH v3 2/2] arm_mptimer: Respect IT bit state,
Dmitry Osipenko <=
- Re: [Qemu-devel] [PATCH v3 2/2] arm_mptimer: Respect IT bit state, Dmitry Osipenko, 2015/07/05
- [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Dmitry Osipenko, 2015/07/05
- Re: [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Peter Maydell, 2015/07/06
- Re: [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Dmitry Osipenko, 2015/07/06
- Re: [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Peter Maydell, 2015/07/06
- Re: [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Dmitry Osipenko, 2015/07/06
- Re: [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Peter Crosthwaite, 2015/07/06
- Re: [Qemu-devel] [PATCH v4] arm_mptimer: Respect IT bit state, Dmitry Osipenko, 2015/07/06