aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle McMartin <kyle@dreadnought.i.jkkm.org>2010-10-14 01:00:51 -0400
committerKyle McMartin <kyle@dreadnought.i.jkkm.org>2010-10-14 01:30:50 -0400
commit8ed5c00d7c166f505eb2e8ff47748bfa73824130 (patch)
treebc85949274a8811b55ca3c13b5509ee776fde6e5
parent7998b3bd156478c35de685f90d4d0dda57916c60 (diff)
parisc: convert eisa interrupts to flow handlers
Signed-off-by: Kyle McMartin <kyle@redhat.com>
-rw-r--r--drivers/parisc/eisa.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index 585417702211..1211974f55aa 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 *
144 144
145 145
146/* called by free irq */ 146/* called by free irq */
147static void eisa_disable_irq(unsigned int irq) 147static void eisa_mask_irq(unsigned int irq)
148{ 148{
149 unsigned long flags; 149 unsigned long flags;
150 150
@@ -164,7 +164,7 @@ static void eisa_disable_irq(unsigned int irq)
164} 164}
165 165
166/* called by request irq */ 166/* called by request irq */
167static void eisa_enable_irq(unsigned int irq) 167static void eisa_unmask_irq(unsigned int irq)
168{ 168{
169 unsigned long flags; 169 unsigned long flags;
170 EISA_DBG("enable irq %d\n", irq); 170 EISA_DBG("enable irq %d\n", irq);
@@ -182,20 +182,11 @@ static void eisa_enable_irq(unsigned int irq)
182 EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); 182 EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1));
183} 183}
184 184
185static unsigned int eisa_startup_irq(unsigned int irq)
186{
187 eisa_enable_irq(irq);
188 return 0;
189}
190
191static struct irq_chip eisa_interrupt_type = { 185static struct irq_chip eisa_interrupt_type = {
192 .name = "EISA", 186 .name = "EISA",
193 .startup = eisa_startup_irq, 187 .unmask = eisa_unmask_irq,
194 .shutdown = eisa_disable_irq, 188 .mask = eisa_mask_irq,
195 .enable = eisa_enable_irq, 189 .ack = no_ack_irq,
196 .disable = eisa_disable_irq,
197 .ack = no_ack_irq,
198 .end = no_end_irq,
199}; 190};
200 191
201static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) 192static irqreturn_t eisa_irq(int wax_irq, void *intr_dev)
@@ -349,7 +340,7 @@ static int __init eisa_probe(struct parisc_device *dev)
349 setup_irq(2, &irq2_action); 340 setup_irq(2, &irq2_action);
350 for (i = 0; i < 16; i++) { 341 for (i = 0; i < 16; i++) {
351 set_irq_chip_and_handler(i, &eisa_interrupt_type, 342 set_irq_chip_and_handler(i, &eisa_interrupt_type,
352 parisc_do_IRQ); 343 handle_level_irq);
353 } 344 }
354 345
355 EISA_bus = 1; 346 EISA_bus = 1;