From: Anson Huang Date: Wed, 26 Oct 2011 03:14:34 +0000 (+0800) Subject: ENGR00160798 [MX6]Workaround for NFS X-Git-Tag: v3.0.35-fsl_4.1.0~2165 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=815b35f7149679b99f81c46bf7e56ba3452881a5;p=karo-tx-linux.git 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 --- diff --git a/arch/arm/mach-mx6/cpu.c b/arch/arm/mach-mx6/cpu.c index 46ac7da8cbea..66dde3c6a66a 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); +