mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
UIP update fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@699 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
a6e022ad13
commit
4721c45750
1 changed files with 7 additions and 1 deletions
|
@ -206,6 +206,7 @@ static void rtc_set_time(RTCState *s)
|
|||
static void rtc_update_second(void *opaque)
|
||||
{
|
||||
RTCState *s = opaque;
|
||||
int64_t delay;
|
||||
|
||||
/* if the oscillator is not in normal operation, we do not update */
|
||||
if ((s->cmos_data[RTC_REG_A] & 0x70) != 0x20) {
|
||||
|
@ -218,8 +219,13 @@ static void rtc_update_second(void *opaque)
|
|||
/* update in progress bit */
|
||||
s->cmos_data[RTC_REG_A] |= REG_A_UIP;
|
||||
}
|
||||
/* should be 244 us = 8 / 32768 seconds, but currently the
|
||||
timers do not have the necessary resolution. */
|
||||
delay = (ticks_per_sec * 1) / 100;
|
||||
if (delay < 1)
|
||||
delay = 1;
|
||||
qemu_mod_timer(s->second_timer2,
|
||||
s->next_second_time + (ticks_per_sec * 99) / 100);
|
||||
s->next_second_time + delay);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue