diff options
Diffstat (limited to 'arch/arm/mach-s5pv310/include/mach/smp.h')
-rw-r--r-- | arch/arm/mach-s5pv310/include/mach/smp.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pv310/include/mach/smp.h b/arch/arm/mach-s5pv310/include/mach/smp.h new file mode 100644 index 000000000000..990f3ba88a1f --- /dev/null +++ b/arch/arm/mach-s5pv310/include/mach/smp.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* linux/arch/arm/mach-s5pv310/include/mach/smp.h | ||
2 | * | ||
3 | * Cloned from arch/arm/mach-realview/include/mach/smp.h | ||
4 | */ | ||
5 | |||
6 | #ifndef ASM_ARCH_SMP_H | ||
7 | #define ASM_ARCH_SMP_H __FILE__ | ||
8 | |||
9 | #include <asm/hardware/gic.h> | ||
10 | |||
11 | extern void __iomem *gic_cpu_base_addr; | ||
12 | |||
13 | #define hard_smp_processor_id() \ | ||
14 | ({ \ | ||
15 | unsigned int cpunum; \ | ||
16 | __asm__("mrc p15, 0, %0, c0, c0, 5" \ | ||
17 | : "=r" (cpunum)); \ | ||
18 | cpunum &= 0x03; \ | ||
19 | }) | ||
20 | |||
21 | /* | ||
22 | * We use IRQ1 as the IPI | ||
23 | */ | ||
24 | static inline void smp_cross_call(const struct cpumask *mask) | ||
25 | { | ||
26 | gic_raise_softirq(mask, 1); | ||
27 | } | ||
28 | |||
29 | #endif | ||