diff options
author | Kyle McMartin <kyle@dreadnought.i.jkkm.org> | 2010-10-14 08:58:53 +0400 |
---|---|---|
committer | Kyle McMartin <kyle@dreadnought.i.jkkm.org> | 2010-10-14 09:30:46 +0400 |
commit | 7998b3bd156478c35de685f90d4d0dda57916c60 (patch) | |
tree | e27b5e776df10982b9839fd1705bd9fef939e454 /drivers/parisc | |
parent | 14ff626a64f1c6848b303254be00b1b2ff33a655 (diff) | |
download | linux-7998b3bd156478c35de685f90d4d0dda57916c60.tar.xz |
parisc: convert gsc and dino pci interrupts to flow handlers
Signed-off-by: Kyle McMartin <kyle@redhat.com>
Diffstat (limited to 'drivers/parisc')
-rw-r--r-- | drivers/parisc/dino.c | 21 | ||||
-rw-r--r-- | drivers/parisc/gsc.c | 23 |
2 files changed, 13 insertions, 31 deletions
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index 3013c57f1217..d9f51485beee 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c @@ -296,7 +296,7 @@ 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 dino_device *dino_dev = get_irq_chip_data(irq); int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS); @@ -308,7 +308,7 @@ 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 dino_device *dino_dev = get_irq_chip_data(irq); int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS); @@ -345,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, }; diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c index 68bccdafa897..e605298e3aee 100644 --- a/drivers/parisc/gsc.c +++ b/drivers/parisc/gsc.c @@ -105,7 +105,7 @@ int gsc_find_local_irq(unsigned int irq, int *global_irqs, int limit) return NO_IRQ; } -static void gsc_asic_disable_irq(unsigned int irq) +static void gsc_asic_mask_irq(unsigned int irq) { struct gsc_asic *irq_dev = get_irq_chip_data(irq); int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32); @@ -120,7 +120,7 @@ static void gsc_asic_disable_irq(unsigned int irq) gsc_writel(imr, irq_dev->hpa + OFFSET_IMR); } -static void gsc_asic_enable_irq(unsigned int irq) +static void gsc_asic_unmask_irq(unsigned int irq) { struct gsc_asic *irq_dev = get_irq_chip_data(irq); int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32); @@ -139,20 +139,11 @@ static void gsc_asic_enable_irq(unsigned int irq) */ } -static unsigned int gsc_asic_startup_irq(unsigned int irq) -{ - gsc_asic_enable_irq(irq); - return 0; -} - static struct irq_chip gsc_asic_interrupt_type = { - .name = "GSC-ASIC", - .startup = gsc_asic_startup_irq, - .shutdown = gsc_asic_disable_irq, - .enable = gsc_asic_enable_irq, - .disable = gsc_asic_disable_irq, - .ack = no_ack_irq, - .end = no_end_irq, + .name = "GSC-ASIC", + .unmask = gsc_asic_unmask_irq, + .mask = gsc_asic_mask_irq, + .ack = no_ack_irq, }; int gsc_assign_irq(struct irq_chip *type, void *data) @@ -162,7 +153,7 @@ int gsc_assign_irq(struct irq_chip *type, void *data) if (irq > GSC_IRQ_MAX) return NO_IRQ; - set_irq_chip_and_handler(irq, type, parisc_do_IRQ); + set_irq_chip_and_handler(irq, type, handle_level_irq); set_irq_chip_data(irq, data); return irq++; |