diff options
author | Kyle McMartin <kyle@dreadnought.i.jkkm.org> | 2010-10-14 04:58:53 (GMT) |
---|---|---|
committer | Kyle McMartin <kyle@dreadnought.i.jkkm.org> | 2010-10-14 05:30:46 (GMT) |
commit | 7998b3bd156478c35de685f90d4d0dda57916c60 (patch) | |
tree | e27b5e776df10982b9839fd1705bd9fef939e454 /drivers/parisc/gsc.c | |
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/gsc.c')
-rw-r--r-- | drivers/parisc/gsc.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c index 68bccda..e605298 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++; |