diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-19 08:47:57 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-19 08:47:57 -0400 |
commit | 40d743b8c16a8cf6e30c1d941aa6147f9550ea75 (patch) | |
tree | 9fcdf9a06b18a275253048d1ea7c9803cec38845 /arch/powerpc/platforms/85xx/smp.c | |
parent | 7da18afa423f167e7ef3c9728e584d8bf05bd55a (diff) | |
parent | 83e686ea0291ee93b87dcdc00b96443b80de56c9 (diff) |
Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6
Diffstat (limited to 'arch/powerpc/platforms/85xx/smp.c')
-rw-r--r-- | arch/powerpc/platforms/85xx/smp.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c index 62c592ede641..04160a4cc699 100644 --- a/arch/powerpc/platforms/85xx/smp.c +++ b/arch/powerpc/platforms/85xx/smp.c | |||
@@ -25,7 +25,6 @@ | |||
25 | 25 | ||
26 | #include <sysdev/fsl_soc.h> | 26 | #include <sysdev/fsl_soc.h> |
27 | 27 | ||
28 | extern volatile unsigned long __secondary_hold_acknowledge; | ||
29 | extern void __early_start(void); | 28 | extern void __early_start(void); |
30 | 29 | ||
31 | #define BOOT_ENTRY_ADDR_UPPER 0 | 30 | #define BOOT_ENTRY_ADDR_UPPER 0 |
@@ -80,46 +79,24 @@ smp_85xx_kick_cpu(int nr) | |||
80 | } | 79 | } |
81 | 80 | ||
82 | static void __init | 81 | static void __init |
83 | smp_85xx_basic_setup(int cpu_nr) | ||
84 | { | ||
85 | /* Clear any pending timer interrupts */ | ||
86 | mtspr(SPRN_TSR, TSR_ENW | TSR_WIS | TSR_DIS | TSR_FIS); | ||
87 | |||
88 | /* Enable decrementer interrupt */ | ||
89 | mtspr(SPRN_TCR, TCR_DIE); | ||
90 | } | ||
91 | |||
92 | static void __init | ||
93 | smp_85xx_setup_cpu(int cpu_nr) | 82 | smp_85xx_setup_cpu(int cpu_nr) |
94 | { | 83 | { |
95 | mpic_setup_this_cpu(); | 84 | mpic_setup_this_cpu(); |
96 | |||
97 | smp_85xx_basic_setup(cpu_nr); | ||
98 | } | 85 | } |
99 | 86 | ||
100 | struct smp_ops_t smp_85xx_ops = { | 87 | struct smp_ops_t smp_85xx_ops = { |
101 | .kick_cpu = smp_85xx_kick_cpu, | 88 | .kick_cpu = smp_85xx_kick_cpu, |
102 | }; | 89 | }; |
103 | 90 | ||
104 | static int __init smp_dummy_probe(void) | ||
105 | { | ||
106 | return NR_CPUS; | ||
107 | } | ||
108 | |||
109 | void __init mpc85xx_smp_init(void) | 91 | void __init mpc85xx_smp_init(void) |
110 | { | 92 | { |
111 | struct device_node *np; | 93 | struct device_node *np; |
112 | 94 | ||
113 | smp_85xx_ops.message_pass = NULL; | ||
114 | |||
115 | np = of_find_node_by_type(NULL, "open-pic"); | 95 | np = of_find_node_by_type(NULL, "open-pic"); |
116 | if (np) { | 96 | if (np) { |
117 | smp_85xx_ops.probe = smp_mpic_probe; | 97 | smp_85xx_ops.probe = smp_mpic_probe; |
118 | smp_85xx_ops.setup_cpu = smp_85xx_setup_cpu; | 98 | smp_85xx_ops.setup_cpu = smp_85xx_setup_cpu; |
119 | smp_85xx_ops.message_pass = smp_mpic_message_pass; | 99 | smp_85xx_ops.message_pass = smp_mpic_message_pass; |
120 | } else { | ||
121 | smp_85xx_ops.probe = smp_dummy_probe; | ||
122 | smp_85xx_ops.setup_cpu = smp_85xx_basic_setup; | ||
123 | } | 100 | } |
124 | 101 | ||
125 | if (cpu_has_feature(CPU_FTR_DBELL)) | 102 | if (cpu_has_feature(CPU_FTR_DBELL)) |