Messages in this thread | | | Date | Mon, 26 Jan 2015 10:33:23 +0100 | From | Daniel Lezcano <> | Subject | Re: [PATCH V2] clockevents: rockchip: Add rockchip timer for rk3288 |
| |
On 01/26/2015 02:25 AM, Kever Yang wrote: > Hi Daniel,
Hi Kever,
[ ... ]
>> +static inline int rk_timer_set_next_event(unsigned long cycles, >> + struct clock_event_device *ce) >> +{ >> + rk_timer_disable(ce); >> + rk_timer_update_counter(cycles, ce); >> + rk_timer_enable(ce, TIMER_MODE_USER_DEFINED_COUNT); >> + return 0; >> +} >> + >> +static inline void rk_timer_set_mode(enum clock_event_mode mode, >> + struct clock_event_device *ce) >> +{ >> + switch (mode) { >> + case CLOCK_EVT_MODE_PERIODIC: >> + rk_timer_disable(ce); >> + rk_timer_update_counter(rk_timer(ce)->freq / HZ - 1, ce); >> + rk_timer_enable(ce, TIMER_MODE_FREE_RUNNING); >> + case CLOCK_EVT_MODE_ONESHOT: > This driver seems init the timer as ONE SHOT mode, and we can > set to PERIODIC by this code, but what if user set the timer > as PERIODIC mode and then want to set back to ONESHOT mode?
Mmh, I think that will be followed by a call set_next_event, hence disabling the timer and set the right mode with the next event.
-- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
| |