Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07d93ebd authored by Viresh Kumar's avatar Viresh Kumar Committed by Daniel Lezcano
Browse files

score/time: Migrate to new 'set-state' interface



Migrate score 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.

We weren't doing anything in ONESHOT/SHUTDOWN/RESUME modes and so
callbacks for them aren't implemented.

Cc: Chen Liqin <liqin.linux@gmail.com>
Cc: Lennox Wu <lennox.wu@gmail.com>
Cc: Michael Opdenacker <michael.opdenacker@free-electrons.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
parent 07aeed3f
Loading
Loading
Loading
Loading
+10 −21
Original line number Diff line number Diff line
@@ -55,23 +55,12 @@ static int score_timer_set_next_event(unsigned long delta,
	return 0;
}

static void score_timer_set_mode(enum clock_event_mode mode,
		struct clock_event_device *evdev)
static int score_timer_set_periodic(struct clock_event_device *evt)
{
	switch (mode) {
	case CLOCK_EVT_MODE_PERIODIC:
	outl((TMR_M_PERIODIC | TMR_IE_ENABLE), P_TIMER0_CTRL);
	outl(SYSTEM_CLOCK / HZ, P_TIMER0_PRELOAD);
	outl(inl(P_TIMER0_CTRL) | TMR_ENABLE, P_TIMER0_CTRL);
		break;
	case CLOCK_EVT_MODE_ONESHOT:
	case CLOCK_EVT_MODE_SHUTDOWN:
	case CLOCK_EVT_MODE_RESUME:
	case CLOCK_EVT_MODE_UNUSED:
		break;
	default:
		BUG();
	}
	return 0;
}

static struct clock_event_device score_clockevent = {
@@ -79,7 +68,7 @@ static struct clock_event_device score_clockevent = {
	.features		= CLOCK_EVT_FEAT_PERIODIC,
	.shift			= 16,
	.set_next_event		= score_timer_set_next_event,
	.set_mode	= score_timer_set_mode,
	.set_state_periodic	= score_timer_set_periodic,
};

void __init time_init(void)