diff options
Diffstat (limited to 'drivers/macintosh/via-cuda.c')
| -rw-r--r-- | drivers/macintosh/via-cuda.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/macintosh/via-cuda.c b/drivers/macintosh/via-cuda.c index 6501db50fb83..69d5452fd22f 100644 --- a/drivers/macintosh/via-cuda.c +++ b/drivers/macintosh/via-cuda.c | |||
| @@ -34,13 +34,6 @@ | |||
| 34 | static volatile unsigned char __iomem *via; | 34 | static volatile unsigned char __iomem *via; |
| 35 | static DEFINE_SPINLOCK(cuda_lock); | 35 | static DEFINE_SPINLOCK(cuda_lock); |
| 36 | 36 | ||
| 37 | #ifdef CONFIG_MAC | ||
| 38 | #define CUDA_IRQ IRQ_MAC_ADB | ||
| 39 | #define eieio() | ||
| 40 | #else | ||
| 41 | #define CUDA_IRQ vias->intrs[0].line | ||
| 42 | #endif | ||
| 43 | |||
| 44 | /* VIA registers - spaced 0x200 bytes apart */ | 37 | /* VIA registers - spaced 0x200 bytes apart */ |
| 45 | #define RS 0x200 /* skip between registers */ | 38 | #define RS 0x200 /* skip between registers */ |
| 46 | #define B 0 /* B-side data */ | 39 | #define B 0 /* B-side data */ |
| @@ -189,11 +182,24 @@ int __init find_via_cuda(void) | |||
| 189 | 182 | ||
| 190 | static int __init via_cuda_start(void) | 183 | static int __init via_cuda_start(void) |
| 191 | { | 184 | { |
| 185 | unsigned int irq; | ||
| 186 | |||
| 192 | if (via == NULL) | 187 | if (via == NULL) |
| 193 | return -ENODEV; | 188 | return -ENODEV; |
| 194 | 189 | ||
| 195 | if (request_irq(CUDA_IRQ, cuda_interrupt, 0, "ADB", cuda_interrupt)) { | 190 | #ifdef CONFIG_MAC |
| 196 | printk(KERN_ERR "cuda_init: can't get irq %d\n", CUDA_IRQ); | 191 | irq = IRQ_MAC_ADB; |
| 192 | #else /* CONFIG_MAC */ | ||
| 193 | irq = irq_of_parse_and_map(vias, 0); | ||
| 194 | if (irq == NO_IRQ) { | ||
| 195 | printk(KERN_ERR "via-cuda: can't map interrupts for %s\n", | ||
| 196 | vias->full_name); | ||
| 197 | return -ENODEV; | ||
| 198 | } | ||
| 199 | #endif /* CONFIG_MAP */ | ||
| 200 | |||
| 201 | if (request_irq(irq, cuda_interrupt, 0, "ADB", cuda_interrupt)) { | ||
| 202 | printk(KERN_ERR "via-cuda: can't request irq %d\n", irq); | ||
| 197 | return -EAGAIN; | 203 | return -EAGAIN; |
| 198 | } | 204 | } |
| 199 | 205 | ||
