diff options
Diffstat (limited to 'drivers/clocksource')
-rw-r--r-- | drivers/clocksource/bcm_kona_timer.c | 8 | ||||
-rw-r--r-- | drivers/clocksource/cs5535-clockevt.c | 4 | ||||
-rw-r--r-- | drivers/clocksource/exynos_mct.c | 7 | ||||
-rw-r--r-- | drivers/clocksource/moxart_timer.c | 8 | ||||
-rw-r--r-- | drivers/clocksource/mxs_timer.c | 7 | ||||
-rw-r--r-- | drivers/clocksource/samsung_pwm_timer.c | 6 | ||||
-rw-r--r-- | drivers/clocksource/sun4i_timer.c | 8 | ||||
-rw-r--r-- | drivers/clocksource/tegra20_timer.c | 5 | ||||
-rw-r--r-- | drivers/clocksource/time-armada-370-xp.c | 8 | ||||
-rw-r--r-- | drivers/clocksource/time-orion.c | 8 | ||||
-rw-r--r-- | drivers/clocksource/timer-marco.c | 8 | ||||
-rw-r--r-- | drivers/clocksource/timer-sun5i.c | 8 |
12 files changed, 35 insertions, 50 deletions
diff --git a/drivers/clocksource/bcm_kona_timer.c b/drivers/clocksource/bcm_kona_timer.c index 771332f67dca..9f9c11bf0362 100644 --- a/drivers/clocksource/bcm_kona_timer.c +++ b/drivers/clocksource/bcm_kona_timer.c @@ -131,22 +131,20 @@ static int kona_timer_set_next_event(unsigned long clc, static int kona_timer_set_mode(enum clock_event_mode mode, struct clock_event_device *unused) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_ONESHOT: /* by default mode is one shot don't do any thing */ break; - default: - ret = -ENOSYS; case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_RESUME: case CLOCK_EVT_MODE_ONESHOT_STOPPED: kona_timer_disable_and_clear(timers.tmr_regs); break; + default: + return -ENOSYS; } - return ret; + return 0; } static struct clock_event_device kona_clockevent_timer = { diff --git a/drivers/clocksource/cs5535-clockevt.c b/drivers/clocksource/cs5535-clockevt.c index 88909148c278..a9c166842c1b 100644 --- a/drivers/clocksource/cs5535-clockevt.c +++ b/drivers/clocksource/cs5535-clockevt.c @@ -80,10 +80,9 @@ static void start_timer(struct cs5535_mfgpt_timer *timer, uint16_t delta) static int mfgpt_set_mode(enum clock_event_mode mode, struct clock_event_device *evt) { - disable_timer(cs5535_event_clock); - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: + disable_timer(cs5535_event_clock); start_timer(cs5535_event_clock, MFGPT_PERIODIC); break; case CLOCK_EVT_MODE_ONESHOT: @@ -91,6 +90,7 @@ static int mfgpt_set_mode(enum clock_event_mode mode, case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: case CLOCK_EVT_MODE_RESUME: + disable_timer(cs5535_event_clock); break; default: return -ENOSYS; diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index 177504b5b567..d65ca62a4fe4 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -248,10 +248,10 @@ static int exynos4_comp_set_mode(enum clock_event_mode mode, struct clock_event_device *evt) { unsigned long cycles_per_jiffy; - exynos4_mct_comp0_stop(); switch (mode) { case CLOCK_EVT_MODE_PERIODIC: + exynos4_mct_comp0_stop(); cycles_per_jiffy = (((unsigned long long) NSEC_PER_SEC / HZ * evt->mult) >> evt->shift); exynos4_mct_comp0_start(mode, cycles_per_jiffy); @@ -262,6 +262,7 @@ static int exynos4_comp_set_mode(enum clock_event_mode mode, case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: case CLOCK_EVT_MODE_RESUME: + exynos4_mct_comp0_stop(); break; default: return -ENOSYS; @@ -356,10 +357,9 @@ static inline int exynos4_tick_set_mode(enum clock_event_mode mode, struct mct_clock_event_device *mevt = this_cpu_ptr(&percpu_mct_tick); unsigned long cycles_per_jiffy; - exynos4_mct_tick_stop(mevt); - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: + exynos4_mct_tick_stop(mevt); cycles_per_jiffy = (((unsigned long long) NSEC_PER_SEC / HZ * evt->mult) >> evt->shift); exynos4_mct_tick_start(cycles_per_jiffy, mevt); @@ -370,6 +370,7 @@ static inline int exynos4_tick_set_mode(enum clock_event_mode mode, case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: case CLOCK_EVT_MODE_RESUME: + exynos4_mct_tick_stop(mevt); break; default: return -ENOSYS; diff --git a/drivers/clocksource/moxart_timer.c b/drivers/clocksource/moxart_timer.c index bccce6025722..2db0a8be0d48 100644 --- a/drivers/clocksource/moxart_timer.c +++ b/drivers/clocksource/moxart_timer.c @@ -61,8 +61,6 @@ static unsigned int clock_count_per_tick; static int moxart_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *clk) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_RESUME: case CLOCK_EVT_MODE_ONESHOT: @@ -73,15 +71,15 @@ static int moxart_clkevt_mode(enum clock_event_mode mode, writel(clock_count_per_tick, base + TIMER1_BASE + REG_LOAD); writel(TIMER1_ENABLE, base + TIMER_CR); break; - default: - ret = -ENOSYS; case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: writel(TIMER1_DISABLE, base + TIMER_CR); break; + default: + return -ENOSYS; } - return ret; + return 0; } static int moxart_clkevt_next_event(unsigned long cycles, diff --git a/drivers/clocksource/mxs_timer.c b/drivers/clocksource/mxs_timer.c index d7eb0ba91cd6..aed8f53ea872 100644 --- a/drivers/clocksource/mxs_timer.c +++ b/drivers/clocksource/mxs_timer.c @@ -175,9 +175,6 @@ static int mxs_set_mode(enum clock_event_mode mode, clock_event_mode_label[mode]); #endif /* DEBUG */ - /* Remember timer mode */ - mxs_clockevent_mode = mode; - switch (mode) { case CLOCK_EVT_MODE_ONESHOT: timrot_irq_enable(); @@ -189,8 +186,12 @@ static int mxs_set_mode(enum clock_event_mode mode, /* Left event sources disabled, no more interrupts appear */ break; default: + timrot_irq_enable(); return -ENOSYS; } + + /* Remember timer mode */ + mxs_clockevent_mode = mode; return 0; } diff --git a/drivers/clocksource/samsung_pwm_timer.c b/drivers/clocksource/samsung_pwm_timer.c index 86a5cb3f4e65..45730f56e924 100644 --- a/drivers/clocksource/samsung_pwm_timer.c +++ b/drivers/clocksource/samsung_pwm_timer.c @@ -210,21 +210,19 @@ static int samsung_set_next_event(unsigned long cycles, static int samsung_set_mode(enum clock_event_mode mode, struct clock_event_device *evt) { - samsung_time_stop(pwm.event_id); - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: + samsung_time_stop(pwm.event_id); samsung_time_setup(pwm.event_id, pwm.clock_count_per_tick - 1); samsung_time_start(pwm.event_id, true); break; case CLOCK_EVT_MODE_ONESHOT: - break; - case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: case CLOCK_EVT_MODE_RESUME: + samsung_time_stop(pwm.event_id); break; default: return -ENOSYS; diff --git a/drivers/clocksource/sun4i_timer.c b/drivers/clocksource/sun4i_timer.c index 3803c5a51fcd..129881c55f5d 100644 --- a/drivers/clocksource/sun4i_timer.c +++ b/drivers/clocksource/sun4i_timer.c @@ -84,8 +84,6 @@ static void sun4i_clkevt_time_start(u8 timer, bool periodic) static int sun4i_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *clk) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: sun4i_clkevt_time_stop(0); @@ -96,16 +94,16 @@ static int sun4i_clkevt_mode(enum clock_event_mode mode, sun4i_clkevt_time_stop(0); sun4i_clkevt_time_start(0, false); break; - default: - ret = -ENOSYS; case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_RESUME: case CLOCK_EVT_MODE_ONESHOT_STOPPED: sun4i_clkevt_time_stop(0); break; + default: + return -ENOSYS; } - return ret; + return 0; } static int sun4i_clkevt_next_event(unsigned long evt, diff --git a/drivers/clocksource/tegra20_timer.c b/drivers/clocksource/tegra20_timer.c index b71ec18396ec..5283e4562bf3 100644 --- a/drivers/clocksource/tegra20_timer.c +++ b/drivers/clocksource/tegra20_timer.c @@ -74,19 +74,18 @@ static int tegra_timer_set_mode(enum clock_event_mode mode, { u32 reg; - timer_writel(0, TIMER3_BASE + TIMER_PTV); - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: + timer_writel(0, TIMER3_BASE + TIMER_PTV); reg = 0xC0000000 | ((1000000/HZ)-1); timer_writel(reg, TIMER3_BASE + TIMER_PTV); break; case CLOCK_EVT_MODE_ONESHOT: - break; case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: case CLOCK_EVT_MODE_RESUME: + timer_writel(0, TIMER3_BASE + TIMER_PTV); break; default: return -ENOSYS; diff --git a/drivers/clocksource/time-armada-370-xp.c b/drivers/clocksource/time-armada-370-xp.c index c0683ee323f9..60e585dc18cd 100644 --- a/drivers/clocksource/time-armada-370-xp.c +++ b/drivers/clocksource/time-armada-370-xp.c @@ -130,8 +130,6 @@ static int armada_370_xp_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: /* @@ -145,8 +143,6 @@ armada_370_xp_clkevt_mode(enum clock_event_mode mode, */ local_timer_ctrl_clrset(0, TIMER0_RELOAD_EN | enable_mask); break; - default: - ret = -ENOSYS; case CLOCK_EVT_MODE_ONESHOT: case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: @@ -162,8 +158,10 @@ armada_370_xp_clkevt_mode(enum clock_event_mode mode, */ writel(TIMER0_CLR_MASK, local_base + LCL_TIMER_EVENTS_STATUS); break; + default: + return -ENOSYS; } - return ret; + return 0; } static int armada_370_xp_clkevt_irq; diff --git a/drivers/clocksource/time-orion.c b/drivers/clocksource/time-orion.c index 978ff5604b2d..3e2aab6f2ffa 100644 --- a/drivers/clocksource/time-orion.c +++ b/drivers/clocksource/time-orion.c @@ -76,8 +76,6 @@ static int orion_clkevt_next_event(unsigned long delta, static int orion_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: /* setup and enable periodic timer at 1/HZ intervals */ @@ -85,8 +83,6 @@ static int orion_clkevt_mode(enum clock_event_mode mode, writel(ticks_per_jiffy - 1, timer_base + TIMER1_VAL); orion_timer_ctrl_clrset(0, TIMER1_RELOAD_EN | TIMER1_EN); break; - default: - ret = -ENOSYS; case CLOCK_EVT_MODE_ONESHOT: case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: @@ -95,8 +91,10 @@ static int orion_clkevt_mode(enum clock_event_mode mode, /* disable timer */ orion_timer_ctrl_clrset(TIMER1_RELOAD_EN | TIMER1_EN, 0); break; + default: + return -ENOSYS; } - return ret; + return 0; } static struct clock_event_device orion_clkevt = { diff --git a/drivers/clocksource/timer-marco.c b/drivers/clocksource/timer-marco.c index 8a20acb613da..8717271f0334 100644 --- a/drivers/clocksource/timer-marco.c +++ b/drivers/clocksource/timer-marco.c @@ -116,8 +116,6 @@ static int sirfsoc_timer_set_next_event(unsigned long delta, static int sirfsoc_timer_set_mode(enum clock_event_mode mode, struct clock_event_device *ce) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_ONESHOT: /* enable in set_next_event */ @@ -125,13 +123,13 @@ static int sirfsoc_timer_set_mode(enum clock_event_mode mode, case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_ONESHOT_STOPPED: case CLOCK_EVT_MODE_RESUME: + sirfsoc_timer_count_disable(smp_processor_id()); break; default: - ret = -ENOSYS; + return -ENOSYS; } - sirfsoc_timer_count_disable(smp_processor_id()); - return ret; + return 0; } static void sirfsoc_clocksource_suspend(struct clocksource *cs) diff --git a/drivers/clocksource/timer-sun5i.c b/drivers/clocksource/timer-sun5i.c index 30d8ae85404a..7756191a7ba4 100644 --- a/drivers/clocksource/timer-sun5i.c +++ b/drivers/clocksource/timer-sun5i.c @@ -82,8 +82,6 @@ static void sun5i_clkevt_time_start(u8 timer, bool periodic) static int sun5i_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *clk) { - int ret = 0; - switch (mode) { case CLOCK_EVT_MODE_PERIODIC: sun5i_clkevt_time_stop(0); @@ -94,16 +92,16 @@ static int sun5i_clkevt_mode(enum clock_event_mode mode, sun5i_clkevt_time_stop(0); sun5i_clkevt_time_start(0, false); break; - default: - ret = -ENOSYS; case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: case CLOCK_EVT_MODE_RESUME: case CLOCK_EVT_MODE_ONESHOT_STOPPED: sun5i_clkevt_time_stop(0); break; + default: + return -ENOSYS; } - return ret; + return 0; } static int sun5i_clkevt_next_event(unsigned long evt, |