aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2012-11-05 21:48:40 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-11-13 06:47:40 -0500
commitb62655f4c6f3e4d21934eee14ac2ac5cd479c97c (patch)
tree9ce3d50f4bd5c97929de97b3bdcc8059104a8811
parentee951c630c5ce5108f8014ce1c9d738b5bbfea60 (diff)
ARM: 7571/1: SMP: add function arch_send_wakeup_ipi_mask()
Add function arch_send_wakeup_ipi_mask(), so that platform code can use it as an easy way to wake up cores that are in WFI. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/include/asm/smp.h1
-rw-r--r--arch/arm/kernel/smp.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
index 2e3be16c6766..d3a22bebe6ce 100644
--- a/arch/arm/include/asm/smp.h
+++ b/arch/arm/include/asm/smp.h
@@ -79,6 +79,7 @@ extern void cpu_die(void);
79 79
80extern void arch_send_call_function_single_ipi(int cpu); 80extern void arch_send_call_function_single_ipi(int cpu);
81extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); 81extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
82extern void arch_send_wakeup_ipi_mask(const struct cpumask *mask);
82 83
83struct smp_operations { 84struct smp_operations {
84#ifdef CONFIG_SMP 85#ifdef CONFIG_SMP
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 8e20754dd31d..dd5dd0248b88 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -415,6 +415,11 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask)
415 smp_cross_call(mask, IPI_CALL_FUNC); 415 smp_cross_call(mask, IPI_CALL_FUNC);
416} 416}
417 417
418void arch_send_wakeup_ipi_mask(const struct cpumask *mask)
419{
420 smp_cross_call(mask, IPI_WAKEUP);
421}
422
418void arch_send_call_function_single_ipi(int cpu) 423void arch_send_call_function_single_ipi(int cpu)
419{ 424{
420 smp_cross_call(cpumask_of(cpu), IPI_CALL_FUNC_SINGLE); 425 smp_cross_call(cpumask_of(cpu), IPI_CALL_FUNC_SINGLE);