X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmacintosh%2Fvia-cuda.c;fp=drivers%2Fmacintosh%2Fvia-cuda.c;h=2d9d79150403b17996f034a8165a45ea28a687b5;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=69d5452fd22fc8f8178f494156f62304bc3d04ba;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/macintosh/via-cuda.c b/drivers/macintosh/via-cuda.c index 69d5452fd..2d9d79150 100644 --- a/drivers/macintosh/via-cuda.c +++ b/drivers/macintosh/via-cuda.c @@ -9,6 +9,7 @@ * Copyright (C) 1996 Paul Mackerras. */ #include +#include #include #include #include @@ -34,6 +35,13 @@ static volatile unsigned char __iomem *via; static DEFINE_SPINLOCK(cuda_lock); +#ifdef CONFIG_MAC +#define CUDA_IRQ IRQ_MAC_ADB +#define eieio() +#else +#define CUDA_IRQ vias->intrs[0].line +#endif + /* VIA registers - spaced 0x200 bytes apart */ #define RS 0x200 /* skip between registers */ #define B 0 /* B-side data */ @@ -182,24 +190,11 @@ int __init find_via_cuda(void) static int __init via_cuda_start(void) { - unsigned int irq; - if (via == NULL) return -ENODEV; -#ifdef CONFIG_MAC - irq = IRQ_MAC_ADB; -#else /* CONFIG_MAC */ - irq = irq_of_parse_and_map(vias, 0); - if (irq == NO_IRQ) { - printk(KERN_ERR "via-cuda: can't map interrupts for %s\n", - vias->full_name); - return -ENODEV; - } -#endif /* CONFIG_MAP */ - - if (request_irq(irq, cuda_interrupt, 0, "ADB", cuda_interrupt)) { - printk(KERN_ERR "via-cuda: can't request irq %d\n", irq); + if (request_irq(CUDA_IRQ, cuda_interrupt, 0, "ADB", cuda_interrupt)) { + printk(KERN_ERR "cuda_init: can't get irq %d\n", CUDA_IRQ); return -EAGAIN; }