diff options
Diffstat (limited to 'arch/mips/include/asm/smp-ops.h')
| -rw-r--r-- | arch/mips/include/asm/smp-ops.h | 18 | 
1 files changed, 17 insertions, 1 deletions
diff --git a/arch/mips/include/asm/smp-ops.h b/arch/mips/include/asm/smp-ops.h index ef2a8041e78..6ba1fb8b11e 100644 --- a/arch/mips/include/asm/smp-ops.h +++ b/arch/mips/include/asm/smp-ops.h @@ -13,6 +13,8 @@  #include <linux/errno.h> +#include <asm/mips-cm.h> +  #ifdef CONFIG_SMP  #include <linux/cpumask.h> @@ -24,7 +26,6 @@ struct plat_smp_ops {  	void (*send_ipi_mask)(const struct cpumask *mask, unsigned int action);  	void (*init_secondary)(void);  	void (*smp_finish)(void); -	void (*cpus_done)(void);  	void (*boot_secondary)(int cpu, struct task_struct *idle);  	void (*smp_setup)(void);  	void (*prepare_cpus)(unsigned int max_cpus); @@ -43,6 +44,9 @@ static inline void plat_smp_setup(void)  	mp_ops->smp_setup();  } +extern void gic_send_ipi_single(int cpu, unsigned int action); +extern void gic_send_ipi_mask(const struct cpumask *mask, unsigned int action); +  #else /* !CONFIG_SMP */  struct plat_smp_ops; @@ -76,6 +80,9 @@ static inline int register_cmp_smp_ops(void)  #ifdef CONFIG_MIPS_CMP  	extern struct plat_smp_ops cmp_smp_ops; +	if (!mips_cm_present()) +		return -ENODEV; +  	register_smp_ops(&cmp_smp_ops);  	return 0; @@ -97,4 +104,13 @@ static inline int register_vsmp_smp_ops(void)  #endif  } +#ifdef CONFIG_MIPS_CPS +extern int register_cps_smp_ops(void); +#else +static inline int register_cps_smp_ops(void) +{ +	return -ENODEV; +} +#endif +  #endif /* __ASM_SMP_OPS_H */  | 
