summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/include
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-01-07 10:51:35 +0900
committerPaul Mundt <lethal@linux-sh.org>2011-01-07 10:51:35 +0900
commite9d728f528f9548c8dd013899b23e662fa7b6bca (patch)
treed88a5df6e5a2b33ebe088ad0223fe54679a59df3 /arch/arm/mach-shmobile/include
parent018a3fc7e3824ffcc80ad0160f9782c7d577c0c1 (diff)
parent6155f77d09b968f591876f368d4843168910449e (diff)
Merge branch 'rmobile/smp' into rmobile-latest
Conflicts: arch/arm/Kconfig arch/arm/mach-shmobile/include/mach/entry-macro-intc.S Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/include')
-rw-r--r--arch/arm/mach-shmobile/include/mach/common.h6
-rw-r--r--arch/arm/mach-shmobile/include/mach/smp.h16
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h
index 9f46cf5ca75..013ac0ee825 100644
--- a/arch/arm/mach-shmobile/include/mach/common.h
+++ b/arch/arm/mach-shmobile/include/mach/common.h
@@ -3,6 +3,7 @@
extern struct sys_timer shmobile_timer;
extern void shmobile_setup_console(void);
+extern void shmobile_secondary_vector(void);
struct clk;
extern int clk_init(void);
extern void shmobile_handle_irq_intc(struct pt_regs *);
@@ -40,4 +41,9 @@ extern void sh73a0_pinmux_init(void);
extern struct clk sh73a0_extal1_clk;
extern struct clk sh73a0_extal2_clk;
+extern unsigned int sh73a0_get_core_count(void);
+extern void sh73a0_secondary_init(unsigned int cpu);
+extern int sh73a0_boot_secondary(unsigned int cpu);
+extern void sh73a0_smp_prepare_cpus(void);
+
#endif /* __ARCH_MACH_COMMON_H */
diff --git a/arch/arm/mach-shmobile/include/mach/smp.h b/arch/arm/mach-shmobile/include/mach/smp.h
new file mode 100644
index 00000000000..f4a35ff82c6
--- /dev/null
+++ b/arch/arm/mach-shmobile/include/mach/smp.h
@@ -0,0 +1,16 @@
+#ifndef __MACH_SMP_H
+#define __MACH_SMP_H
+
+#include <asm/hardware/gic.h>
+#include <asm/smp_mpidr.h>
+
+/*
+ * We use IRQ1 as the IPI
+ */
+static inline void smp_cross_call(const struct cpumask *mask)
+{
+#if defined(CONFIG_ARM_GIC)
+ gic_raise_softirq(mask, 1);
+#endif
+}
+#endif