summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-11-23 20:19:16 +0000
committerArnd Bergmann <arnd@arndb.de>2011-11-23 20:19:16 +0000
commitbb68926609f411c258d6946f7680e009625ab950 (patch)
tree8faaed3be0016a49559d070508197266ed9dff09 /arch/arm/mach-imx
parent33e1e10a5874e735dd2897116ddc222e581e54bf (diff)
parenteaa142ca3dee1478aca1a645bb0e5a249a33241a (diff)
downloadlinux-bb68926609f411c258d6946f7680e009625ab950.tar.gz
linux-bb68926609f411c258d6946f7680e009625ab950.tar.bz2
linux-bb68926609f411c258d6946f7680e009625ab950.zip
Merge branch 'for-arnd' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into fixes
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r--arch/arm/mach-imx/src.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
index 36cacbd0dcc2..a8e33681b732 100644
--- a/arch/arm/mach-imx/src.c
+++ b/arch/arm/mach-imx/src.c
@@ -14,6 +14,7 @@
#include <linux/io.h>
#include <linux/of.h>
#include <linux/of_address.h>
+#include <linux/smp.h>
#include <asm/unified.h>
#define SRC_SCR 0x000
@@ -23,10 +24,15 @@
static void __iomem *src_base;
+#ifndef CONFIG_SMP
+#define cpu_logical_map(cpu) 0
+#endif
+
void imx_enable_cpu(int cpu, bool enable)
{
u32 mask, val;
+ cpu = cpu_logical_map(cpu);
mask = 1 << (BP_SRC_SCR_CORE1_ENABLE + cpu - 1);
val = readl_relaxed(src_base + SRC_SCR);
val = enable ? val | mask : val & ~mask;
@@ -35,6 +41,7 @@ void imx_enable_cpu(int cpu, bool enable)
void imx_set_cpu_jump(int cpu, void *jump_addr)
{
+ cpu = cpu_logical_map(cpu);
writel_relaxed(BSYM(virt_to_phys(jump_addr)),
src_base + SRC_GPR1 + cpu * 8);
}