diff options
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/timers/timer-tmu.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c index 33a24fcf0a1d..2b62f9cff22b 100644 --- a/arch/sh/kernel/timers/timer-tmu.c +++ b/arch/sh/kernel/timers/timer-tmu.c | |||
@@ -146,7 +146,14 @@ static irqreturn_t tmu_timer_interrupt(int irq, void *dummy) | |||
146 | _tmu_clear_status(TMU0); | 146 | _tmu_clear_status(TMU0); |
147 | _tmu_set_irq(TMU0,tmu0_clockevent.mode != CLOCK_EVT_MODE_ONESHOT); | 147 | _tmu_set_irq(TMU0,tmu0_clockevent.mode != CLOCK_EVT_MODE_ONESHOT); |
148 | 148 | ||
149 | evt->event_handler(evt); | 149 | switch (tmu0_clockevent.mode) { |
150 | case CLOCK_EVT_MODE_ONESHOT: | ||
151 | case CLOCK_EVT_MODE_PERIODIC: | ||
152 | evt->event_handler(evt); | ||
153 | break; | ||
154 | default: | ||
155 | break; | ||
156 | } | ||
150 | 157 | ||
151 | return IRQ_HANDLED; | 158 | return IRQ_HANDLED; |
152 | } | 159 | } |
@@ -271,6 +278,7 @@ static int tmu_timer_init(void) | |||
271 | clockevent_delta2ns(1, &tmu0_clockevent); | 278 | clockevent_delta2ns(1, &tmu0_clockevent); |
272 | 279 | ||
273 | tmu0_clockevent.cpumask = cpumask_of(0); | 280 | tmu0_clockevent.cpumask = cpumask_of(0); |
281 | tmu0_clockevent.rating = 100; | ||
274 | 282 | ||
275 | clockevents_register_device(&tmu0_clockevent); | 283 | clockevents_register_device(&tmu0_clockevent); |
276 | 284 | ||