Revision 4ff927cc
b/hw/pxa2xx_timer.c | ||
---|---|---|
94 | 94 |
uint32_t reset3; |
95 | 95 |
uint32_t snapshot; |
96 | 96 |
|
97 |
qemu_irq irq4; |
|
97 | 98 |
PXA2xxTimer4 tm4[8]; |
98 | 99 |
}; |
99 | 100 |
|
... | ... | |
289 | 290 |
if (s->tm4[i].tm.level && (value & 1)) |
290 | 291 |
s->tm4[i].tm.level = 0; |
291 | 292 |
if (!(s->events & 0xff0)) |
292 |
qemu_irq_lower(s->tm4->tm.irq);
|
|
293 |
qemu_irq_lower(s->irq4);
|
|
293 | 294 |
} |
294 | 295 |
break; |
295 | 296 |
case OWER: /* XXX: Reset on OSMR3 match? */ |
... | ... | |
372 | 373 |
t->clock = 0; |
373 | 374 |
if (t->control & (1 << 6)) |
374 | 375 |
pxa2xx_timer_update4(i, qemu_get_clock(vm_clock), t->tm.num - 4); |
376 |
if (i->events & 0xff0) |
|
377 |
qemu_irq_raise(i->irq4); |
|
375 | 378 |
} |
376 | 379 |
|
377 | 380 |
static int pxa25x_timer_post_load(void *opaque, int version_id) |
... | ... | |
395 | 398 |
int i; |
396 | 399 |
int iomemtype; |
397 | 400 |
PXA2xxTimerInfo *s; |
398 |
qemu_irq irq4; |
|
399 | 401 |
|
400 | 402 |
s = FROM_SYSBUS(PXA2xxTimerInfo, dev); |
401 | 403 |
s->irq_enabled = 0; |
... | ... | |
414 | 416 |
pxa2xx_timer_tick, &s->timer[i]); |
415 | 417 |
} |
416 | 418 |
if (s->flags & (1 << PXA2XX_TIMER_HAVE_TM4)) { |
417 |
sysbus_init_irq(dev, &irq4); |
|
419 |
sysbus_init_irq(dev, &s->irq4);
|
|
418 | 420 |
|
419 | 421 |
for (i = 0; i < 8; i ++) { |
420 | 422 |
s->tm4[i].tm.value = 0; |
... | ... | |
425 | 427 |
s->tm4[i].control = 0x0; |
426 | 428 |
s->tm4[i].tm.qtimer = qemu_new_timer(vm_clock, |
427 | 429 |
pxa2xx_timer_tick4, &s->tm4[i]); |
428 |
s->tm4[i].tm.irq = irq4; |
|
429 | 430 |
} |
430 | 431 |
} |
431 | 432 |
|
Also available in: Unified diff