diff options
Diffstat (limited to 'arch/arm/kernel/smp_scu.c')
-rw-r--r-- | arch/arm/kernel/smp_scu.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/arm/kernel/smp_scu.c b/arch/arm/kernel/smp_scu.c index cb7dd40..1936649 100644 --- a/arch/arm/kernel/smp_scu.c +++ b/arch/arm/kernel/smp_scu.c @@ -15,12 +15,18 @@ #include <asm/cacheflush.h> #include <asm/cputype.h> +#include <plat/cpu.h> + #define SCU_CTRL 0x00 #define SCU_CONFIG 0x04 #define SCU_CPU_STATUS 0x08 #define SCU_INVALIDATE 0x0c #define SCU_FPGA_REVISION 0x10 +#ifdef CONFIG_MACH_PX +extern void logbuf_force_unlock(void); +#endif + /* * Get the number of CPU cores from the SCU configuration */ @@ -33,7 +39,7 @@ unsigned int __init scu_get_core_count(void __iomem *scu_base) /* * Enable the SCU */ -void __init scu_enable(void __iomem *scu_base) +void scu_enable(void __iomem *scu_base) { u32 scu_ctrl; @@ -51,6 +57,10 @@ void __init scu_enable(void __iomem *scu_base) if (scu_ctrl & 1) return; + if ((soc_is_exynos4412() && (samsung_rev() >= EXYNOS4412_REV_1_0)) || + soc_is_exynos4210()) + scu_ctrl |= (1<<3); + scu_ctrl |= 1; __raw_writel(scu_ctrl, scu_base + SCU_CTRL); @@ -59,6 +69,10 @@ void __init scu_enable(void __iomem *scu_base) * initialised is visible to the other CPUs. */ flush_cache_all(); + +#ifdef CONFIG_MACH_PX + logbuf_force_unlock(); +#endif } /* |