X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fpowerpc%2Fplatforms%2Fpowermac%2Fpfunc_base.c;fp=arch%2Fpowerpc%2Fplatforms%2Fpowermac%2Fpfunc_base.c;h=9b7150f104147f7de2bdce33da432321bd936c01;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=aacfa59595d19e067ab88105a27f9d3951780e04;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c index aacfa5959..9b7150f10 100644 --- a/arch/powerpc/platforms/powermac/pfunc_base.c +++ b/arch/powerpc/platforms/powermac/pfunc_base.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -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_reg8 = 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");