From 58d3f53a39eca0dc64318bed7b18dd9de3a3520b Mon Sep 17 00:00:00 2001 From: Anson Huang Date: Wed, 26 Oct 2011 11:14:34 +0800 Subject: 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 --- arch/arm/mach-mx6/cpu.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'arch/arm/mach-mx6/cpu.c') 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); + -- cgit v1.2.3