|
@@ -28,9 +28,6 @@
|
|
|
#define FLAG_IRQCONTEXT (1 << 2)
|
|
|
#define FLAG_STARTED (1 << 3)
|
|
|
|
|
|
-#define ONESHOT 0
|
|
|
-#define PERIODIC 1
|
|
|
-
|
|
|
#define SCALE 64
|
|
|
|
|
|
struct timer8_priv {
|
|
@@ -147,7 +144,7 @@ static inline struct timer8_priv *ced_to_priv(struct clock_event_device *ced)
|
|
|
return container_of(ced, struct timer8_priv, ced);
|
|
|
}
|
|
|
|
|
|
-static void timer8_clock_event_start(struct timer8_priv *p, int periodic)
|
|
|
+static void timer8_clock_event_start(struct timer8_priv *p, unsigned long delta)
|
|
|
{
|
|
|
struct clock_event_device *ced = &p->ced;
|
|
|
|
|
@@ -158,7 +155,7 @@ static void timer8_clock_event_start(struct timer8_priv *p, int periodic)
|
|
|
ced->max_delta_ns = clockevent_delta2ns(0xffff, ced);
|
|
|
ced->min_delta_ns = clockevent_delta2ns(0x0001, ced);
|
|
|
|
|
|
- timer8_set_next(p, periodic?(p->rate + HZ/2) / HZ:0x10000);
|
|
|
+ timer8_set_next(p, delta);
|
|
|
}
|
|
|
|
|
|
static int timer8_clock_event_shutdown(struct clock_event_device *ced)
|
|
@@ -173,7 +170,7 @@ static int timer8_clock_event_periodic(struct clock_event_device *ced)
|
|
|
|
|
|
pr_info("%s: used for periodic clock events\n", ced->name);
|
|
|
timer8_stop(p);
|
|
|
- timer8_clock_event_start(p, PERIODIC);
|
|
|
+ timer8_clock_event_start(p, (p->rate + HZ/2) / HZ);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -184,7 +181,7 @@ static int timer8_clock_event_oneshot(struct clock_event_device *ced)
|
|
|
|
|
|
pr_info("%s: used for oneshot clock events\n", ced->name);
|
|
|
timer8_stop(p);
|
|
|
- timer8_clock_event_start(p, ONESHOT);
|
|
|
+ timer8_clock_event_start(p, 0x10000);
|
|
|
|
|
|
return 0;
|
|
|
}
|