.. | .. |
---|
19 | 19 | #include <linux/interrupt.h> |
---|
20 | 20 | #include <linux/irq.h> |
---|
21 | 21 | #include <linux/irqreturn.h> |
---|
| 22 | +#include <linux/dovetail.h> |
---|
22 | 23 | #include <linux/sched_clock.h> |
---|
23 | 24 | #include <linux/of.h> |
---|
24 | 25 | #include <linux/of_address.h> |
---|
.. | .. |
---|
135 | 136 | struct timer_of *to = to_timer_of(evt); |
---|
136 | 137 | |
---|
137 | 138 | sun4i_timer_clear_interrupt(timer_of_base(to)); |
---|
138 | | - evt->event_handler(evt); |
---|
| 139 | + clockevents_handle_event(evt); |
---|
139 | 140 | |
---|
140 | 141 | return IRQ_HANDLED; |
---|
141 | 142 | } |
---|
.. | .. |
---|
146 | 147 | .clkevt = { |
---|
147 | 148 | .name = "sun4i_tick", |
---|
148 | 149 | .rating = 350, |
---|
149 | | - .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, |
---|
| 150 | + .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_PIPELINE, |
---|
150 | 151 | .set_state_shutdown = sun4i_clkevt_shutdown, |
---|
151 | 152 | .set_state_periodic = sun4i_clkevt_set_periodic, |
---|
152 | 153 | .set_state_oneshot = sun4i_clkevt_set_oneshot, |
---|