summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuanXuetao <gxt@mprc.pku.edu.cn>2011-02-17 12:50:43 +0300
committerGuanXuetao <gxt@mprc.pku.edu.cn>2011-03-17 04:19:16 +0300
commita913a8234bb812d21bb0f75c2458f9eb941ddf91 (patch)
treefc030a37abde57dd2b87bf399b51c99546329a53
parentb31d82737d068bf7ff8ed4592914c8fd7fdb51f0 (diff)
downloadlinux-a913a8234bb812d21bb0f75c2458f9eb941ddf91.tar.xz
unicore32 time.c: change calculate method for clock_event_device
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>
-rw-r--r--arch/unicore32/kernel/time.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/arch/unicore32/kernel/time.c b/arch/unicore32/kernel/time.c
index 8090d763a606..8bb4b815bce9 100644
--- a/arch/unicore32/kernel/time.c
+++ b/arch/unicore32/kernel/time.c
@@ -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 =