mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 02:34:01 +08:00
arm: Add generic timer broadcast support
Implement timer_broadcast for the arm architecture, allowing for the use of clock_event_device_drivers decoupled from the timer tick broadcast mechanism. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
parent
e2c501190c
commit
3d06770eef
@ -4,6 +4,7 @@ config ARM
|
|||||||
select ARCH_BINFMT_ELF_RANDOMIZE_PIE
|
select ARCH_BINFMT_ELF_RANDOMIZE_PIE
|
||||||
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
||||||
select ARCH_HAVE_CUSTOM_GPIO_H
|
select ARCH_HAVE_CUSTOM_GPIO_H
|
||||||
|
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
||||||
select ARCH_WANT_IPC_PARSE_VERSION
|
select ARCH_WANT_IPC_PARSE_VERSION
|
||||||
select BUILDTIME_EXTABLE_SORT if MMU
|
select BUILDTIME_EXTABLE_SORT if MMU
|
||||||
select CPU_PM if (SUSPEND || CPU_IDLE)
|
select CPU_PM if (SUSPEND || CPU_IDLE)
|
||||||
|
@ -476,7 +476,7 @@ u64 smp_irq_stat_cpu(unsigned int cpu)
|
|||||||
static DEFINE_PER_CPU(struct clock_event_device, percpu_clockevent);
|
static DEFINE_PER_CPU(struct clock_event_device, percpu_clockevent);
|
||||||
|
|
||||||
#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
|
#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
|
||||||
static void smp_timer_broadcast(const struct cpumask *mask)
|
void tick_broadcast(const struct cpumask *mask)
|
||||||
{
|
{
|
||||||
smp_cross_call(mask, IPI_TIMER);
|
smp_cross_call(mask, IPI_TIMER);
|
||||||
}
|
}
|
||||||
@ -524,7 +524,6 @@ static void __cpuinit percpu_timer_setup(void)
|
|||||||
struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);
|
struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);
|
||||||
|
|
||||||
evt->cpumask = cpumask_of(cpu);
|
evt->cpumask = cpumask_of(cpu);
|
||||||
evt->broadcast = smp_timer_broadcast;
|
|
||||||
|
|
||||||
if (!lt_ops || lt_ops->setup(evt))
|
if (!lt_ops || lt_ops->setup(evt))
|
||||||
broadcast_timer_setup(evt);
|
broadcast_timer_setup(evt);
|
||||||
|
Loading…
Reference in New Issue
Block a user