diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 16:24:14 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 16:24:14 (GMT) |
commit | e430426654c6a99fb1977bae71d4844e876c4a52 (patch) | |
tree | 65a22a59321b6bed5579c2e58371eeb373e1db61 /drivers/parisc/dino.c | |
parent | e732ff707743e5ceba6ae2bfc7e799a0bac30ffa (diff) | |
parent | 650a35f868f809aade56ef960d8a465f57ac74e2 (diff) | |
download | linux-fsl-qoriq-e430426654c6a99fb1977bae71d4844e876c4a52.tar.xz |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
parisc: add tty driver to PDC console
drivers/parisc/iosapic.c: Remove unnecessary kzalloc cast
parisc: remove homegrown L1_CACHE_ALIGN macro
arch/parisc: Removing undead ifdef CONFIG_PA20
parisc: unwind - optimise linked-list searches for modules
parisc: change to new flag variable
drivers/char/agp/parisc-agp.c: eliminate memory leak
parisc: kill __do_IRQ
parisc: convert eisa interrupts to flow handlers
parisc: convert gsc and dino pci interrupts to flow handlers
parisc: convert suckyio interrupts to flow handlers
parisc: convert iosapic interrupts to proper flow handlers
parisc: convert cpu interrupts to proper flow handlers
parisc: lay groundwork for killing __do_IRQ
parisc: add prlimit64 syscall
parisc: squelch warning when using dev_get_stats
Diffstat (limited to 'drivers/parisc/dino.c')
-rw-r--r-- | drivers/parisc/dino.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index c542c7b..d9f5148 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c @@ -296,10 +296,9 @@ static struct pci_port_ops dino_port_ops = { .outl = dino_out32 }; -static void dino_disable_irq(unsigned int irq) +static void dino_mask_irq(unsigned int irq) { - struct irq_desc *desc = irq_to_desc(irq); - struct dino_device *dino_dev = desc->chip_data; + struct dino_device *dino_dev = get_irq_chip_data(irq); int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS); DBG(KERN_WARNING "%s(0x%p, %d)\n", __func__, dino_dev, irq); @@ -309,10 +308,9 @@ static void dino_disable_irq(unsigned int irq) __raw_writel(dino_dev->imr, dino_dev->hba.base_addr+DINO_IMR); } -static void dino_enable_irq(unsigned int irq) +static void dino_unmask_irq(unsigned int irq) { - struct irq_desc *desc = irq_to_desc(irq); - struct dino_device *dino_dev = desc->chip_data; + struct dino_device *dino_dev = get_irq_chip_data(irq); int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS); u32 tmp; @@ -347,20 +345,11 @@ static void dino_enable_irq(unsigned int irq) } } -static unsigned int dino_startup_irq(unsigned int irq) -{ - dino_enable_irq(irq); - return 0; -} - static struct irq_chip dino_interrupt_type = { - .name = "GSC-PCI", - .startup = dino_startup_irq, - .shutdown = dino_disable_irq, - .enable = dino_enable_irq, - .disable = dino_disable_irq, - .ack = no_ack_irq, - .end = no_end_irq, + .name = "GSC-PCI", + .unmask = dino_unmask_irq, + .mask = dino_mask_irq, + .ack = no_ack_irq, }; @@ -391,7 +380,7 @@ ilr_again: int irq = dino_dev->global_irq[local_irq]; DBG(KERN_DEBUG "%s(%d, %p) mask 0x%x\n", __func__, irq, intr_dev, mask); - __do_IRQ(irq); + generic_handle_irq(irq); mask &= ~(1 << local_irq); } while (mask); |