hw/ptimer: Perform counter wrap around if timer already expired
commit5a50307b48f834d0048fde20aa6c0e24cd9f33be
authorDmitry Osipenko <digetx@gmail.com>
Mon, 6 Jun 2016 15:59:30 +0000 (6 16:59 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 6 Jun 2016 15:59:30 +0000 (6 16:59 +0100)
tree5fdca1c683be9d1b6528b47bd676ebb302dae5cc
parente91171e30235ae99ab8060988aa3c9536692bba8
hw/ptimer: Perform counter wrap around if timer already expired

ptimer_get_count() might be called while QEMU timer already been expired.
In that case ptimer would return counter = 0, which might be undesirable
in case of polled timer. Do counter wrap around for periodic timer to keep
it distributed. In order to achieve more accurate emulation behaviour of
certain hardware, don't perform wrap around when in icount mode and return
counter = 0 in that case (that doesn't affect polled counter distribution).

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Message-id: 4ce381c7d24d85d165ff251d2875d16a4b6a5c04.1464367869.git.digetx@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/core/ptimer.c