]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - arch/sh/boards/mach-microdev/irq.c
sh: Mass ctrl_in/outX to __raw_read/writeX conversion.
[mirror_ubuntu-zesty-kernel.git] / arch / sh / boards / mach-microdev / irq.c
index 702753cbd28f2b418027839b0d20e83e0b21e1fe..a26d16669aa2e377928cc606eaf144205ac150a1 100644 (file)
@@ -67,27 +67,13 @@ static const struct {
 
 static void enable_microdev_irq(unsigned int irq);
 static void disable_microdev_irq(unsigned int irq);
-
-       /* shutdown is same as "disable" */
-#define shutdown_microdev_irq disable_microdev_irq
-
 static void mask_and_ack_microdev(unsigned int);
-static void end_microdev_irq(unsigned int irq);
-
-static unsigned int startup_microdev_irq(unsigned int irq)
-{
-       enable_microdev_irq(irq);
-       return 0;               /* never anything pending */
-}
 
-static struct hw_interrupt_type microdev_irq_type = {
-       .typename = "MicroDev-IRQ",
-       .startup = startup_microdev_irq,
-       .shutdown = shutdown_microdev_irq,
-       .enable = enable_microdev_irq,
-       .disable = disable_microdev_irq,
+static struct irq_chip microdev_irq_type = {
+       .name = "MicroDev-IRQ",
+       .unmask = enable_microdev_irq,
+       .mask = disable_microdev_irq,
        .ack = mask_and_ack_microdev,
-       .end = end_microdev_irq
 };
 
 static void disable_microdev_irq(unsigned int irq)
@@ -102,7 +88,7 @@ static void disable_microdev_irq(unsigned int irq)
        fpgaIrq = fpgaIrqTable[irq].fpgaIrq;
 
        /* disable interrupts on the FPGA INTC register */
-       ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTDSB_REG);
+       __raw_writel(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTDSB_REG);
 }
 
 static void enable_microdev_irq(unsigned int irq)
@@ -121,20 +107,20 @@ static void enable_microdev_irq(unsigned int irq)
        priorityReg = MICRODEV_FPGA_INTPRI_REG(fpgaIrq);
 
        /* set priority for the interrupt */
-       priorities = ctrl_inl(priorityReg);
+       priorities = __raw_readl(priorityReg);
        priorities &= ~MICRODEV_FPGA_INTPRI_MASK(fpgaIrq);
        priorities |= MICRODEV_FPGA_INTPRI_LEVEL(fpgaIrq, pri);
-       ctrl_outl(priorities, priorityReg);
+       __raw_writel(priorities, priorityReg);
 
        /* enable interrupts on the FPGA INTC register */
-       ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTENB_REG);
+       __raw_writel(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTENB_REG);
 }
 
-       /* This functions sets the desired irq handler to be a MicroDev type */
+/* This function sets the desired irq handler to be a MicroDev type */
 static void __init make_microdev_irq(unsigned int irq)
 {
        disable_irq_nosync(irq);
-       irq_desc[irq].chip = &microdev_irq_type;
+       set_irq_chip_and_handler(irq, &microdev_irq_type, handle_level_irq);
        disable_microdev_irq(irq);
 }
 
@@ -143,18 +129,12 @@ static void mask_and_ack_microdev(unsigned int irq)
        disable_microdev_irq(irq);
 }
 
-static void end_microdev_irq(unsigned int irq)
-{
-       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-               enable_microdev_irq(irq);
-}
-
 extern void __init init_microdev_irq(void)
 {
        int i;
 
-               /* disable interrupts on the FPGA INTC register */
-       ctrl_outl(~0ul, MICRODEV_FPGA_INTDSB_REG);
+       /* disable interrupts on the FPGA INTC register */
+       __raw_writel(~0ul, MICRODEV_FPGA_INTDSB_REG);
 
        for (i = 0; i < NUM_EXTERNAL_IRQS; i++)
                make_microdev_irq(i);
@@ -179,5 +159,3 @@ extern void microdev_print_fpga_intc_status(void)
        printk("FPGA_INTPRI[3..0] = %08x:%08x:%08x:%08x\n", *intprid, *intpric, *intprib, *intpria);
        printk("-------------------------------------------------------------------------------\n");
 }
-
-