Commit 4721c457 authored by Fabrice Bellard's avatar Fabrice Bellard
Browse files

UIP update fix


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@699 c046a42c-6fe2-441c-8c8c-71466251a162
parent a6e022ad
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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);
    }
}