git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'pxa-keypad'
[pandora-kernel.git]
/
arch
/
mips
/
sibyte
/
cfe
/
smp.c
diff --git
a/arch/mips/sibyte/cfe/smp.c
b/arch/mips/sibyte/cfe/smp.c
index
e44ce1a
..
534a629
100644
(file)
--- a/
arch/mips/sibyte/cfe/smp.c
+++ b/
arch/mips/sibyte/cfe/smp.c
@@
-21,8
+21,8
@@
#include <linux/smp.h>
#include <asm/processor.h>
#include <linux/smp.h>
#include <asm/processor.h>
-#include
"cfe_api.h"
-#include
"cfe_error.h"
+#include
<asm/fw/cfe/cfe_api.h>
+#include
<asm/fw/cfe/cfe_error.h>
/*
* Use CFE to find out how many CPUs are available, setting up
/*
* Use CFE to find out how many CPUs are available, setting up
@@
-31,7
+31,7
@@
*
* Common setup before any secondaries are started
*/
*
* Common setup before any secondaries are started
*/
-void __init p
rom_prepare_cpus(unsigned int max_cpus
)
+void __init p
lat_smp_setup(void
)
{
int i, num;
{
int i, num;
@@
-40,27
+40,31
@@
void __init prom_prepare_cpus(unsigned int max_cpus)
__cpu_number_map[0] = 0;
__cpu_logical_map[0] = 0;
__cpu_number_map[0] = 0;
__cpu_logical_map[0] = 0;
- for (i
=1, num=0; i<
NR_CPUS; i++) {
+ for (i
= 1, num = 0; i <
NR_CPUS; i++) {
if (cfe_cpu_stop(i) == 0) {
cpu_set(i, phys_cpu_present_map);
__cpu_number_map[i] = ++num;
__cpu_logical_map[num] = i;
}
}
if (cfe_cpu_stop(i) == 0) {
cpu_set(i, phys_cpu_present_map);
__cpu_number_map[i] = ++num;
__cpu_logical_map[num] = i;
}
}
- printk("Detected %i available secondary CPU(s)\n", num);
+ printk(KERN_INFO "Detected %i available secondary CPU(s)\n", num);
+}
+
+void __init plat_prepare_cpus(unsigned int max_cpus)
+{
}
/*
* Setup the PC, SP, and GP of a secondary processor and start it
* running!
*/
}
/*
* Setup the PC, SP, and GP of a secondary processor and start it
* running!
*/
-void prom_boot_secondary(int cpu, struct task_struct *idle)
+void
__cpuinit
prom_boot_secondary(int cpu, struct task_struct *idle)
{
int retval;
retval = cfe_cpu_start(cpu_logical_map(cpu), &smp_bootstrap,
__KSTK_TOS(idle),
{
int retval;
retval = cfe_cpu_start(cpu_logical_map(cpu), &smp_bootstrap,
__KSTK_TOS(idle),
- (unsigned long)
idle->thread_info
, 0);
+ (unsigned long)
task_thread_info(idle)
, 0);
if (retval != 0)
printk("cfe_start_cpu(%i) returned %i\n" , cpu, retval);
}
if (retval != 0)
printk("cfe_start_cpu(%i) returned %i\n" , cpu, retval);
}
@@
-68,20
+72,34
@@
void prom_boot_secondary(int cpu, struct task_struct *idle)
/*
* Code to run on secondary just after probing the CPU
*/
/*
* Code to run on secondary just after probing the CPU
*/
-void prom_init_secondary(void)
+void
__cpuinit
prom_init_secondary(void)
{
{
+#if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
+ extern void bcm1480_smp_init(void);
+ bcm1480_smp_init();
+#elif defined(CONFIG_SIBYTE_SB1250)
extern void sb1250_smp_init(void);
sb1250_smp_init();
extern void sb1250_smp_init(void);
sb1250_smp_init();
+#else
+#error invalid SMP configuration
+#endif
}
/*
* Do any tidying up before marking online and running the idle
* loop
*/
}
/*
* Do any tidying up before marking online and running the idle
* loop
*/
-void prom_smp_finish(void)
+void
__cpuinit
prom_smp_finish(void)
{
{
+#if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
+ extern void bcm1480_smp_finish(void);
+ bcm1480_smp_finish();
+#elif defined(CONFIG_SIBYTE_SB1250)
extern void sb1250_smp_finish(void);
sb1250_smp_finish();
extern void sb1250_smp_finish(void);
sb1250_smp_finish();
+#else
+#error invalid SMP configuration
+#endif
}
/*
}
/*