diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2011-12-21 07:25:34 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-12-23 17:54:50 -0500 |
commit | 7c324d837f214290febac87da6815dff1ed41d04 (patch) | |
tree | 81ecfe4d8084b5f271f363ab3dcfa3eb9e0aae82 /arch/arm/common | |
parent | 4fd7f9b128107034fa925b6877fae3c275f0da86 (diff) |
ARM: 7243/1: sp804: modernize clock event registration
This removes the hardcoded shift value and lets the clockevent core
come up with suitable mult and div factors. Tested on the
Integrator/CP.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/common')
-rw-r--r-- | arch/arm/common/timer-sp.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/arm/common/timer-sp.c b/arch/arm/common/timer-sp.c index 2393b5bc96fa..8794a34eae61 100644 --- a/arch/arm/common/timer-sp.c +++ b/arch/arm/common/timer-sp.c | |||
@@ -143,7 +143,6 @@ static int sp804_set_next_event(unsigned long next, | |||
143 | } | 143 | } |
144 | 144 | ||
145 | static struct clock_event_device sp804_clockevent = { | 145 | static struct clock_event_device sp804_clockevent = { |
146 | .shift = 32, | ||
147 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | 146 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, |
148 | .set_mode = sp804_set_mode, | 147 | .set_mode = sp804_set_mode, |
149 | .set_next_event = sp804_set_next_event, | 148 | .set_next_event = sp804_set_next_event, |
@@ -169,13 +168,9 @@ void __init sp804_clockevents_init(void __iomem *base, unsigned int irq, | |||
169 | 168 | ||
170 | clkevt_base = base; | 169 | clkevt_base = base; |
171 | clkevt_reload = DIV_ROUND_CLOSEST(rate, HZ); | 170 | clkevt_reload = DIV_ROUND_CLOSEST(rate, HZ); |
172 | |||
173 | evt->name = name; | 171 | evt->name = name; |
174 | evt->irq = irq; | 172 | evt->irq = irq; |
175 | evt->mult = div_sc(rate, NSEC_PER_SEC, evt->shift); | ||
176 | evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt); | ||
177 | evt->min_delta_ns = clockevent_delta2ns(0xf, evt); | ||
178 | 173 | ||
179 | setup_irq(irq, &sp804_timer_irq); | 174 | setup_irq(irq, &sp804_timer_irq); |
180 | clockevents_register_device(evt); | 175 | clockevents_config_and_register(evt, rate, 0xf, 0xffffffff); |
181 | } | 176 | } |