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

Commit d4578592 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

ARM: local timers: make the runtime registration interface mandatory



Remove all traces of the compile-time local timer interface,
and make the runtime selection mandatory.

Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 5ca709c1
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -19,38 +19,12 @@ struct local_timer_ops {
	void (*stop)(struct clock_event_device *);
};

/*
 * Setup a per-cpu timer, whether it be a local timer or dummy broadcast
 */
void percpu_timer_setup(void);

#ifdef CONFIG_LOCAL_TIMERS
/*
 * Stop the local timer
 */
void local_timer_stop(struct clock_event_device *);

/*
 * Setup a local timer interrupt for a CPU.
 */
int local_timer_setup(struct clock_event_device *);

/*
 * Register a local timer driver
 */
int local_timer_register(struct local_timer_ops *);

#else

static inline int local_timer_setup(struct clock_event_device *evt)
{
	return -ENXIO;
}

static inline void local_timer_stop(struct clock_event_device *evt)
{
}

static inline int local_timer_register(struct local_timer_ops *ops)
{
	return -ENXIO;
+6 −17
Original line number Diff line number Diff line
@@ -246,6 +246,8 @@ static void __cpuinit smp_store_cpu_info(unsigned int cpuid)
	store_cpu_topology(cpuid);
}

static void percpu_timer_setup(void);

/*
 * This is the secondary CPU boot entry.  We're using this CPUs
 * idle thread stack, but a set of temporary page tables.
@@ -472,21 +474,7 @@ int local_timer_register(struct local_timer_ops *ops)
}
#endif

int __cpuinit __attribute__ ((weak)) local_timer_setup(struct clock_event_device *clk)
{
	if (lt_ops)
		return lt_ops->setup(clk);

	return -ENXIO;
}

void __attribute__ ((weak)) local_timer_stop(struct clock_event_device *clk)
{
	if (lt_ops)
		lt_ops->stop(clk);
}

void __cpuinit percpu_timer_setup(void)
static void __cpuinit percpu_timer_setup(void)
{
	unsigned int cpu = smp_processor_id();
	struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);
@@ -494,7 +482,7 @@ void __cpuinit percpu_timer_setup(void)
	evt->cpumask = cpumask_of(cpu);
	evt->broadcast = smp_timer_broadcast;

	if (local_timer_setup(evt))
	if (!lt_ops || lt_ops->setup(evt))
		broadcast_timer_setup(evt);
}

@@ -509,7 +497,8 @@ static void percpu_timer_stop(void)
	unsigned int cpu = smp_processor_id();
	struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);

	local_timer_stop(evt);
	if (lt_ops)
		lt_ops->stop(evt);
}
#endif