aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/platsmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-shmobile/platsmp.c')
-rw-r--r--arch/arm/mach-shmobile/platsmp.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/platsmp.c b/arch/arm/mach-shmobile/platsmp.c
index 5a2b69cf5ba6..bacdd667e3b1 100644
--- a/arch/arm/mach-shmobile/platsmp.c
+++ b/arch/arm/mach-shmobile/platsmp.c
@@ -20,10 +20,12 @@
20#include <asm/hardware/gic.h> 20#include <asm/hardware/gic.h>
21#include <asm/mach-types.h> 21#include <asm/mach-types.h>
22#include <mach/common.h> 22#include <mach/common.h>
23#include <mach/emev2.h>
23 24
24#define is_sh73a0() (machine_is_ag5evm() || machine_is_kota2() || \ 25#define is_sh73a0() (machine_is_ag5evm() || machine_is_kota2() || \
25 of_machine_is_compatible("renesas,sh73a0")) 26 of_machine_is_compatible("renesas,sh73a0"))
26#define is_r8a7779() machine_is_marzen() 27#define is_r8a7779() machine_is_marzen()
28#define is_emev2() of_machine_is_compatible("renesas,emev2")
27 29
28static unsigned int __init shmobile_smp_get_core_count(void) 30static unsigned int __init shmobile_smp_get_core_count(void)
29{ 31{
@@ -33,6 +35,9 @@ static unsigned int __init shmobile_smp_get_core_count(void)
33 if (is_r8a7779()) 35 if (is_r8a7779())
34 return r8a7779_get_core_count(); 36 return r8a7779_get_core_count();
35 37
38 if (is_emev2())
39 return emev2_get_core_count();
40
36 return 1; 41 return 1;
37} 42}
38 43
@@ -43,6 +48,9 @@ static void __init shmobile_smp_prepare_cpus(void)
43 48
44 if (is_r8a7779()) 49 if (is_r8a7779())
45 r8a7779_smp_prepare_cpus(); 50 r8a7779_smp_prepare_cpus();
51
52 if (is_emev2())
53 emev2_smp_prepare_cpus();
46} 54}
47 55
48int shmobile_platform_cpu_kill(unsigned int cpu) 56int shmobile_platform_cpu_kill(unsigned int cpu)
@@ -50,6 +58,9 @@ int shmobile_platform_cpu_kill(unsigned int cpu)
50 if (is_r8a7779()) 58 if (is_r8a7779())
51 return r8a7779_platform_cpu_kill(cpu); 59 return r8a7779_platform_cpu_kill(cpu);
52 60
61 if (is_emev2())
62 return emev2_platform_cpu_kill(cpu);
63
53 return 1; 64 return 1;
54} 65}
55 66
@@ -62,6 +73,9 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
62 73
63 if (is_r8a7779()) 74 if (is_r8a7779())
64 r8a7779_secondary_init(cpu); 75 r8a7779_secondary_init(cpu);
76
77 if (is_emev2())
78 emev2_secondary_init(cpu);
65} 79}
66 80
67int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) 81int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
@@ -72,6 +86,9 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
72 if (is_r8a7779()) 86 if (is_r8a7779())
73 return r8a7779_boot_secondary(cpu); 87 return r8a7779_boot_secondary(cpu);
74 88
89 if (is_emev2())
90 return emev2_boot_secondary(cpu);
91
75 return -ENOSYS; 92 return -ENOSYS;
76} 93}
77 94