[ARM] 4436/1: PXA: move low IRQ initialization code to pxa_init_irq_low()
authorEric Miao <eric.y.miao@gmail.com>
Wed, 6 Jun 2007 05:36:04 +0000 (06:36 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 12 Jul 2007 13:28:11 +0000 (14:28 +0100)
1. move low IRQ initialization code to pxa_init_irq_low()

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-pxa/irq.c

index 844d3de3ef4463310749d8648fe83fecee11192c..42b2da2f213e9e8bcc5f28447dacd9bf0fbd396c 100644 (file)
@@ -67,6 +67,26 @@ static struct irq_chip pxa_internal_chip_low = {
        .set_wake       = pxa_set_wake,
 };
 
+void __init pxa_init_irq_low(void)
+{
+       int irq;
+
+       /* disable all IRQs */
+       ICMR = 0;
+
+       /* all IRQs are IRQ, not FIQ */
+       ICLR = 0;
+
+       /* only unmasked interrupts kick us out of idle */
+       ICCR = 1;
+
+       for (irq = PXA_IRQ(0); irq <= PXA_IRQ(31); irq++) {
+               set_irq_chip(irq, &pxa_internal_chip_low);
+               set_irq_handler(irq, handle_level_irq);
+               set_irq_flags(irq, IRQF_VALID);
+       }
+}
+
 #ifdef CONFIG_PXA27x
 
 /*
@@ -331,12 +351,6 @@ void __init pxa_init_irq(void)
 {
        int irq;
 
-       /* disable all IRQs */
-       ICMR = 0;
-
-       /* all IRQs are IRQ, not FIQ */
-       ICLR = 0;
-
        /* clear all GPIO edge detects */
        GFER0 = 0;
        GFER1 = 0;
@@ -355,18 +369,10 @@ void __init pxa_init_irq(void)
        GEDR3 = GEDR3;
 #endif
 
-       /* only unmasked interrupts kick us out of idle */
-       ICCR = 1;
-
        /* GPIO 0 and 1 must have their mask bit always set */
        GPIO_IRQ_mask[0] = 3;
 
-       for (irq = PXA_IRQ(0); irq <= PXA_IRQ(31); irq++) {
-               set_irq_chip(irq, &pxa_internal_chip_low);
-               set_irq_handler(irq, handle_level_irq);
-               set_irq_flags(irq, IRQF_VALID);
-       }
-
+       pxa_init_irq_low();
 #ifdef CONFIG_PXA27x
        pxa_init_irq_high();
 #endif