fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / sh / boards / renesas / hs7751rvoip / irq.c
index ed4c5b5..943f93a 100644 (file)
  * Lineo uSolutions, Inc. 2003.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/io.h>
 #include <asm/irq.h>
-#include <asm/hs7751rvoip/hs7751rvoip.h>
+#include <asm/hs7751rvoip.h>
 
 static int mask_pos[] = {8, 9, 10, 11, 12, 13, 0, 1, 2, 3, 4, 5, 6, 7};
 
@@ -36,30 +35,24 @@ static unsigned int startup_hs7751rvoip_irq(unsigned int irq)
 
 static void disable_hs7751rvoip_irq(unsigned int irq)
 {
-       unsigned long flags;
        unsigned short val;
        unsigned short mask = 0xffff ^ (0x0001 << mask_pos[irq]);
 
        /* Set the priority in IPR to 0 */
-       local_irq_save(flags);
        val = ctrl_inw(IRLCNTR3);
        val &= mask;
        ctrl_outw(val, IRLCNTR3);
-       local_irq_restore(flags);
 }
 
 static void enable_hs7751rvoip_irq(unsigned int irq)
 {
-       unsigned long flags;
        unsigned short val;
        unsigned short value = (0x0001 << mask_pos[irq]);
 
        /* Set priority in IPR back to original value */
-       local_irq_save(flags);
        val = ctrl_inw(IRLCNTR3);
        val |= value;
        ctrl_outw(val, IRLCNTR3);
-       local_irq_restore(flags);
 }
 
 static void ack_hs7751rvoip_irq(unsigned int irq)
@@ -86,7 +79,7 @@ static struct hw_interrupt_type hs7751rvoip_irq_type = {
 static void make_hs7751rvoip_irq(unsigned int irq)
 {
        disable_irq_nosync(irq);
-       irq_desc[irq].handler = &hs7751rvoip_irq_type;
+       irq_desc[irq].chip = &hs7751rvoip_irq_type;
        disable_hs7751rvoip_irq(irq);
 }