diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-07-05 13:13:03 -0400 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-07-05 13:13:03 -0400 | 
| commit | 5e66dd6d66ffe758b39b6dcadf2330753ee1159b (patch) | |
| tree | a72cdcff4448e4af9425cc213ddf56ab23e697fe /drivers/macintosh/via-cuda.c | |
| parent | 026477c1141b67e98e3bd8bdedb7d4b88a3ecd09 (diff) | |
| parent | ca78f6baca863afe2e6a244a0fe94b3a70211d46 (diff) | |
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
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 @@  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 */ @@ -189,11 +182,24 @@ int __init find_via_cuda(void)  static int __init via_cuda_start(void)  { +    unsigned int irq; +      if (via == NULL)  	return -ENODEV; -    if (request_irq(CUDA_IRQ, cuda_interrupt, 0, "ADB", cuda_interrupt)) { -	printk(KERN_ERR "cuda_init: can't get irq %d\n", CUDA_IRQ); +#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);  	return -EAGAIN;      } | 
