unicore32 time.c: change calculate method for clock_event_device
authorGuanXuetao <gxt@mprc.pku.edu.cn>
Thu, 17 Feb 2011 09:50:43 +0000 (17:50 +0800)
committerGuanXuetao <gxt@mprc.pku.edu.cn>
Thu, 17 Mar 2011 01:19:16 +0000 (09:19 +0800)
apply clockevents_calc_mult_shift() to get rid of
shift assignment and mult calculation for osmr0
  -- by advice with Thomas Gleixner

Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
arch/unicore32/kernel/time.c

index 8090d763a606eb2845a897d7deaa440305feae1b..8bb4b815bce929cf6175bc66cf2cd106102059ad 100644 (file)
@@ -66,11 +66,6 @@ puv3_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c)
 static struct clock_event_device ckevt_puv3_osmr0 = {
        .name           = "osmr0",
        .features       = CLOCK_EVT_FEAT_ONESHOT,
-#ifdef CONFIG_ARCH_FPGA
-       .shift          = 18, /* correct shift val: 16, but warn_on_slowpath */
-#else
-       .shift          = 30,
-#endif
        .rating         = 200,
        .set_next_event = puv3_osmr0_set_next_event,
        .set_mode       = puv3_osmr0_set_mode,
@@ -101,8 +96,8 @@ void __init time_init(void)
        OST_OIER = 0;           /* disable any timer interrupts */
        OST_OSSR = 0;           /* clear status on all timers */
 
-       ckevt_puv3_osmr0.mult =
-               div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, ckevt_puv3_osmr0.shift);
+       clockevents_calc_mult_shift(&ckevt_puv3_osmr0, CLOCK_TICK_RATE, 5);
+
        ckevt_puv3_osmr0.max_delta_ns =
                clockevent_delta2ns(0x7fffffff, &ckevt_puv3_osmr0);
        ckevt_puv3_osmr0.min_delta_ns =