omap: switch omap_lpg to vm_clock
The output of the pulse generator needs to be deterministic when running in -icount mode, and to remain constant whenever the VM is stopped. So the right clock to use is vm_clock. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
788081417a
commit
e230d4e8bd
@ -3497,9 +3497,9 @@ static void omap_lpg_tick(void *opaque)
|
||||
struct omap_lpg_s *s = opaque;
|
||||
|
||||
if (s->cycle)
|
||||
qemu_mod_timer(s->tm, qemu_get_clock_ms(rt_clock) + s->period - s->on);
|
||||
qemu_mod_timer(s->tm, qemu_get_clock_ms(vm_clock) + s->period - s->on);
|
||||
else
|
||||
qemu_mod_timer(s->tm, qemu_get_clock_ms(rt_clock) + s->on);
|
||||
qemu_mod_timer(s->tm, qemu_get_clock_ms(vm_clock) + s->on);
|
||||
|
||||
s->cycle = !s->cycle;
|
||||
printf("%s: LED is %s\n", __FUNCTION__, s->cycle ? "on" : "off");
|
||||
@ -3617,7 +3617,7 @@ static struct omap_lpg_s *omap_lpg_init(MemoryRegion *system_memory,
|
||||
struct omap_lpg_s *s = (struct omap_lpg_s *)
|
||||
g_malloc0(sizeof(struct omap_lpg_s));
|
||||
|
||||
s->tm = qemu_new_timer_ms(rt_clock, omap_lpg_tick, s);
|
||||
s->tm = qemu_new_timer_ms(vm_clock, omap_lpg_tick, s);
|
||||
|
||||
omap_lpg_reset(s);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user