diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 09:24:14 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 09:24:14 -0700 |
commit | e430426654c6a99fb1977bae71d4844e876c4a52 (patch) | |
tree | 65a22a59321b6bed5579c2e58371eeb373e1db61 /drivers/parisc/eisa.c | |
parent | e732ff707743e5ceba6ae2bfc7e799a0bac30ffa (diff) | |
parent | 650a35f868f809aade56ef960d8a465f57ac74e2 (diff) |
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/eisa.c')
-rw-r--r-- | drivers/parisc/eisa.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c index 46f503fb7fc..1211974f55a 100644 --- a/drivers/parisc/eisa.c +++ b/drivers/parisc/eisa.c @@ -144,7 +144,7 @@ static unsigned int eisa_irq_level __read_mostly; /* default to edge triggered * /* called by free irq */ -static void eisa_disable_irq(unsigned int irq) +static void eisa_mask_irq(unsigned int irq) { unsigned long flags; @@ -164,7 +164,7 @@ static void eisa_disable_irq(unsigned int irq) } /* called by request irq */ -static void eisa_enable_irq(unsigned int irq) +static void eisa_unmask_irq(unsigned int irq) { unsigned long flags; EISA_DBG("enable irq %d\n", irq); @@ -182,20 +182,11 @@ static void eisa_enable_irq(unsigned int irq) EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); } -static unsigned int eisa_startup_irq(unsigned int irq) -{ - eisa_enable_irq(irq); - return 0; -} - static struct irq_chip eisa_interrupt_type = { - .name = "EISA", - .startup = eisa_startup_irq, - .shutdown = eisa_disable_irq, - .enable = eisa_enable_irq, - .disable = eisa_disable_irq, - .ack = no_ack_irq, - .end = no_end_irq, + .name = "EISA", + .unmask = eisa_unmask_irq, + .mask = eisa_mask_irq, + .ack = no_ack_irq, }; static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) @@ -233,7 +224,7 @@ static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) } spin_unlock_irqrestore(&eisa_irq_lock, flags); - __do_IRQ(irq); + generic_handle_irq(irq); spin_lock_irqsave(&eisa_irq_lock, flags); /* unmask */ @@ -346,10 +337,10 @@ static int __init eisa_probe(struct parisc_device *dev) } /* Reserve IRQ2 */ - irq_to_desc(2)->action = &irq2_action; - + setup_irq(2, &irq2_action); for (i = 0; i < 16; i++) { - irq_to_desc(i)->chip = &eisa_interrupt_type; + set_irq_chip_and_handler(i, &eisa_interrupt_type, + handle_level_irq); } EISA_bus = 1; |