summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2011-11-16 14:04:41 +0800
committerAnson Huang <b20788@freescale.com>2011-11-16 14:08:36 +0800
commit70a1c4ccc727ce628397297b018bb0e39d0049ec (patch)
tree339d31b72fa20f2a54302daebb228be3f764b996
parent2b08ba0ca4c3861c23d633336084c0d7be963235 (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.c9
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);