]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-davinci/time.c
Merge tag 'dlm-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
[karo-tx-linux.git] / arch / arm / mach-davinci / time.c
index 7a55b5c9597124a23345066771b9bb88a5893478..56c6eb5266adf8f5c18629db9cfb65018f5bad50 100644 (file)
@@ -181,7 +181,7 @@ static struct timer_s timers[] = {
                .name      = "clockevent",
                .opts      = TIMER_OPTS_DISABLED,
                .irqaction = {
-                       .flags   = IRQF_DISABLED | IRQF_TIMER,
+                       .flags   = IRQF_TIMER,
                        .handler = timer_interrupt,
                }
        },
@@ -190,7 +190,7 @@ static struct timer_s timers[] = {
                .period     = ~0,
                .opts       = TIMER_OPTS_PERIODIC,
                .irqaction = {
-                       .flags   = IRQF_DISABLED | IRQF_TIMER,
+                       .flags   = IRQF_TIMER,
                        .handler = freerun_interrupt,
                }
        },
@@ -331,7 +331,6 @@ static void davinci_set_mode(enum clock_event_mode mode,
 
 static struct clock_event_device clockevent_davinci = {
        .features       = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
-       .shift          = 32,
        .set_next_event = davinci_set_next_event,
        .set_mode       = davinci_set_mode,
 };
@@ -397,14 +396,10 @@ void __init davinci_timer_init(void)
 
        /* setup clockevent */
        clockevent_davinci.name = id_to_name[timers[TID_CLOCKEVENT].id];
-       clockevent_davinci.mult = div_sc(davinci_clock_tick_rate, NSEC_PER_SEC,
-                                        clockevent_davinci.shift);
-       clockevent_davinci.max_delta_ns =
-               clockevent_delta2ns(0xfffffffe, &clockevent_davinci);
-       clockevent_davinci.min_delta_ns = 50000; /* 50 usec */
 
        clockevent_davinci.cpumask = cpumask_of(0);
-       clockevents_register_device(&clockevent_davinci);
+       clockevents_config_and_register(&clockevent_davinci,
+                                       davinci_clock_tick_rate, 1, 0xfffffffe);
 
        for (i=0; i< ARRAY_SIZE(timers); i++)
                timer32_config(&timers[i]);