[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v12 7/9] hw/ptimer: Fix counter - 1 returned by ptimer
From: |
Dmitry Osipenko |
Subject: |
[Qemu-arm] [PATCH v12 7/9] hw/ptimer: Fix counter - 1 returned by ptimer_get_count for the active timer |
Date: |
Sat, 30 Jan 2016 19:43:16 +0300 |
Due to rounding down performed by ptimer_get_count, it returns counter - 1 for
the active timer. That's incorrect because counter should decrement only after
period been expired, not before. I.e. if running timer has been loaded with
value X, then timer counter should stay with X until period expired and
decrement after. Fix this by adding 1 to the counter value for the active and
unexpired timer.
Signed-off-by: Dmitry Osipenko <address@hidden>
---
hw/core/ptimer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/core/ptimer.c b/hw/core/ptimer.c
index 62f8cb1..b2044fb 100644
--- a/hw/core/ptimer.c
+++ b/hw/core/ptimer.c
@@ -136,7 +136,7 @@ uint64_t ptimer_get_count(ptimer_state *s)
if ((uint32_t)(period_frac << shift))
div += 1;
}
- counter = rem / div;
+ counter = rem / div + (expired ? 0 : 1);
if (expired && counter != 0) {
/* Wrap around periodic counter. */
--
2.7.0
- [Qemu-arm] [PATCH v12 0/9] PTimer fixes/features and ARM MPTimer conversion, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 2/9] hw/ptimer: Perform counter wrap around if timer already expired, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 1/9] hw/ptimer: Fix issues caused by the adjusted timer limit value, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 3/9] hw/ptimer: Update .delta on period/freq change, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 4/9] hw/ptimer: Support "on the fly" timer mode switch, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 5/9] hw/ptimer: Introduce ptimer_get_limit, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 7/9] hw/ptimer: Fix counter - 1 returned by ptimer_get_count for the active timer,
Dmitry Osipenko <=
- [Qemu-arm] [PATCH v12 6/9] hw/ptimer: Legalize running with delta = load = 0 and abort on period = 0, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 8/9] hw/ptimer: Perform delayed tick instead of immediate if delta = 0, Dmitry Osipenko, 2016/01/30
- [Qemu-arm] [PATCH v12 9/9] arm_mptimer: Convert to use ptimer, Dmitry Osipenko, 2016/01/30