linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / powerpc / platforms / powermac / pfunc_base.c
index aacfa59..9b7150f 100644 (file)
@@ -1,3 +1,4 @@
+#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/delay.h>
@@ -24,18 +25,19 @@ static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs)
 
 static int macio_do_gpio_irq_enable(struct pmf_function *func)
 {
-       unsigned int irq = irq_of_parse_and_map(func->node, 0);
-       if (irq == NO_IRQ)
+       if (func->node->n_intrs < 1)
                return -EINVAL;
-       return request_irq(irq, macio_gpio_irq, 0, func->node->name, func);
+
+       return request_irq(func->node->intrs[0].line, macio_gpio_irq, 0,
+                          func->node->name, func);
 }
 
 static int macio_do_gpio_irq_disable(struct pmf_function *func)
 {
-       unsigned int irq = irq_of_parse_and_map(func->node, 0);
-       if (irq == NO_IRQ)
+       if (func->node->n_intrs < 1)
                return -EINVAL;
-       free_irq(irq, func);
+
+       free_irq(func->node->intrs[0].line, func);
        return 0;
 }
 
@@ -256,7 +258,7 @@ static struct pmf_handlers macio_mmio_handlers = {
        .write_reg32            = macio_do_write_reg32,
        .read_reg32             = macio_do_read_reg32,
        .write_reg8             = macio_do_write_reg8,
-       .read_reg             = macio_do_read_reg8,
+       .read_reg32             = macio_do_read_reg8,
        .read_reg32_msrx        = macio_do_read_reg32_msrx,
        .read_reg8_msrx         = macio_do_read_reg8_msrx,
        .write_reg32_slm        = macio_do_write_reg32_slm,
@@ -334,8 +336,6 @@ int __init pmac_pfunc_base_install(void)
                return 0;
        pfbase_inited = 1;
 
-       if (!machine_is(powermac))
-               return 0;
 
        DBG("Installing base platform functions...\n");