[PATCH] [ARM] pxa: extend to support 96 IRQs
Haojian Zhuang
haojian.zhuang at marvell.com
Thu Apr 29 10:22:12 EDT 2010
Extend to support 96 IRQs for PXA950.
Signed-off-by: Haojian Zhuang <haojian.zhuang at marvell.com>
---
arch/arm/mach-pxa/irq.c | 9 ++++++---
arch/arm/mach-pxa/pxa3xx.c | 2 +-
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c
index 1beb40f..bb5a0c7 100644
--- a/arch/arm/mach-pxa/irq.c
+++ b/arch/arm/mach-pxa/irq.c
@@ -27,9 +27,12 @@
#define MAX_INTERNAL_IRQS 128
-#define IRQ_BIT(n) (((n) - PXA_IRQ(0)) & 0x1f)
-#define _ICMR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICMR2 : &ICMR))
-#define _ICLR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICLR2 : &ICLR))
+#define _IDX(n) ((n) - PXA_IRQ(0))
+#define IRQ_BIT(n) (_IDX(n) & 0x1f)
+#define _ICMR(n) (*((_IDX(n) < 32) ? &ICMR \
+ : ((_IDX(n) < 64) ? &ICMR2 : &ICMR3)))
+#define _ICLR(n) (*((_IDX(n) < 32) ? &ICLR \
+ : ((_IDX(n) < 64) ? &ICLR2 : &ICLR3)))
/*
* This is for peripheral IRQs internal to the PXA chip.
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 4d7c03e..6285951 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -581,7 +581,7 @@ void __init pxa3xx_init_irq(void)
value |= (1 << 6);
__asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value));
- pxa_init_irq(56, pxa3xx_set_wake);
+ pxa_init_irq(96, pxa3xx_set_wake);
pxa_init_ext_wakeup_irq(pxa3xx_set_wake);
pxa_init_gpio(IRQ_GPIO_2_x, 2, 127, NULL);
}
--
1.5.6.5
More information about the linux-arm-kernel
mailing list