aboutsummaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2011-10-26 11:14:34 +0800
committerEric Miao <eric.miao@canonical.com>2011-11-10 07:38:54 +0800
commit58d3f53a39eca0dc64318bed7b18dd9de3a3520b (patch)
treeac5002bafacc42a6b22965283b82ca836af278d3 /arch/arm
parent2f18a84207bd26d13820f2bb58b42ba7e8d15916 (diff)
ENGR00160798 [MX6]Workaround for NFS
Disable SCU standby mode will prevent SOC enter WAIT mode, so, by default, we would not enable WAIT mode to make NFS work, to enable WAIT mode, you should not use NFS, and pass "enable_wait_mode" from uboot. Signed-off-by: Anson Huang <b20788@freescale.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-mx6/cpu.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/arch/arm/mach-mx6/cpu.c b/arch/arm/mach-mx6/cpu.c
index 46ac7da8cbe..66dde3c6a66 100644
--- a/arch/arm/mach-mx6/cpu.c
+++ b/arch/arm/mach-mx6/cpu.c
@@ -37,6 +37,7 @@ extern void mx6_wait(void);
struct cpu_op *(*get_cpu_op)(int *op);
static void __iomem *arm_base = IO_ADDRESS(MX6Q_A9_PLATFRM_BASE);
+static bool enable_wait_mode;
void __iomem *gpc_base;
void __iomem *ccm_base;
@@ -83,12 +84,13 @@ static int __init post_cpu_init(void)
__raw_writel(reg, base + 0x50);
iounmap(base);
- /* Allow SCU_CLK to be disabled when all cores are in WFI*/
- base = IO_ADDRESS(SCU_BASE_ADDR);
- reg = __raw_readl(base);
- reg |= 0x20;
- __raw_writel(reg, base);
-
+ if (enable_wait_mode) {
+ /* Allow SCU_CLK to be disabled when all cores are in WFI*/
+ base = IO_ADDRESS(SCU_BASE_ADDR);
+ reg = __raw_readl(base);
+ reg |= 0x20;
+ __raw_writel(reg, base);
+ }
/* Allocate IRAM for WAIT code. */
/* Move wait routine into iRAM */
cpaddr = (unsigned long)iram_alloc(SZ_4K, &iram_paddr);
@@ -111,5 +113,12 @@ static int __init post_cpu_init(void)
return 0;
}
-
postcore_initcall(post_cpu_init);
+
+static int __init enable_wait(char *p)
+{
+ enable_wait_mode = true;
+ return 0;
+}
+early_param("enable_wait_mode", enable_wait);
+