mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
arm64: Allow IPI_WAKEUP to be used outside of the ACPI parking protocol
An empty IPI is useful for cpuidle to wake sleeping CPUs without causing them to do unnecessary work upon receipt of the IPI. IPI_WAKEUP fills this use-case nicely, so let it be used outside of the ACPI parking protocol. Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Signed-off-by: azrim <mirzaspc@gmail.com>
This commit is contained in:
parent
3142fce40a
commit
a4daa912eb
@ -95,14 +95,7 @@ extern void secondary_entry(void);
|
||||
extern void arch_send_call_function_single_ipi(int cpu);
|
||||
extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
|
||||
|
||||
#ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL
|
||||
extern void arch_send_wakeup_ipi_mask(const struct cpumask *mask);
|
||||
#else
|
||||
static inline void arch_send_wakeup_ipi_mask(const struct cpumask *mask)
|
||||
{
|
||||
BUILD_BUG();
|
||||
}
|
||||
#endif
|
||||
|
||||
extern int __cpu_disable(void);
|
||||
|
||||
|
@ -798,12 +798,10 @@ void arch_send_call_function_single_ipi(int cpu)
|
||||
smp_cross_call_common(cpumask_of(cpu), IPI_CALL_FUNC);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL
|
||||
void arch_send_wakeup_ipi_mask(const struct cpumask *mask)
|
||||
{
|
||||
smp_cross_call_common(mask, IPI_WAKEUP);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IRQ_WORK
|
||||
void arch_irq_work_raise(void)
|
||||
@ -921,13 +919,8 @@ void handle_IPI(int ipinr, struct pt_regs *regs)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL
|
||||
case IPI_WAKEUP:
|
||||
WARN_ONCE(!acpi_parking_protocol_valid(cpu),
|
||||
"CPU%u: Wake-up IPI outside the ACPI parking protocol\n",
|
||||
cpu);
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
pr_crit("CPU%u: Unknown IPI message 0x%x\n", cpu, ipinr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user