From: Abhishek Paliwal <abhishek.pali...@aricent.com>

From: David Daney <david.da...@cavium.com>

... in order to keep all SMP related code together.

Signed-off-by: David Daney <david.da...@cavium.com>
Signed-off-by: Abhishek Paliwal <abhishek.pali...@aricent.com>
---
 arch/mips/cavium-octeon/setup.c       | 7 ++++---
 arch/mips/cavium-octeon/smp.c         | 6 ++++++
 arch/mips/include/asm/octeon/octeon.h | 6 ++++++
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
index 50838ff..8087392 100644
--- a/arch/mips/cavium-octeon/setup.c
+++ b/arch/mips/cavium-octeon/setup.c
@@ -591,9 +591,10 @@ void octeon_user_io_init(void)
        cvmmemctl.s.cvmsegenau = 0;
 
        /* Enable TLB parity error reporting on OCTEON II */
-       if (current_cpu_type() == CPU_CAVIUM_OCTEON2 ||
-           current_cpu_type() == CPU_CAVIUM_OCTEON3)
+       if (current_cpu_type() == CPU_CAVIUM_OCTEON2)
                cvmmemctl.s.tlbperrena = 1;
+       else if (current_cpu_type() == CPU_CAVIUM_OCTEON3)
+               cvmmemctl.s.tlbperrena = 0;
 
        write_c0_cvmmemctl(cvmmemctl.u64);
 
@@ -885,7 +886,7 @@ void __init prom_init(void)
 #endif
 
        octeon_user_io_init();
-       register_smp_ops(&octeon_smp_ops);
+       octeon_setup_smp();
 }
 
 /* Exclude a single page from the regions obtained in plat_mem_setup. */
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
index 67a078f..f12df91 100644
--- a/arch/mips/cavium-octeon/smp.c
+++ b/arch/mips/cavium-octeon/smp.c
@@ -414,3 +414,9 @@ struct plat_smp_ops octeon_smp_ops = {
        .cpu_die                = octeon_cpu_die,
 #endif
 };
+
+void __init octeon_setup_smp(void)
+{
+       register_smp_ops(&octeon_smp_ops);
+}
+
diff --git a/arch/mips/include/asm/octeon/octeon.h 
b/arch/mips/include/asm/octeon/octeon.h
index 3500bdd..45b78c0 100644
--- a/arch/mips/include/asm/octeon/octeon.h
+++ b/arch/mips/include/asm/octeon/octeon.h
@@ -270,6 +270,12 @@ extern void octeon_fixup_irqs(void);
 
 int octeon_i2c_cvmx2i2c(unsigned int cvmx_twsi_bus_num);
 
+#ifdef CONFIG_SMP
+void octeon_setup_smp(void);
+#else
+static inline void octeon_setup_smp(void) {}
+#endif
+
 extern struct semaphore octeon_bootbus_sem;
 
 extern void (*octeon_scache_init)(void);
-- 
1.8.1.4

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to