aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Burton <paul.burton@imgtec.com>2014-03-14 12:06:16 -0400
committerPaul Burton <paul.burton@imgtec.com>2014-05-28 11:20:29 -0400
commit68c1232f51350b007cb1f05260e9e784770ec513 (patch)
treea9059486d9c85d889cd9615792e2dbbf76029bb0
parent245a7868d2f2e54a9a9b084de00d003a9badb2a5 (diff)
MIPS: smp-cps: function to determine whether CPS SMP is in use
The core power down state for cpuidle will require that the CPS SMP implementation is in use. This patch provides a mips_cps_smp_in_use function which determines whether or not the CPS SMP implementation is currently in use. Signed-off-by: Paul Burton <paul.burton@imgtec.com>
-rw-r--r--arch/mips/include/asm/smp-cps.h2
-rw-r--r--arch/mips/kernel/smp-cps.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/arch/mips/include/asm/smp-cps.h b/arch/mips/include/asm/smp-cps.h
index d49279e92eb5..324df2c835ac 100644
--- a/arch/mips/include/asm/smp-cps.h
+++ b/arch/mips/include/asm/smp-cps.h
@@ -31,6 +31,8 @@ extern void mips_cps_core_init(void);
31 31
32extern struct vpe_boot_config *mips_cps_boot_vpes(void); 32extern struct vpe_boot_config *mips_cps_boot_vpes(void);
33 33
34extern bool mips_cps_smp_in_use(void);
35
34#else /* __ASSEMBLY__ */ 36#else /* __ASSEMBLY__ */
35 37
36.extern mips_cps_bootcfg; 38.extern mips_cps_bootcfg;
diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c
index af90e82f94bf..c7879fbe9f5b 100644
--- a/arch/mips/kernel/smp-cps.c
+++ b/arch/mips/kernel/smp-cps.c
@@ -260,6 +260,12 @@ static struct plat_smp_ops cps_smp_ops = {
260 .cpus_done = cps_cpus_done, 260 .cpus_done = cps_cpus_done,
261}; 261};
262 262
263bool mips_cps_smp_in_use(void)
264{
265 extern struct plat_smp_ops *mp_ops;
266 return mp_ops == &cps_smp_ops;
267}
268
263int register_cps_smp_ops(void) 269int register_cps_smp_ops(void)
264{ 270{
265 if (!mips_cm_present()) { 271 if (!mips_cm_present()) {