MN10300: Use clockevents_calc_mult_shift()
authorThomas Gleixner <tglx@linutronix.de>
Fri, 18 Mar 2011 16:52:50 +0000 (16:52 +0000)
committerDavid Howells <dhowells@redhat.com>
Fri, 18 Mar 2011 16:52:50 +0000 (16:52 +0000)
Use clockevents_calc_mult_shift() instead of the homebrewn function in
mn10300/kernel/time.c.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <johnstul@us.ibm.com>
Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
Cc: Mark Salter <msalter@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
arch/mn10300/kernel/cevt-mn10300.c
arch/mn10300/kernel/internal.h
arch/mn10300/kernel/time.c

index d4cb535bf7863750768090ed049d7702a9649e04..9eb387adea7cc3d69f99fb968be83036a6a5262b 100644 (file)
@@ -89,9 +89,10 @@ int __init init_clockevents(void)
        cd->name                = "Timestamp";
        cd->features            = CLOCK_EVT_FEAT_ONESHOT;
 
-       /* Calculate the min / max delta */
-       clockevent_set_clock(cd, MN10300_JCCLK);
+       /* Calculate shift/mult. We want to spawn at least 1 second */
+       clockevents_calc_mult_shift(cd, MN10300_JCCLK, 1);
 
+       /* Calculate the min / max delta */
        cd->max_delta_ns        = clockevent_delta2ns(TMJCBR_MAX, cd);
        cd->min_delta_ns        = clockevent_delta2ns(100, cd);
 
index 3d43d4dd02334e521f6d922e3b575566178d9de3..ea946613f46d12fb8f57cea490428e740f03015c 100644 (file)
@@ -33,10 +33,3 @@ extern void mn10300_low_ipi_handler(void);
  * time.c
  */
 extern irqreturn_t local_timer_interrupt(void);
-
-/*
- * time.c
- */
-#ifdef CONFIG_CSRC_MN10300
-extern void clocksource_set_clock(struct clocksource *, unsigned int);
-#endif
index 78f72080ca171a2b0645e31c596ce438ca1681d0..67c6416a58f8304cae8a6eb3c5f4307185afb903 100644 (file)
@@ -93,23 +93,6 @@ irqreturn_t local_timer_interrupt(void)
        return IRQ_HANDLED;
 }
 
-void __cpuinit clockevent_set_clock(struct clock_event_device *cd,
-                                   unsigned int clock)
-{
-       u64 temp;
-       u32 shift;
-
-       /* Find a shift value */
-       for (shift = 32; shift > 0; shift--) {
-               temp = (u64) clock << shift;
-               do_div(temp, NSEC_PER_SEC);
-               if ((temp >> 32) == 0)
-                       break;
-       }
-       cd->shift = shift;
-       cd->mult = (u32) temp;
-}
-
 /*
  * initialise the various timers used by the main part of the kernel
  */