[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [5265] Use a QEMUBH when an OMAP timer must expire immediat
From: |
Andrzej Zaborowski |
Subject: |
[Qemu-devel] [5265] Use a QEMUBH when an OMAP timer must expire immediately. |
Date: |
Sat, 20 Sep 2008 01:32:08 +0000 |
Revision: 5265
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5265
Author: balrog
Date: 2008-09-20 01:32:07 +0000 (Sat, 20 Sep 2008)
Log Message:
-----------
Use a QEMUBH when an OMAP timer must expire immediately.
Modified Paths:
--------------
trunk/hw/omap1.c
Modified: trunk/hw/omap1.c
===================================================================
--- trunk/hw/omap1.c 2008-09-20 01:15:04 UTC (rev 5264)
+++ trunk/hw/omap1.c 2008-09-20 01:32:07 UTC (rev 5265)
@@ -664,6 +664,7 @@
uint32_t val;
int64_t time;
QEMUTimer *timer;
+ QEMUBH *tick;
int64_t rate;
int it_ena;
@@ -708,21 +709,15 @@
* ticks. */
if (expires > (ticks_per_sec >> 10) || timer->ar)
qemu_mod_timer(timer->timer, timer->time + expires);
- else {
- timer->val = 0;
- timer->st = 0;
- if (timer->it_ena)
- /* Edge-triggered irq */
- qemu_irq_pulse(timer->irq);
- }
+ else
+ qemu_bh_schedule(timer->tick);
} else
qemu_del_timer(timer->timer);
}
-static void omap_timer_tick(void *opaque)
+static void omap_timer_fire(void *opaque)
{
- struct omap_mpu_timer_s *timer = (struct omap_mpu_timer_s *) opaque;
- omap_timer_sync(timer);
+ struct omap_mpu_timer_s *timer = opaque;
if (!timer->ar) {
timer->val = 0;
@@ -732,6 +727,14 @@
if (timer->it_ena)
/* Edge-triggered irq */
qemu_irq_pulse(timer->irq);
+}
+
+static void omap_timer_tick(void *opaque)
+{
+ struct omap_mpu_timer_s *timer = (struct omap_mpu_timer_s *) opaque;
+
+ omap_timer_sync(timer);
+ omap_timer_fire(timer);
omap_timer_update(timer);
}
@@ -835,6 +838,7 @@
s->clk = clk;
s->base = base;
s->timer = qemu_new_timer(vm_clock, omap_timer_tick, s);
+ s->tick = qemu_bh_new(omap_timer_fire, s);
omap_mpu_timer_reset(s);
omap_timer_clk_setup(s);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [5265] Use a QEMUBH when an OMAP timer must expire immediately.,
Andrzej Zaborowski <=