Revision 74475455 hw/pxa2xx_timer.c

b/hw/pxa2xx_timer.c
171 171
            goto badreg;
172 172
        return s->tm4[tm].tm.value;
173 173
    case OSCR:
174
        return s->clock + muldiv64(qemu_get_clock(vm_clock) -
174
        return s->clock + muldiv64(qemu_get_clock_ns(vm_clock) -
175 175
                        s->lastload, s->freq, get_ticks_per_sec());
176 176
    case OSCR11: tm ++;
177 177
    case OSCR10: tm ++;
......
187 187
        if ((tm == 9 - 4 || tm == 11 - 4) && (s->tm4[tm].control & (1 << 9))) {
188 188
            if (s->tm4[tm - 1].freq)
189 189
                s->snapshot = s->tm4[tm - 1].clock + muldiv64(
190
                                qemu_get_clock(vm_clock) -
190
                                qemu_get_clock_ns(vm_clock) -
191 191
                                s->tm4[tm - 1].lastload,
192 192
                                s->tm4[tm - 1].freq, get_ticks_per_sec());
193 193
            else
......
196 196

  
197 197
        if (!s->tm4[tm].freq)
198 198
            return s->tm4[tm].clock;
199
        return s->tm4[tm].clock + muldiv64(qemu_get_clock(vm_clock) -
199
        return s->tm4[tm].clock + muldiv64(qemu_get_clock_ns(vm_clock) -
200 200
                        s->tm4[tm].lastload, s->tm4[tm].freq, get_ticks_per_sec());
201 201
    case OIER:
202 202
        return s->irq_enabled;
......
237 237
    case OSMR1:  tm ++;
238 238
    case OSMR0:
239 239
        s->timer[tm].value = value;
240
        pxa2xx_timer_update(s, qemu_get_clock(vm_clock));
240
        pxa2xx_timer_update(s, qemu_get_clock_ns(vm_clock));
241 241
        break;
242 242
    case OSMR11: tm ++;
243 243
    case OSMR10: tm ++;
......
250 250
        if (!pxa2xx_timer_has_tm4(s))
251 251
            goto badreg;
252 252
        s->tm4[tm].tm.value = value;
253
        pxa2xx_timer_update4(s, qemu_get_clock(vm_clock), tm);
253
        pxa2xx_timer_update4(s, qemu_get_clock_ns(vm_clock), tm);
254 254
        break;
255 255
    case OSCR:
256 256
        s->oldclock = s->clock;
257
        s->lastload = qemu_get_clock(vm_clock);
257
        s->lastload = qemu_get_clock_ns(vm_clock);
258 258
        s->clock = value;
259 259
        pxa2xx_timer_update(s, s->lastload);
260 260
        break;
......
269 269
        if (!pxa2xx_timer_has_tm4(s))
270 270
            goto badreg;
271 271
        s->tm4[tm].oldclock = s->tm4[tm].clock;
272
        s->tm4[tm].lastload = qemu_get_clock(vm_clock);
272
        s->tm4[tm].lastload = qemu_get_clock_ns(vm_clock);
273 273
        s->tm4[tm].clock = value;
274 274
        pxa2xx_timer_update4(s, s->tm4[tm].lastload, tm);
275 275
        break;
......
300 300
            s->tm4[tm].freq = pxa2xx_timer4_freq[value & 7];
301 301
        else {
302 302
            s->tm4[tm].freq = 0;
303
            pxa2xx_timer_update4(s, qemu_get_clock(vm_clock), tm);
303
            pxa2xx_timer_update4(s, qemu_get_clock_ns(vm_clock), tm);
304 304
        }
305 305
        break;
306 306
    case OMCR11: tm ++;
......
316 316
                    pxa2xx_timer4_freq[(value & (1 << 8)) ?  0 : (value & 7)];
317 317
        else {
318 318
            s->tm4[tm].freq = 0;
319
            pxa2xx_timer_update4(s, qemu_get_clock(vm_clock), tm);
319
            pxa2xx_timer_update4(s, qemu_get_clock_ns(vm_clock), tm);
320 320
        }
321 321
        break;
322 322
    default:
......
363 363
    if (t->control & (1 << 3))
364 364
        t->clock = 0;
365 365
    if (t->control & (1 << 6))
366
        pxa2xx_timer_update4(i, qemu_get_clock(vm_clock), t->tm.num - 4);
366
        pxa2xx_timer_update4(i, qemu_get_clock_ns(vm_clock), t->tm.num - 4);
367 367
    if (i->events & 0xff0)
368 368
        qemu_irq_raise(i->irq4);
369 369
}
......
374 374
    int64_t now;
375 375
    int i;
376 376

  
377
    now = qemu_get_clock(vm_clock);
377
    now = qemu_get_clock_ns(vm_clock);
378 378
    pxa2xx_timer_update(s, now);
379 379

  
380 380
    if (pxa2xx_timer_has_tm4(s))
......
394 394
    s->irq_enabled = 0;
395 395
    s->oldclock = 0;
396 396
    s->clock = 0;
397
    s->lastload = qemu_get_clock(vm_clock);
397
    s->lastload = qemu_get_clock_ns(vm_clock);
398 398
    s->reset3 = 0;
399 399

  
400 400
    for (i = 0; i < 4; i ++) {
......
402 402
        sysbus_init_irq(dev, &s->timer[i].irq);
403 403
        s->timer[i].info = s;
404 404
        s->timer[i].num = i;
405
        s->timer[i].qtimer = qemu_new_timer(vm_clock,
405
        s->timer[i].qtimer = qemu_new_timer_ns(vm_clock,
406 406
                        pxa2xx_timer_tick, &s->timer[i]);
407 407
    }
408 408
    if (s->flags & (1 << PXA2XX_TIMER_HAVE_TM4)) {
......
414 414
            s->tm4[i].tm.num = i + 4;
415 415
            s->tm4[i].freq = 0;
416 416
            s->tm4[i].control = 0x0;
417
            s->tm4[i].tm.qtimer = qemu_new_timer(vm_clock,
417
            s->tm4[i].tm.qtimer = qemu_new_timer_ns(vm_clock,
418 418
                        pxa2xx_timer_tick4, &s->tm4[i]);
419 419
        }
420 420
    }

Also available in: Unified diff