Commit 428ab280 authored by Ralf Baechle's avatar Ralf Baechle

[MIPS] SMP: Scatter __cpuinit over the code as needed.

MIPS doesn't do CPU hotplugging yet but since many of the functions don't
even have an __init let's fix this right.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent d98cc84d
...@@ -287,7 +287,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) ...@@ -287,7 +287,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
* (unsigned long)idle->thread_info the gp * (unsigned long)idle->thread_info the gp
* assumes a 1:1 mapping of TC => VPE * assumes a 1:1 mapping of TC => VPE
*/ */
void prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
struct thread_info *gp = task_thread_info(idle); struct thread_info *gp = task_thread_info(idle);
dvpe(); dvpe();
...@@ -321,7 +321,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) ...@@ -321,7 +321,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
evpe(EVPE_ENABLE); evpe(EVPE_ENABLE);
} }
void prom_init_secondary(void) void __cpuinit prom_init_secondary(void)
{ {
/* Enable per-cpu interrupts */ /* Enable per-cpu interrupts */
...@@ -330,7 +330,7 @@ void prom_init_secondary(void) ...@@ -330,7 +330,7 @@ void prom_init_secondary(void)
(STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP6 | STATUSF_IP7)); (STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP6 | STATUSF_IP7));
} }
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ)); write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ));
......
...@@ -24,7 +24,7 @@ void core_send_ipi(int cpu, unsigned int action) ...@@ -24,7 +24,7 @@ void core_send_ipi(int cpu, unsigned int action)
* Platform "CPU" startup hook * Platform "CPU" startup hook
*/ */
void prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
smtc_boot_secondary(cpu, idle); smtc_boot_secondary(cpu, idle);
} }
...@@ -33,7 +33,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) ...@@ -33,7 +33,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
* Post-config but pre-boot cleanup entry point * Post-config but pre-boot cleanup entry point
*/ */
void prom_init_secondary(void) void __cpuinit prom_init_secondary(void)
{ {
void smtc_init_secondary(void); void smtc_init_secondary(void);
int myvpe; int myvpe;
...@@ -75,7 +75,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) ...@@ -75,7 +75,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
* SMP initialization finalization entry point * SMP initialization finalization entry point
*/ */
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
smtc_smp_finish(); smtc_smp_finish();
} }
......
...@@ -53,7 +53,7 @@ void core_send_ipi(int cpu, unsigned int action) ...@@ -53,7 +53,7 @@ void core_send_ipi(int cpu, unsigned int action)
* Platform "CPU" startup hook * Platform "CPU" startup hook
*/ */
void prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
#ifdef CONFIG_MIPS_MT_SMTC #ifdef CONFIG_MIPS_MT_SMTC
smtc_boot_secondary(cpu, idle); smtc_boot_secondary(cpu, idle);
...@@ -64,7 +64,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) ...@@ -64,7 +64,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
* Post-config but pre-boot cleanup entry point * Post-config but pre-boot cleanup entry point
*/ */
void prom_init_secondary(void) void __cpuinit prom_init_secondary(void)
{ {
#ifdef CONFIG_MIPS_MT_SMTC #ifdef CONFIG_MIPS_MT_SMTC
void smtc_init_secondary(void); void smtc_init_secondary(void);
...@@ -103,7 +103,7 @@ void plat_prepare_cpus(unsigned int max_cpus) ...@@ -103,7 +103,7 @@ void plat_prepare_cpus(unsigned int max_cpus)
* SMP initialization finalization entry point * SMP initialization finalization entry point
*/ */
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
#ifdef CONFIG_MIPS_MT_SMTC #ifdef CONFIG_MIPS_MT_SMTC
smtc_smp_finish(); smtc_smp_finish();
......
...@@ -77,7 +77,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) ...@@ -77,7 +77,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
* stack so the first thing we do is throw away that stuff and load useful * stack so the first thing we do is throw away that stuff and load useful
* values into the registers ... * values into the registers ...
*/ */
void __init prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
unsigned long gp = (unsigned long) task_thread_info(idle); unsigned long gp = (unsigned long) task_thread_info(idle);
unsigned long sp = __KSTK_TOS(idle); unsigned long sp = __KSTK_TOS(idle);
...@@ -97,12 +97,12 @@ void prom_cpus_done(void) ...@@ -97,12 +97,12 @@ void prom_cpus_done(void)
* After we've done initial boot, this function is called to allow the * After we've done initial boot, this function is called to allow the
* board code to clean up state, if needed * board code to clean up state, if needed
*/ */
void prom_init_secondary(void) void __cpuinit prom_init_secondary(void)
{ {
set_c0_status(ST0_CO | ST0_IE | ST0_IM); set_c0_status(ST0_CO | ST0_IE | ST0_IM);
} }
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
} }
......
...@@ -22,11 +22,11 @@ void core_send_ipi(int cpu, unsigned int action) ...@@ -22,11 +22,11 @@ void core_send_ipi(int cpu, unsigned int action)
* After we've done initial boot, this function is called to allow the * After we've done initial boot, this function is called to allow the
* board code to clean up state, if needed * board code to clean up state, if needed
*/ */
void prom_init_secondary(void) void __cpuinit prom_init_secondary(void)
{ {
} }
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
} }
...@@ -43,7 +43,7 @@ void __init prom_prepare_cpus(unsigned int max_cpus) ...@@ -43,7 +43,7 @@ void __init prom_prepare_cpus(unsigned int max_cpus)
/* /*
* Firmware CPU startup hook * Firmware CPU startup hook
*/ */
void prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
} }
......
...@@ -171,7 +171,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) ...@@ -171,7 +171,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
* set sp to the kernel stack of the newly created idle process, gp to the proc * set sp to the kernel stack of the newly created idle process, gp to the proc
* struct so that current_thread_info() will work. * struct so that current_thread_info() will work.
*/ */
void __init prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
unsigned long gp = (unsigned long)task_thread_info(idle); unsigned long gp = (unsigned long)task_thread_info(idle);
unsigned long sp = __KSTK_TOS(idle); unsigned long sp = __KSTK_TOS(idle);
...@@ -191,7 +191,7 @@ void __init prom_cpus_done(void) ...@@ -191,7 +191,7 @@ void __init prom_cpus_done(void)
{ {
} }
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
} }
......
...@@ -58,7 +58,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) ...@@ -58,7 +58,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
* Setup the PC, SP, and GP of a secondary processor and start it * Setup the PC, SP, and GP of a secondary processor and start it
* running! * running!
*/ */
void prom_boot_secondary(int cpu, struct task_struct *idle) void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle)
{ {
int retval; int retval;
...@@ -72,7 +72,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) ...@@ -72,7 +72,7 @@ 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) #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
extern void bcm1480_smp_init(void); extern void bcm1480_smp_init(void);
...@@ -89,7 +89,7 @@ void prom_init_secondary(void) ...@@ -89,7 +89,7 @@ void prom_init_secondary(void)
* Do any tidying up before marking online and running the idle * Do any tidying up before marking online and running the idle
* loop * loop
*/ */
void prom_smp_finish(void) void __cpuinit prom_smp_finish(void)
{ {
#if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80) #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
extern void bcm1480_smp_finish(void); extern void bcm1480_smp_finish(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment