diff options
Diffstat (limited to 'arch/arm/mach-shmobile/platsmp.c')
-rw-r--r-- | arch/arm/mach-shmobile/platsmp.c | 17 |
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 | ||
28 | static unsigned int __init shmobile_smp_get_core_count(void) | 30 | static 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 | ||
48 | int shmobile_platform_cpu_kill(unsigned int cpu) | 56 | int 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 | ||
67 | int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | 81 | int __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 | ||