diff options
author | 2010-05-02 15:20:52 +0530 | |
---|---|---|
committer | 2010-07-20 17:45:08 -0500 | |
commit | 8c1c8ca105e8842dc834cab5834e0464518f0c0a (patch) | |
tree | b88386df84210d5da2e162fd3d900a7f289bed20 | |
parent | arm_timer: reload timer when enabled (diff) | |
download | qemu-kvm-8c1c8ca105e8842dc834cab5834e0464518f0c0a.tar.gz qemu-kvm-8c1c8ca105e8842dc834cab5834e0464518f0c0a.tar.bz2 qemu-kvm-8c1c8ca105e8842dc834cab5834e0464518f0c0a.zip |
arm_timer: fix oneshot mode
In oneshot mode, the delta needs to come from the TimerLoad register,
not the maximum limit.
Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
(cherry picked from commit a9cf98d939c4f6539fad7e7d812ea16d96ba3dc9)
-rw-r--r-- | hw/arm_timer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/arm_timer.c b/hw/arm_timer.c index 5b6947a16..9073ffc00 100644 --- a/hw/arm_timer.c +++ b/hw/arm_timer.c @@ -71,7 +71,7 @@ static void arm_timer_recalibrate(arm_timer_state *s, int reload) { uint32_t limit; - if ((s->control & TIMER_CTRL_PERIODIC) == 0) { + if ((s->control & (TIMER_CTRL_PERIODIC | TIMER_CTRL_ONESHOT)) == 0) { /* Free running. */ if (s->control & TIMER_CTRL_32BIT) limit = 0xffffffff; |