]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/mips/au1000/common/irq.c
[MIPS] Alchemy: kill useless #include's, #define's and extern's
[linux-2.6-omap-h63xx.git] / arch / mips / au1000 / common / irq.c
index 59e932a928d2001eac06acfdd3cf14e24da25605..f0626992fd75fce7b4f735d91c9db199ccdaba55 100644 (file)
@@ -1,7 +1,6 @@
 /*
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
- *             ppopov@mvista.com or source@mvista.com
+ * Copyright 2001, 2007-2008 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc. <source@mvista.com>
  *
  * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org)
  *
@@ -27,7 +26,6 @@
  */
 #include <linux/bitops.h>
 #include <linux/init.h>
-#include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 
@@ -318,38 +316,6 @@ static struct irq_chip level_irq_type = {
        .end            = end_irq,
 };
 
-#ifdef CONFIG_PM
-void startup_match20_interrupt(irq_handler_t handler)
-{
-       struct irq_desc *desc = &irq_desc[AU1000_TOY_MATCH2_INT];
-
-       static struct irqaction action;
-       memset(&action, 0, sizeof(struct irqaction));
-
-       /*
-        * This is a big problem.... since we didn't use request_irq
-        * when kernel/irq.c calls probe_irq_xxx this interrupt will
-        * be probed for usage. This will end up disabling the device :(
-        * Give it a bogus "action" pointer -- this will keep it from
-        * getting auto-probed!
-        *
-        * By setting the status to match that of request_irq() we
-        * can avoid it.  --cgray
-       */
-       action.dev_id = handler;
-       action.flags = IRQF_DISABLED;
-       cpus_clear(action.mask);
-       action.name = "Au1xxx TOY";
-       action.handler = handler;
-       action.next = NULL;
-
-       desc->action = &action;
-       desc->status &= ~(IRQ_DISABLED | IRQ_AUTODETECT | IRQ_WAITING | IRQ_INPROGRESS);
-
-       local_enable_irq(AU1000_TOY_MATCH2_INT);
-}
-#endif
-
 static void __init setup_local_irq(unsigned int irq_nr, int type, int int_req)
 {
        unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
@@ -494,9 +460,9 @@ static void intc0_req0_irqdispatch(void)
                return;
        }
 #endif
-       bit = ffs(intc0_req0);
+       bit = __ffs(intc0_req0);
        intc0_req0 &= ~(1 << bit);
-       do_IRQ(MIPS_CPU_IRQ_BASE + bit);
+       do_IRQ(AU1000_INTC0_INT_BASE + bit);
 }
 
 
@@ -510,9 +476,9 @@ static void intc0_req1_irqdispatch(void)
        if (!intc0_req1)
                return;
 
-       bit = ffs(intc0_req1);
+       bit = __ffs(intc0_req1);
        intc0_req1 &= ~(1 << bit);
-       do_IRQ(bit);
+       do_IRQ(AU1000_INTC0_INT_BASE + bit);
 }
 
 
@@ -530,9 +496,9 @@ static void intc1_req0_irqdispatch(void)
        if (!intc1_req0)
                return;
 
-       bit = ffs(intc1_req0);
+       bit = __ffs(intc1_req0);
        intc1_req0 &= ~(1 << bit);
-       do_IRQ(MIPS_CPU_IRQ_BASE + 32 + bit);
+       do_IRQ(AU1000_INTC1_INT_BASE + bit);
 }
 
 
@@ -546,9 +512,9 @@ static void intc1_req1_irqdispatch(void)
        if (!intc1_req1)
                return;
 
-       bit = ffs(intc1_req1);
+       bit = __ffs(intc1_req1);
        intc1_req1 &= ~(1 << bit);
-       do_IRQ(MIPS_CPU_IRQ_BASE + 32 + bit);
+       do_IRQ(AU1000_INTC1_INT_BASE + bit);
 }
 
 asmlinkage void plat_irq_dispatch(void)
@@ -623,7 +589,7 @@ void __init arch_init_irq(void)
                imp++;
        }
 
-       set_c0_status(ALLINTS);
+       set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4);
 
        /* Board specific IRQ initialization.
        */