diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2015-08-06 12:11:13 +0300 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2015-08-13 12:23:27 +0300 |
commit | a54868b460b65bd93a5324a7fc35dfd556fe576c (patch) | |
tree | 16c43b3da99981896d76d048a98925ffa626c02a /arch/arm/mach-ep93xx | |
parent | 4f2f1f76dc8c5cb6528d7451de6eacdbf8fb0cbf (diff) | |
download | linux-a54868b460b65bd93a5324a7fc35dfd556fe576c.tar.xz |
ARM: ep93xx/timer: Migrate to new 'set-state' interface
Migrate EP93xx driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-ep93xx')
-rw-r--r-- | arch/arm/mach-ep93xx/timer-ep93xx.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/arm/mach-ep93xx/timer-ep93xx.c b/arch/arm/mach-ep93xx/timer-ep93xx.c index ac48ac1fd16d..e5f791145bd0 100644 --- a/arch/arm/mach-ep93xx/timer-ep93xx.c +++ b/arch/arm/mach-ep93xx/timer-ep93xx.c @@ -86,19 +86,22 @@ static int ep93xx_clkevt_set_next_event(unsigned long next, } -static void ep93xx_clkevt_set_mode(enum clock_event_mode mode, - struct clock_event_device *evt) +static int ep93xx_clkevt_shutdown(struct clock_event_device *evt) { /* Disable timer */ writel(0, EP93XX_TIMER3_CONTROL); + + return 0; } static struct clock_event_device ep93xx_clockevent = { - .name = "timer1", - .features = CLOCK_EVT_FEAT_ONESHOT, - .set_mode = ep93xx_clkevt_set_mode, - .set_next_event = ep93xx_clkevt_set_next_event, - .rating = 300, + .name = "timer1", + .features = CLOCK_EVT_FEAT_ONESHOT, + .set_state_shutdown = ep93xx_clkevt_shutdown, + .set_state_oneshot = ep93xx_clkevt_shutdown, + .tick_resume = ep93xx_clkevt_shutdown, + .set_next_event = ep93xx_clkevt_set_next_event, + .rating = 300, }; static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id) |