aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/bmips.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/include/asm/bmips.h')
-rw-r--r--arch/mips/include/asm/bmips.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/arch/mips/include/asm/bmips.h b/arch/mips/include/asm/bmips.h
index 27bd060d716e..cbaccebf5065 100644
--- a/arch/mips/include/asm/bmips.h
+++ b/arch/mips/include/asm/bmips.h
@@ -46,8 +46,35 @@
46 46
47#include <linux/cpumask.h> 47#include <linux/cpumask.h>
48#include <asm/r4kcache.h> 48#include <asm/r4kcache.h>
49#include <asm/smp-ops.h>
50
51extern struct plat_smp_ops bmips43xx_smp_ops;
52extern struct plat_smp_ops bmips5000_smp_ops;
53
54static inline int register_bmips_smp_ops(void)
55{
56#if IS_ENABLED(CONFIG_CPU_BMIPS) && IS_ENABLED(CONFIG_SMP)
57 switch (current_cpu_type()) {
58 case CPU_BMIPS32:
59 case CPU_BMIPS3300:
60 return register_up_smp_ops();
61 case CPU_BMIPS4350:
62 case CPU_BMIPS4380:
63 register_smp_ops(&bmips43xx_smp_ops);
64 break;
65 case CPU_BMIPS5000:
66 register_smp_ops(&bmips5000_smp_ops);
67 break;
68 default:
69 return -ENODEV;
70 }
71
72 return 0;
73#else
74 return -ENODEV;
75#endif
76}
49 77
50extern struct plat_smp_ops bmips_smp_ops;
51extern char bmips_reset_nmi_vec; 78extern char bmips_reset_nmi_vec;
52extern char bmips_reset_nmi_vec_end; 79extern char bmips_reset_nmi_vec_end;
53extern char bmips_smp_movevec; 80extern char bmips_smp_movevec;