i8254: Do not raise IRQ level on reset

Avoid changing the IRQ level to high on reset as it may trigger spurious
events. Instead, open-code the effects of pit_load_count(0) in the reset
handler.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Jan Kiszka 2012-02-01 20:31:37 +01:00 committed by Anthony Liguori
parent 7dfbfc7927
commit 61b7b67df2
1 changed files with 7 additions and 1 deletions

View File

@ -481,7 +481,13 @@ static void pit_reset(DeviceState *dev)
s = &pit->channels[i];
s->mode = 3;
s->gate = (i != 2);
pit_load_count(s, 0);
s->count_load_time = qemu_get_clock_ns(vm_clock);
s->count = 0x10000;
if (i == 0) {
s->next_transition_time =
pit_get_next_transition_time(s, s->count_load_time);
qemu_mod_timer(s->irq_timer, s->next_transition_time);
}
}
}