diff options
Diffstat (limited to 'arch/arm/mach-ux500/platsmp.c')
| -rw-r--r-- | arch/arm/mach-ux500/platsmp.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index 3db7782f3afb..18f7af339dc9 100644 --- a/arch/arm/mach-ux500/platsmp.c +++ b/arch/arm/mach-ux500/platsmp.c | |||
| @@ -16,14 +16,17 @@ | |||
| 16 | #include <linux/device.h> | 16 | #include <linux/device.h> |
| 17 | #include <linux/smp.h> | 17 | #include <linux/smp.h> |
| 18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
| 19 | #include <linux/irqchip/arm-gic.h> | ||
| 19 | 20 | ||
| 20 | #include <asm/cacheflush.h> | 21 | #include <asm/cacheflush.h> |
| 21 | #include <asm/hardware/gic.h> | ||
| 22 | #include <asm/smp_plat.h> | 22 | #include <asm/smp_plat.h> |
| 23 | #include <asm/smp_scu.h> | 23 | #include <asm/smp_scu.h> |
| 24 | |||
| 24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
| 25 | #include <mach/setup.h> | 26 | #include <mach/setup.h> |
| 26 | 27 | ||
| 28 | #include "id.h" | ||
| 29 | |||
| 27 | /* This is called from headsmp.S to wakeup the secondary core */ | 30 | /* This is called from headsmp.S to wakeup the secondary core */ |
| 28 | extern void u8500_secondary_startup(void); | 31 | extern void u8500_secondary_startup(void); |
| 29 | 32 | ||
| @@ -91,7 +94,7 @@ static int __cpuinit ux500_boot_secondary(unsigned int cpu, struct task_struct * | |||
| 91 | */ | 94 | */ |
| 92 | write_pen_release(cpu_logical_map(cpu)); | 95 | write_pen_release(cpu_logical_map(cpu)); |
| 93 | 96 | ||
| 94 | smp_send_reschedule(cpu); | 97 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
| 95 | 98 | ||
| 96 | timeout = jiffies + (1 * HZ); | 99 | timeout = jiffies + (1 * HZ); |
| 97 | while (time_before(jiffies, timeout)) { | 100 | while (time_before(jiffies, timeout)) { |
| @@ -155,8 +158,6 @@ static void __init ux500_smp_init_cpus(void) | |||
| 155 | 158 | ||
| 156 | for (i = 0; i < ncores; i++) | 159 | for (i = 0; i < ncores; i++) |
| 157 | set_cpu_possible(i, true); | 160 | set_cpu_possible(i, true); |
| 158 | |||
| 159 | set_smp_cross_call(gic_raise_softirq); | ||
| 160 | } | 161 | } |
| 161 | 162 | ||
| 162 | static void __init ux500_smp_prepare_cpus(unsigned int max_cpus) | 163 | static void __init ux500_smp_prepare_cpus(unsigned int max_cpus) |
