diff options
author | Anson Huang <b20788@freescale.com> | 2011-11-16 14:04:41 +0800 |
---|---|---|
committer | Anson Huang <b20788@freescale.com> | 2011-11-16 14:08:36 +0800 |
commit | 70a1c4ccc727ce628397297b018bb0e39d0049ec (patch) | |
tree | 339d31b72fa20f2a54302daebb228be3f764b996 | |
parent | 2b08ba0ca4c3861c23d633336084c0d7be963235 (diff) |
ENGR00162330 [mx6]Only mask irq#86 and #125 for wait mode
These two irqs can't be masked together, otherwise, system
will crash when only booting up one core, and NFS can only
work with 4 cores running. Need hardware team to help find
the root cause, this is only a temp work around.
Signed-off-by: Anson Huang <b20788@freescale.com>
-rw-r--r-- | arch/arm/mach-mx6/irq.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/mach-mx6/irq.c b/arch/arm/mach-mx6/irq.c index 2c7fbf026df7..3d8f81bb6e28 100644 --- a/arch/arm/mach-mx6/irq.c +++ b/arch/arm/mach-mx6/irq.c @@ -26,6 +26,7 @@ int mx6q_register_gpios(void); unsigned int gpc_wake_irq[4]; +extern bool enable_wait_mode; static int mx6_gic_irq_set_wake(struct irq_data *d, unsigned int enable) { @@ -60,9 +61,11 @@ void mx6_init_irq(void) gic_init(0, 29, IO_ADDRESS(IC_DISTRIBUTOR_BASE_ADDR), IO_ADDRESS(IC_INTERFACES_BASE_ADDR)); - /* Mask the always pending interrupts - HW bug. */ - __raw_writel(0x00400000, gpc_base + 0x0c); - __raw_writel(0x20000000, gpc_base + 0x10); + if (enable_wait_mode) { + /* Mask the always pending interrupts - HW bug. */ + __raw_writel(0x00400000, gpc_base + 0x0c); + __raw_writel(0x20000000, gpc_base + 0x10); + } for (i = MXC_INT_START; i <= MXC_INT_END; i++) { desc = irq_to_desc(i); |