Merge branch 'irq-upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6

* 'irq-upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
[SPARC, XEN, NET/CXGB3] use irq_handler_t where appropriate
drivers/char/riscom8: clean up irq handling
isdn/sc: irq handler clean
isdn/act2000: fix major bug. clean irq handler.
char/pcmcia/synclink_cs: trim trailing whitespace
drivers/char/ip2: separate polling and irq-driven work entry points
drivers/char/ip2: split out irq core logic into separate function
[NETDRVR] lib82596, netxen: delete pointless tests from irq handler
Eliminate pointless casts from void* in a few driver irq handlers.
[PARPORT] Remove unused 'irq' argument from parport irq functions
[PARPORT] Kill useful 'irq' arg from parport_{generic_irq,ieee1284_interrupt}
[PARPORT] Consolidate code copies into a single generic irq handler

+485 -537
+2 -2
arch/sparc/kernel/irq.c
··· 479 480 extern void floppy_hardint(void); 481 482 - static irqreturn_t (*floppy_irq_handler)(int irq, void *dev_id); 483 484 void sparc_floppy_irq(int irq, void *dev_id, struct pt_regs *regs) 485 { ··· 500 } 501 502 int sparc_floppy_request_irq(int irq, unsigned long flags, 503 - irqreturn_t (*irq_handler)(int irq, void *)) 504 { 505 floppy_irq_handler = irq_handler; 506 return request_fast_irq(irq, floppy_hardint, flags, "floppy");
··· 479 480 extern void floppy_hardint(void); 481 482 + static irq_handler_t floppy_irq_handler; 483 484 void sparc_floppy_irq(int irq, void *dev_id, struct pt_regs *regs) 485 { ··· 500 } 501 502 int sparc_floppy_request_irq(int irq, unsigned long flags, 503 + irq_handler_t irq_handler) 504 { 505 floppy_irq_handler = irq_handler; 506 return request_fast_irq(irq, floppy_hardint, flags, "floppy");
+2 -2
arch/x86/xen/events.c
··· 383 } 384 385 int bind_evtchn_to_irqhandler(unsigned int evtchn, 386 - irqreturn_t (*handler)(int, void *), 387 unsigned long irqflags, 388 const char *devname, void *dev_id) 389 { ··· 402 EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler); 403 404 int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, 405 - irqreturn_t (*handler)(int, void *), 406 unsigned long irqflags, const char *devname, void *dev_id) 407 { 408 unsigned int irq;
··· 383 } 384 385 int bind_evtchn_to_irqhandler(unsigned int evtchn, 386 + irq_handler_t handler, 387 unsigned long irqflags, 388 const char *devname, void *dev_id) 389 { ··· 402 EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler); 403 404 int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, 405 + irq_handler_t handler, 406 unsigned long irqflags, const char *devname, void *dev_id) 407 { 408 unsigned int irq;
+3 -2
drivers/atm/horizon.c
··· 1382 1383 /********** interrupt handler **********/ 1384 1385 - static irqreturn_t interrupt_handler(int irq, void *dev_id) { 1386 - hrz_dev * dev = (hrz_dev *) dev_id; 1387 u32 int_source; 1388 unsigned int irq_ok; 1389
··· 1382 1383 /********** interrupt handler **********/ 1384 1385 + static irqreturn_t interrupt_handler(int irq, void *dev_id) 1386 + { 1387 + hrz_dev *dev = dev_id; 1388 u32 int_source; 1389 unsigned int irq_ok; 1390
+46 -25
drivers/char/ip2/ip2main.c
··· 752 continue; 753 rc = request_irq( ip2config.irq[i], ip2_interrupt, 754 IP2_SA_FLAGS | (ip2config.type[i] == PCI ? IRQF_SHARED : 0), 755 - pcName, (void *)&pcName); 756 if (rc) { 757 printk(KERN_ERR "IP2: an request_irq failed: error %d\n",rc); 758 ip2config.irq[i] = CIR_POLL; ··· 1166 /* */ 1167 /* */ 1168 /******************************************************************************/ 1169 - static irqreturn_t 1170 - ip2_interrupt(int irq, void *dev_id) 1171 { 1172 int i; 1173 i2eBordStrPtr pB; 1174 - int handled = 0; 1175 1176 ip2trace (ITRC_NO_PORT, ITRC_INTR, 99, 1, irq ); 1177 ··· 1208 // IRQ = 0 for polled boards, we won't poll "IRQ" boards 1209 1210 if ( pB && (pB->i2eUsingIrq == irq) ) { 1211 - handled = 1; 1212 - #ifdef USE_IQI 1213 - 1214 - if (NO_MAIL_HERE != ( pB->i2eStartMail = iiGetMail(pB))) { 1215 - // Disable his interrupt (will be enabled when serviced) 1216 - // This is mostly to protect from reentrancy. 1217 - iiDisableMailIrq(pB); 1218 - 1219 - // Park the board on the immediate queue for processing. 1220 - schedule_work(&pB->tqueue_interrupt); 1221 - 1222 - // Make sure the immediate queue is flagged to fire. 1223 - } 1224 - #else 1225 - // We are using immediate servicing here. This sucks and can 1226 - // cause all sorts of havoc with ppp and others. The failsafe 1227 - // check on iiSendPendingMail could also throw a hairball. 1228 - i2ServiceBoard( pB ); 1229 - #endif /* USE_IQI */ 1230 } 1231 } 1232 1233 ++irq_counter; 1234 1235 ip2trace (ITRC_NO_PORT, ITRC_INTR, ITRC_RETURN, 0 ); 1236 - return IRQ_RETVAL(handled); 1237 } 1238 1239 /******************************************************************************/ ··· 1252 // Just polled boards, IRQ = 0 will hit all non-interrupt boards. 1253 // It will NOT poll boards handled by hard interrupts. 1254 // The issue of queued BH interrups is handled in ip2_interrupt(). 1255 - ip2_interrupt(0, NULL); 1256 1257 PollTimer.expires = POLL_TIMEOUT; 1258 add_timer( &PollTimer );
··· 752 continue; 753 rc = request_irq( ip2config.irq[i], ip2_interrupt, 754 IP2_SA_FLAGS | (ip2config.type[i] == PCI ? IRQF_SHARED : 0), 755 + pcName, i2BoardPtrTable[i]); 756 if (rc) { 757 printk(KERN_ERR "IP2: an request_irq failed: error %d\n",rc); 758 ip2config.irq[i] = CIR_POLL; ··· 1166 /* */ 1167 /* */ 1168 /******************************************************************************/ 1169 + static void 1170 + ip2_irq_work(i2eBordStrPtr pB) 1171 + { 1172 + #ifdef USE_IQI 1173 + if (NO_MAIL_HERE != ( pB->i2eStartMail = iiGetMail(pB))) { 1174 + // Disable his interrupt (will be enabled when serviced) 1175 + // This is mostly to protect from reentrancy. 1176 + iiDisableMailIrq(pB); 1177 + 1178 + // Park the board on the immediate queue for processing. 1179 + schedule_work(&pB->tqueue_interrupt); 1180 + 1181 + // Make sure the immediate queue is flagged to fire. 1182 + } 1183 + #else 1184 + 1185 + // We are using immediate servicing here. This sucks and can 1186 + // cause all sorts of havoc with ppp and others. The failsafe 1187 + // check on iiSendPendingMail could also throw a hairball. 1188 + 1189 + i2ServiceBoard( pB ); 1190 + 1191 + #endif /* USE_IQI */ 1192 + } 1193 + 1194 + static void 1195 + ip2_polled_interrupt(void) 1196 { 1197 int i; 1198 i2eBordStrPtr pB; 1199 + const int irq = 0; 1200 1201 ip2trace (ITRC_NO_PORT, ITRC_INTR, 99, 1, irq ); 1202 ··· 1183 // IRQ = 0 for polled boards, we won't poll "IRQ" boards 1184 1185 if ( pB && (pB->i2eUsingIrq == irq) ) { 1186 + ip2_irq_work(pB); 1187 } 1188 } 1189 1190 ++irq_counter; 1191 1192 ip2trace (ITRC_NO_PORT, ITRC_INTR, ITRC_RETURN, 0 ); 1193 + } 1194 + 1195 + static irqreturn_t 1196 + ip2_interrupt(int irq, void *dev_id) 1197 + { 1198 + i2eBordStrPtr pB = dev_id; 1199 + 1200 + ip2trace (ITRC_NO_PORT, ITRC_INTR, 99, 1, pB->i2eUsingIrq ); 1201 + 1202 + ip2_irq_work(pB); 1203 + 1204 + ++irq_counter; 1205 + 1206 + ip2trace (ITRC_NO_PORT, ITRC_INTR, ITRC_RETURN, 0 ); 1207 + return IRQ_HANDLED; 1208 } 1209 1210 /******************************************************************************/ ··· 1231 // Just polled boards, IRQ = 0 will hit all non-interrupt boards. 1232 // It will NOT poll boards handled by hard interrupts. 1233 // The issue of queued BH interrups is handled in ip2_interrupt(). 1234 + ip2_polled_interrupt(); 1235 1236 PollTimer.expires = POLL_TIMEOUT; 1237 add_timer( &PollTimer );
+2 -2
drivers/char/ppdev.c
··· 267 return bytes_written; 268 } 269 270 - static void pp_irq (int irq, void * private) 271 { 272 - struct pp_struct * pp = (struct pp_struct *) private; 273 274 if (pp->irqresponse) { 275 parport_write_control (pp->pdev->port, pp->irqctl);
··· 267 return bytes_written; 268 } 269 270 + static void pp_irq (void *private) 271 { 272 + struct pp_struct *pp = private; 273 274 if (pp->irqresponse) { 275 parport_write_control (pp->pdev->port, pp->irqctl);
+5 -11
drivers/char/riscom8.c
··· 79 80 #define RS_EVENT_WRITE_WAKEUP 0 81 82 - static struct riscom_board * IRQ_to_board[16]; 83 static struct tty_driver *riscom_driver; 84 85 static struct riscom_board rc_board[RC_NBOARD] = { ··· 536 } 537 538 /* The main interrupt processing routine */ 539 - static irqreturn_t rc_interrupt(int irq, void * dev_id) 540 { 541 unsigned char status; 542 unsigned char ack; 543 - struct riscom_board *bp; 544 unsigned long loop = 0; 545 int handled = 0; 546 - 547 - bp = IRQ_to_board[irq]; 548 549 if (!(bp->flags & RC_BOARD_ACTIVE)) 550 return IRQ_NONE; ··· 600 */ 601 602 /* Called with disabled interrupts */ 603 - static inline int rc_setup_board(struct riscom_board * bp) 604 { 605 int error; 606 ··· 608 return 0; 609 610 error = request_irq(bp->irq, rc_interrupt, IRQF_DISABLED, 611 - "RISCom/8", NULL); 612 if (error) 613 return error; 614 ··· 616 bp->DTR = ~0; 617 rc_out(bp, RC_DTR, bp->DTR); /* Drop DTR on all ports */ 618 619 - IRQ_to_board[bp->irq] = bp; 620 bp->flags |= RC_BOARD_ACTIVE; 621 622 return 0; 623 } 624 625 /* Called with disabled interrupts */ 626 - static inline void rc_shutdown_board(struct riscom_board *bp) 627 { 628 if (!(bp->flags & RC_BOARD_ACTIVE)) 629 return; ··· 630 bp->flags &= ~RC_BOARD_ACTIVE; 631 632 free_irq(bp->irq, NULL); 633 - IRQ_to_board[bp->irq] = NULL; 634 635 bp->DTR = ~0; 636 rc_out(bp, RC_DTR, bp->DTR); /* Drop DTR on all ports */ ··· 1589 if (!riscom_driver) 1590 return -ENOMEM; 1591 1592 - memset(IRQ_to_board, 0, sizeof(IRQ_to_board)); 1593 riscom_driver->owner = THIS_MODULE; 1594 riscom_driver->name = "ttyL"; 1595 riscom_driver->major = RISCOM8_NORMAL_MAJOR;
··· 79 80 #define RS_EVENT_WRITE_WAKEUP 0 81 82 static struct tty_driver *riscom_driver; 83 84 static struct riscom_board rc_board[RC_NBOARD] = { ··· 537 } 538 539 /* The main interrupt processing routine */ 540 + static irqreturn_t rc_interrupt(int dummy, void * dev_id) 541 { 542 unsigned char status; 543 unsigned char ack; 544 + struct riscom_board *bp = dev_id; 545 unsigned long loop = 0; 546 int handled = 0; 547 548 if (!(bp->flags & RC_BOARD_ACTIVE)) 549 return IRQ_NONE; ··· 603 */ 604 605 /* Called with disabled interrupts */ 606 + static int rc_setup_board(struct riscom_board * bp) 607 { 608 int error; 609 ··· 611 return 0; 612 613 error = request_irq(bp->irq, rc_interrupt, IRQF_DISABLED, 614 + "RISCom/8", bp); 615 if (error) 616 return error; 617 ··· 619 bp->DTR = ~0; 620 rc_out(bp, RC_DTR, bp->DTR); /* Drop DTR on all ports */ 621 622 bp->flags |= RC_BOARD_ACTIVE; 623 624 return 0; 625 } 626 627 /* Called with disabled interrupts */ 628 + static void rc_shutdown_board(struct riscom_board *bp) 629 { 630 if (!(bp->flags & RC_BOARD_ACTIVE)) 631 return; ··· 634 bp->flags &= ~RC_BOARD_ACTIVE; 635 636 free_irq(bp->irq, NULL); 637 638 bp->DTR = ~0; 639 rc_out(bp, RC_DTR, bp->DTR); /* Drop DTR on all ports */ ··· 1594 if (!riscom_driver) 1595 return -ENOMEM; 1596 1597 riscom_driver->owner = THIS_MODULE; 1598 riscom_driver->name = "ttyL"; 1599 riscom_driver->major = RISCOM8_NORMAL_MAJOR;
+2 -2
drivers/char/tpm/tpm_tis.c
··· 381 382 static irqreturn_t tis_int_probe(int irq, void *dev_id) 383 { 384 - struct tpm_chip *chip = (struct tpm_chip *) dev_id; 385 u32 interrupt; 386 387 interrupt = ioread32(chip->vendor.iobase + ··· 401 402 static irqreturn_t tis_int_handler(int irq, void *dev_id) 403 { 404 - struct tpm_chip *chip = (struct tpm_chip *) dev_id; 405 u32 interrupt; 406 int i; 407
··· 381 382 static irqreturn_t tis_int_probe(int irq, void *dev_id) 383 { 384 + struct tpm_chip *chip = dev_id; 385 u32 interrupt; 386 387 interrupt = ioread32(chip->vendor.iobase + ··· 401 402 static irqreturn_t tis_int_handler(int irq, void *dev_id) 403 { 404 + struct tpm_chip *chip = dev_id; 405 u32 interrupt; 406 int i; 407
+1 -1
drivers/input/serio/parkbd.c
··· 102 return 0; 103 } 104 105 - static void parkbd_interrupt(int irq, void *dev_id) 106 { 107 108 if (parkbd_writing) {
··· 102 return 0; 103 } 104 105 + static void parkbd_interrupt(void *dev_id) 106 { 107 108 if (parkbd_writing) {
+8 -4
drivers/isdn/act2000/act2000_isa.c
··· 61 } 62 63 static irqreturn_t 64 - act2000_isa_interrupt(int irq, void *dev_id) 65 { 66 act2000_card *card = dev_id; 67 u_char istatus; ··· 80 printk(KERN_WARNING "act2000: errIRQ\n"); 81 } 82 if (istatus) 83 - printk(KERN_DEBUG "act2000: ?IRQ %d %02x\n", irq, istatus); 84 return IRQ_HANDLED; 85 } 86 ··· 131 int 132 act2000_isa_config_irq(act2000_card * card, short irq) 133 { 134 if (card->flags & ACT2000_FLAGS_IVALID) { 135 free_irq(card->irq, card); 136 } ··· 141 if (!irq) 142 return 0; 143 144 - if (!request_irq(irq, &act2000_isa_interrupt, 0, card->regname, card)) { 145 - card->irq = irq; 146 card->flags |= ACT2000_FLAGS_IVALID; 147 printk(KERN_WARNING 148 "act2000: Could not request irq %d\n",irq);
··· 61 } 62 63 static irqreturn_t 64 + act2000_isa_interrupt(int dummy, void *dev_id) 65 { 66 act2000_card *card = dev_id; 67 u_char istatus; ··· 80 printk(KERN_WARNING "act2000: errIRQ\n"); 81 } 82 if (istatus) 83 + printk(KERN_DEBUG "act2000: ?IRQ %d %02x\n", card->irq, istatus); 84 return IRQ_HANDLED; 85 } 86 ··· 131 int 132 act2000_isa_config_irq(act2000_card * card, short irq) 133 { 134 + int old_irq; 135 + 136 if (card->flags & ACT2000_FLAGS_IVALID) { 137 free_irq(card->irq, card); 138 } ··· 139 if (!irq) 140 return 0; 141 142 + old_irq = card->irq; 143 + card->irq = irq; 144 + if (request_irq(irq, &act2000_isa_interrupt, 0, card->regname, card)) { 145 + card->irq = old_irq; 146 card->flags |= ACT2000_FLAGS_IVALID; 147 printk(KERN_WARNING 148 "act2000: Could not request irq %d\n",irq);
+2 -1
drivers/isdn/sc/init.c
··· 334 */ 335 sc_adapter[cinst]->interrupt = irq[b]; 336 if (request_irq(sc_adapter[cinst]->interrupt, interrupt_handler, 337 - IRQF_DISABLED, interface->id, NULL)) 338 { 339 kfree(sc_adapter[cinst]->channel); 340 indicate_status(cinst, ISDN_STAT_UNLOAD, 0, NULL); /* Fix me */
··· 334 */ 335 sc_adapter[cinst]->interrupt = irq[b]; 336 if (request_irq(sc_adapter[cinst]->interrupt, interrupt_handler, 337 + IRQF_DISABLED, interface->id, 338 + (void *)(unsigned long) cinst)) 339 { 340 kfree(sc_adapter[cinst]->channel); 341 indicate_status(cinst, ISDN_STAT_UNLOAD, 0, NULL); /* Fix me */
+2 -15
drivers/isdn/sc/interrupt.c
··· 21 #include "card.h" 22 #include <linux/interrupt.h> 23 24 - static int get_card_from_irq(int irq) 25 - { 26 - int i; 27 - 28 - for(i = 0 ; i < cinst ; i++) { 29 - if(sc_adapter[i]->interrupt == irq) 30 - return i; 31 - } 32 - return -1; 33 - } 34 - 35 /* 36 * 37 */ 38 - irqreturn_t interrupt_handler(int interrupt, void *cardptr) 39 { 40 41 RspMessage rcvmsg; 42 int channel; 43 - int card; 44 - 45 - card = get_card_from_irq(interrupt); 46 47 if(!IS_VALID_CARD(card)) { 48 pr_debug("Invalid param: %d is not a valid card id\n", card);
··· 21 #include "card.h" 22 #include <linux/interrupt.h> 23 24 /* 25 * 26 */ 27 + irqreturn_t interrupt_handler(int dummy, void *card_inst) 28 { 29 30 RspMessage rcvmsg; 31 int channel; 32 + int card = (int)(unsigned long) card_inst; 33 34 if(!IS_VALID_CARD(card)) { 35 pr_debug("Invalid param: %d is not a valid card id\n", card);
+1 -1
drivers/mtd/onenand/onenand_base.c
··· 359 */ 360 static irqreturn_t onenand_interrupt(int irq, void *data) 361 { 362 - struct onenand_chip *this = (struct onenand_chip *) data; 363 364 /* To handle shared interrupt */ 365 if (!this->complete.done)
··· 359 */ 360 static irqreturn_t onenand_interrupt(int irq, void *data) 361 { 362 + struct onenand_chip *this = data; 363 364 /* To handle shared interrupt */ 365 if (!this->complete.done)
+1 -3
drivers/net/cxgb3/adapter.h
··· 46 #include <asm/semaphore.h> 47 #include <asm/io.h> 48 49 - typedef irqreturn_t(*intr_handler_t) (int, void *); 50 - 51 struct vlan_group; 52 struct adapter; 53 struct sge_qset; ··· 268 void t3_sge_stop(struct adapter *adap); 269 void t3_free_sge_resources(struct adapter *adap); 270 void t3_sge_err_intr_handler(struct adapter *adapter); 271 - intr_handler_t t3_intr_handler(struct adapter *adap, int polling); 272 int t3_eth_xmit(struct sk_buff *skb, struct net_device *dev); 273 int t3_mgmt_tx(struct adapter *adap, struct sk_buff *skb); 274 void t3_update_qset_coalesce(struct sge_qset *qs, const struct qset_params *p);
··· 46 #include <asm/semaphore.h> 47 #include <asm/io.h> 48 49 struct vlan_group; 50 struct adapter; 51 struct sge_qset; ··· 270 void t3_sge_stop(struct adapter *adap); 271 void t3_free_sge_resources(struct adapter *adap); 272 void t3_sge_err_intr_handler(struct adapter *adapter); 273 + irq_handler_t t3_intr_handler(struct adapter *adap, int polling); 274 int t3_eth_xmit(struct sk_buff *skb, struct net_device *dev); 275 int t3_mgmt_tx(struct adapter *adap, struct sk_buff *skb); 276 void t3_update_qset_coalesce(struct sge_qset *qs, const struct qset_params *p);
+1 -1
drivers/net/cxgb3/sge.c
··· 2431 * (MSI-X, MSI, or legacy) and whether NAPI will be used to service the 2432 * response queues. 2433 */ 2434 - intr_handler_t t3_intr_handler(struct adapter *adap, int polling) 2435 { 2436 if (adap->flags & USING_MSIX) 2437 return polling ? t3_sge_intr_msix_napi : t3_sge_intr_msix;
··· 2431 * (MSI-X, MSI, or legacy) and whether NAPI will be used to service the 2432 * response queues. 2433 */ 2434 + irq_handler_t t3_intr_handler(struct adapter *adap, int polling) 2435 { 2436 if (adap->flags & USING_MSIX) 2437 return polling ? t3_sge_intr_msix_napi : t3_sge_intr_msix;
+1 -7
drivers/net/hamradio/baycom_epp.c
··· 325 326 /* ---------------------------------------------------------------------- */ 327 328 - static void epp_interrupt(int irq, void *dev_id) 329 - { 330 - } 331 - 332 - /* ---------------------------------------------------------------------- */ 333 - 334 static inline void do_kiss_params(struct baycom_state *bc, 335 unsigned char *data, unsigned long len) 336 { ··· 865 } 866 memset(&bc->modem, 0, sizeof(bc->modem)); 867 bc->pdev = parport_register_device(pp, dev->name, NULL, epp_wakeup, 868 - epp_interrupt, PARPORT_DEV_EXCL, dev); 869 parport_put_port(pp); 870 if (!bc->pdev) { 871 printk(KERN_ERR "%s: cannot register parport at 0x%lx\n", bc_drvname, pp->base);
··· 325 326 /* ---------------------------------------------------------------------- */ 327 328 static inline void do_kiss_params(struct baycom_state *bc, 329 unsigned char *data, unsigned long len) 330 { ··· 871 } 872 memset(&bc->modem, 0, sizeof(bc->modem)); 873 bc->pdev = parport_register_device(pp, dev->name, NULL, epp_wakeup, 874 + NULL, PARPORT_DEV_EXCL, dev); 875 parport_put_port(pp); 876 if (!bc->pdev) { 877 printk(KERN_ERR "%s: cannot register parport at 0x%lx\n", bc_drvname, pp->base);
+2 -2
drivers/net/hamradio/baycom_par.c
··· 270 271 /* --------------------------------------------------------------------- */ 272 273 - static void par96_interrupt(int irq, void *dev_id) 274 { 275 - struct net_device *dev = (struct net_device *)dev_id; 276 struct baycom_state *bc = netdev_priv(dev); 277 278 baycom_int_freq(bc);
··· 270 271 /* --------------------------------------------------------------------- */ 272 273 + static void par96_interrupt(void *dev_id) 274 { 275 + struct net_device *dev = dev_id; 276 struct baycom_state *bc = netdev_priv(dev); 277 278 baycom_int_freq(bc);
+1 -7
drivers/net/lib82596.c
··· 1124 struct i596_dma *dma; 1125 unsigned short status, ack_cmd = 0; 1126 1127 - if (dev == NULL) { 1128 - printk(KERN_WARNING "%s: irq %d for unknown device.\n", 1129 - __FUNCTION__, irq); 1130 - return IRQ_NONE; 1131 - } 1132 - 1133 lp = netdev_priv(dev); 1134 dma = lp->dma; 1135 ··· 1134 1135 DEB(DEB_INTS, printk(KERN_DEBUG 1136 "%s: i596 interrupt, IRQ %d, status %4.4x.\n", 1137 - dev->name, irq, status)); 1138 1139 ack_cmd = status & 0xf000; 1140
··· 1124 struct i596_dma *dma; 1125 unsigned short status, ack_cmd = 0; 1126 1127 lp = netdev_priv(dev); 1128 dma = lp->dma; 1129 ··· 1140 1141 DEB(DEB_INTS, printk(KERN_DEBUG 1142 "%s: i596 interrupt, IRQ %d, status %4.4x.\n", 1143 + dev->name, dev->irq, status)); 1144 1145 ack_cmd = status & 0xf000; 1146
+2 -9
drivers/net/netxen/netxen_nic_main.c
··· 1268 */ 1269 irqreturn_t netxen_intr(int irq, void *data) 1270 { 1271 - struct netxen_adapter *adapter; 1272 - struct net_device *netdev; 1273 u32 our_int = 0; 1274 - 1275 - if (unlikely(!irq)) { 1276 - return IRQ_NONE; /* Not our interrupt */ 1277 - } 1278 - 1279 - adapter = (struct netxen_adapter *)data; 1280 - netdev = adapter->netdev; 1281 1282 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) { 1283 our_int = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_INT_VECTOR));
··· 1268 */ 1269 irqreturn_t netxen_intr(int irq, void *data) 1270 { 1271 + struct netxen_adapter *adapter = data; 1272 + struct net_device *netdev = adapter->netdev; 1273 u32 our_int = 0; 1274 1275 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) { 1276 our_int = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_INT_VECTOR));
+3 -3
drivers/net/plip.c
··· 143 static void plip_timer_bh(struct work_struct *work); 144 145 /* Interrupt handler */ 146 - static void plip_interrupt(int irq, void *dev_id); 147 148 /* Functions for DEV methods */ 149 static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev); ··· 380 container_of(work, struct net_local, timer.work); 381 382 if (!(atomic_read (&nl->kill_timer))) { 383 - plip_interrupt (-1, nl->dev); 384 385 schedule_delayed_work(&nl->timer, 1); 386 } ··· 897 898 /* Handle the parallel port interrupts. */ 899 static void 900 - plip_interrupt(int irq, void *dev_id) 901 { 902 struct net_device *dev = dev_id; 903 struct net_local *nl;
··· 143 static void plip_timer_bh(struct work_struct *work); 144 145 /* Interrupt handler */ 146 + static void plip_interrupt(void *dev_id); 147 148 /* Functions for DEV methods */ 149 static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev); ··· 380 container_of(work, struct net_local, timer.work); 381 382 if (!(atomic_read (&nl->kill_timer))) { 383 + plip_interrupt (nl->dev); 384 385 schedule_delayed_work(&nl->timer, 1); 386 } ··· 897 898 /* Handle the parallel port interrupts. */ 899 static void 900 + plip_interrupt(void *dev_id) 901 { 902 struct net_device *dev = dev_id; 903 struct net_local *nl;
+1 -1
drivers/net/typhoon.c
··· 1801 static irqreturn_t 1802 typhoon_interrupt(int irq, void *dev_instance) 1803 { 1804 - struct net_device *dev = (struct net_device *) dev_instance; 1805 struct typhoon *tp = dev->priv; 1806 void __iomem *ioaddr = tp->ioaddr; 1807 u32 intr_status;
··· 1801 static irqreturn_t 1802 typhoon_interrupt(int irq, void *dev_instance) 1803 { 1804 + struct net_device *dev = dev_instance; 1805 struct typhoon *tp = dev->priv; 1806 void __iomem *ioaddr = tp->ioaddr; 1807 u32 intr_status;
+1 -1
drivers/net/ucc_geth.c
··· 3607 3608 static irqreturn_t ucc_geth_irq_handler(int irq, void *info) 3609 { 3610 - struct net_device *dev = (struct net_device *)info; 3611 struct ucc_geth_private *ugeth = netdev_priv(dev); 3612 struct ucc_fast_private *uccf; 3613 struct ucc_geth_info *ug_info;
··· 3607 3608 static irqreturn_t ucc_geth_irq_handler(int irq, void *info) 3609 { 3610 + struct net_device *dev = info; 3611 struct ucc_geth_private *ugeth = netdev_priv(dev); 3612 struct ucc_fast_private *uccf; 3613 struct ucc_geth_info *ug_info;
+2 -2
drivers/net/wan/sbni.c
··· 502 static irqreturn_t 503 sbni_interrupt( int irq, void *dev_id ) 504 { 505 - struct net_device *dev = (struct net_device *) dev_id; 506 - struct net_local *nl = (struct net_local *) dev->priv; 507 int repeat; 508 509 spin_lock( &nl->lock );
··· 502 static irqreturn_t 503 sbni_interrupt( int irq, void *dev_id ) 504 { 505 + struct net_device *dev = dev_id; 506 + struct net_local *nl = dev->priv; 507 int repeat; 508 509 spin_lock( &nl->lock );
+2 -11
drivers/parport/daisy.c
··· 199 * parport_open - find a device by canonical device number 200 * @devnum: canonical device number 201 * @name: name to associate with the device 202 - * @pf: preemption callback 203 - * @kf: kick callback 204 - * @irqf: interrupt handler 205 - * @flags: registration flags 206 - * @handle: driver data 207 * 208 * This function is similar to parport_register_device(), except 209 * that it locates a device by its number rather than by the port ··· 209 * for parport_register_device(). 210 **/ 211 212 - struct pardevice *parport_open(int devnum, const char *name, 213 - int (*pf) (void *), void (*kf) (void *), 214 - void (*irqf) (int, void *), 215 - int flags, void *handle) 216 { 217 struct daisydev *p = topology; 218 struct parport *port; ··· 229 port = parport_get_port(p->port); 230 spin_unlock(&topology_lock); 231 232 - dev = parport_register_device(port, name, pf, kf, 233 - irqf, flags, handle); 234 parport_put_port(port); 235 if (!dev) 236 return NULL;
··· 199 * parport_open - find a device by canonical device number 200 * @devnum: canonical device number 201 * @name: name to associate with the device 202 * 203 * This function is similar to parport_register_device(), except 204 * that it locates a device by its number rather than by the port ··· 214 * for parport_register_device(). 215 **/ 216 217 + struct pardevice *parport_open(int devnum, const char *name) 218 { 219 struct daisydev *p = topology; 220 struct parport *port; ··· 237 port = parport_get_port(p->port); 238 spin_unlock(&topology_lock); 239 240 + dev = parport_register_device(port, name, NULL, NULL, NULL, 0, NULL); 241 parport_put_port(port); 242 if (!dev) 243 return NULL;
+1 -1
drivers/parport/ieee1284.c
··· 571 #endif /* IEEE1284 support */ 572 573 /* Handle an interrupt. */ 574 - void parport_ieee1284_interrupt (int which, void *handle) 575 { 576 struct parport *port = handle; 577 parport_ieee1284_wakeup (port);
··· 571 #endif /* IEEE1284 support */ 572 573 /* Handle an interrupt. */ 574 + void parport_ieee1284_interrupt (void *handle) 575 { 576 struct parport *port = handle; 577 parport_ieee1284_wakeup (port);
+1 -8
drivers/parport/parport_amiga.c
··· 137 return status; 138 } 139 140 - /* as this ports irq handling is already done, we use a generic funktion */ 141 - static irqreturn_t amiga_interrupt(int irq, void *dev_id) 142 - { 143 - parport_generic_irq(irq, (struct parport *) dev_id); 144 - return IRQ_HANDLED; 145 - } 146 - 147 static void amiga_enable_irq(struct parport *p) 148 { 149 enable_irq(IRQ_AMIGA_CIAA_FLG); ··· 248 if (!p) 249 goto out_port; 250 251 - err = request_irq(IRQ_AMIGA_CIAA_FLG, amiga_interrupt, 0, p->name, p); 252 if (err) 253 goto out_irq; 254
··· 137 return status; 138 } 139 140 static void amiga_enable_irq(struct parport *p) 141 { 142 enable_irq(IRQ_AMIGA_CIAA_FLG); ··· 255 if (!p) 256 goto out_port; 257 258 + err = request_irq(IRQ_AMIGA_CIAA_FLG, parport_irq_handler, 0, p->name, p); 259 if (err) 260 goto out_irq; 261
+1 -8
drivers/parport/parport_atari.c
··· 103 { 104 } 105 106 - static irqreturn_t 107 - parport_atari_interrupt(int irq, void *dev_id) 108 - { 109 - parport_generic_irq(irq, (struct parport *) dev_id); 110 - return IRQ_HANDLED; 111 - } 112 - 113 static void 114 parport_atari_enable_irq(struct parport *p) 115 { ··· 201 &parport_atari_ops); 202 if (!p) 203 return -ENODEV; 204 - if (request_irq(IRQ_MFP_BUSY, parport_atari_interrupt, 205 IRQ_TYPE_SLOW, p->name, p)) { 206 parport_put_port (p); 207 return -ENODEV;
··· 103 { 104 } 105 106 static void 107 parport_atari_enable_irq(struct parport *p) 108 { ··· 208 &parport_atari_ops); 209 if (!p) 210 return -ENODEV; 211 + if (request_irq(IRQ_MFP_BUSY, parport_irq_handler, 212 IRQ_TYPE_SLOW, p->name, p)) { 213 parport_put_port (p); 214 return -ENODEV;
+1 -9
drivers/parport/parport_ax88796.c
··· 232 writeb(s->u.ax88796.cpr, dd->spp_cpr); 233 } 234 235 - static irqreturn_t 236 - parport_ax88796_interrupt(int irq, void *dev_id) 237 - { 238 - parport_generic_irq(irq, dev_id); 239 - return IRQ_HANDLED; 240 - } 241 - 242 - 243 static struct parport_operations parport_ax88796_ops = { 244 .write_data = parport_ax88796_write_data, 245 .read_data = parport_ax88796_read_data, ··· 336 337 if (irq >= 0) { 338 /* request irq */ 339 - ret = request_irq(irq, parport_ax88796_interrupt, 340 IRQF_TRIGGER_FALLING, pdev->name, pp); 341 342 if (ret < 0)
··· 232 writeb(s->u.ax88796.cpr, dd->spp_cpr); 233 } 234 235 static struct parport_operations parport_ax88796_ops = { 236 .write_data = parport_ax88796_write_data, 237 .read_data = parport_ax88796_read_data, ··· 344 345 if (irq >= 0) { 346 /* request irq */ 347 + ret = request_irq(irq, parport_irq_handler, 348 IRQF_TRIGGER_FALLING, pdev->name, pp); 349 350 if (ret < 0)
+1 -7
drivers/parport/parport_gsc.c
··· 80 * of these are in parport_gsc.h. 81 */ 82 83 - static irqreturn_t parport_gsc_interrupt(int irq, void *dev_id) 84 - { 85 - parport_generic_irq(irq, (struct parport *) dev_id); 86 - return IRQ_HANDLED; 87 - } 88 - 89 void parport_gsc_init_state(struct pardevice *dev, struct parport_state *s) 90 { 91 s->u.pc.ctr = 0xc | (dev->irq_func ? 0x10 : 0x0); ··· 318 printk("]\n"); 319 320 if (p->irq != PARPORT_IRQ_NONE) { 321 - if (request_irq (p->irq, parport_gsc_interrupt, 322 0, p->name, p)) { 323 printk (KERN_WARNING "%s: irq %d in use, " 324 "resorting to polled operation\n",
··· 80 * of these are in parport_gsc.h. 81 */ 82 83 void parport_gsc_init_state(struct pardevice *dev, struct parport_state *s) 84 { 85 s->u.pc.ctr = 0xc | (dev->irq_func ? 0x10 : 0x0); ··· 324 printk("]\n"); 325 326 if (p->irq != PARPORT_IRQ_NONE) { 327 + if (request_irq (p->irq, parport_irq_handler, 328 0, p->name, p)) { 329 printk (KERN_WARNING "%s: irq %d in use, " 330 "resorting to polled operation\n",
+4 -2
drivers/parport/parport_ip32.c
··· 778 struct parport * const p = dev_id; 779 struct parport_ip32_private * const priv = p->physport->private_data; 780 enum parport_ip32_irq_mode irq_mode = priv->irq_mode; 781 switch (irq_mode) { 782 case PARPORT_IP32_IRQ_FWD: 783 - parport_generic_irq(irq, p); 784 - break; 785 case PARPORT_IP32_IRQ_HERE: 786 parport_ip32_wakeup(p); 787 break; 788 } 789 return IRQ_HANDLED; 790 } 791
··· 778 struct parport * const p = dev_id; 779 struct parport_ip32_private * const priv = p->physport->private_data; 780 enum parport_ip32_irq_mode irq_mode = priv->irq_mode; 781 + 782 switch (irq_mode) { 783 case PARPORT_IP32_IRQ_FWD: 784 + return parport_irq_handler(irq, dev_id); 785 + 786 case PARPORT_IP32_IRQ_HERE: 787 parport_ip32_wakeup(p); 788 break; 789 } 790 + 791 return IRQ_HANDLED; 792 } 793
+1 -1
drivers/parport/parport_mfc3.c
··· 219 if (this_port[i] != NULL) 220 if (pia(this_port[i])->crb & 128) { /* Board caused interrupt */ 221 dummy = pia(this_port[i])->pprb; /* clear irq bit */ 222 - parport_generic_irq(irq, this_port[i]); 223 } 224 return IRQ_HANDLED; 225 }
··· 219 if (this_port[i] != NULL) 220 if (pia(this_port[i])->crb & 128) { /* Board caused interrupt */ 221 dummy = pia(this_port[i])->pprb; /* clear irq bit */ 222 + parport_generic_irq(this_port[i]); 223 } 224 return IRQ_HANDLED; 225 }
+1 -8
drivers/parport/parport_pc.c
··· 272 * of these are in parport_pc.h. 273 */ 274 275 - static irqreturn_t parport_pc_interrupt(int irq, void *dev_id) 276 - { 277 - parport_generic_irq(irq, (struct parport *) dev_id); 278 - /* FIXME! Was it really ours? */ 279 - return IRQ_HANDLED; 280 - } 281 - 282 static void parport_pc_init_state(struct pardevice *dev, struct parport_state *s) 283 { 284 s->u.pc.ctr = 0xc; ··· 2294 EPP_res = NULL; 2295 } 2296 if (p->irq != PARPORT_IRQ_NONE) { 2297 - if (request_irq (p->irq, parport_pc_interrupt, 2298 0, p->name, p)) { 2299 printk (KERN_WARNING "%s: irq %d in use, " 2300 "resorting to polled operation\n",
··· 272 * of these are in parport_pc.h. 273 */ 274 275 static void parport_pc_init_state(struct pardevice *dev, struct parport_state *s) 276 { 277 s->u.pc.ctr = 0xc; ··· 2301 EPP_res = NULL; 2302 } 2303 if (p->irq != PARPORT_IRQ_NONE) { 2304 + if (request_irq (p->irq, parport_irq_handler, 2305 0, p->name, p)) { 2306 printk (KERN_WARNING "%s: irq %d in use, " 2307 "resorting to polled operation\n",
+1 -7
drivers/parport/parport_sunbpp.c
··· 46 #define dprintk(x) 47 #endif 48 49 - static irqreturn_t parport_sunbpp_interrupt(int irq, void *dev_id) 50 - { 51 - parport_generic_irq(irq, (struct parport *) dev_id); 52 - return IRQ_HANDLED; 53 - } 54 - 55 static void parport_sunbpp_disable_irq(struct parport *p) 56 { 57 struct bpp_regs __iomem *regs = (struct bpp_regs __iomem *)p->base; ··· 318 p->size = size; 319 p->dev = &sdev->ofdev.dev; 320 321 - if ((err = request_irq(p->irq, parport_sunbpp_interrupt, 322 IRQF_SHARED, p->name, p)) != 0) { 323 goto out_put_port; 324 }
··· 46 #define dprintk(x) 47 #endif 48 49 static void parport_sunbpp_disable_irq(struct parport *p) 50 { 51 struct bpp_regs __iomem *regs = (struct bpp_regs __iomem *)p->base; ··· 324 p->size = size; 325 p->dev = &sdev->ofdev.dev; 326 327 + if ((err = request_irq(p->irq, parport_irq_handler, 328 IRQF_SHARED, p->name, p)) != 0) { 329 goto out_put_port; 330 }
+1 -2
drivers/parport/probe.c
··· 255 ssize_t parport_device_id (int devnum, char *buffer, size_t count) 256 { 257 ssize_t retval = -ENXIO; 258 - struct pardevice *dev = parport_open (devnum, "Device ID probe", 259 - NULL, NULL, NULL, 0, NULL); 260 if (!dev) 261 return -ENXIO; 262
··· 255 ssize_t parport_device_id (int devnum, char *buffer, size_t count) 256 { 257 ssize_t retval = -ENXIO; 258 + struct pardevice *dev = parport_open (devnum, "Device ID probe"); 259 if (!dev) 260 return -ENXIO; 261
+11 -1
drivers/parport/share.c
··· 524 struct pardevice * 525 parport_register_device(struct parport *port, const char *name, 526 int (*pf)(void *), void (*kf)(void *), 527 - void (*irq_func)(int, void *), 528 int flags, void *handle) 529 { 530 struct pardevice *tmp; ··· 995 } 996 } 997 998 /* Exported symbols for modules. */ 999 1000 EXPORT_SYMBOL(parport_claim); ··· 1020 EXPORT_SYMBOL(parport_put_port); 1021 EXPORT_SYMBOL(parport_find_number); 1022 EXPORT_SYMBOL(parport_find_base); 1023 1024 MODULE_LICENSE("GPL");
··· 524 struct pardevice * 525 parport_register_device(struct parport *port, const char *name, 526 int (*pf)(void *), void (*kf)(void *), 527 + void (*irq_func)(void *), 528 int flags, void *handle) 529 { 530 struct pardevice *tmp; ··· 995 } 996 } 997 998 + irqreturn_t parport_irq_handler(int irq, void *dev_id) 999 + { 1000 + struct parport *port = dev_id; 1001 + 1002 + parport_generic_irq(port); 1003 + 1004 + return IRQ_HANDLED; 1005 + } 1006 + 1007 /* Exported symbols for modules. */ 1008 1009 EXPORT_SYMBOL(parport_claim); ··· 1011 EXPORT_SYMBOL(parport_put_port); 1012 EXPORT_SYMBOL(parport_find_number); 1013 EXPORT_SYMBOL(parport_find_base); 1014 + EXPORT_SYMBOL(parport_irq_handler); 1015 1016 MODULE_LICENSE("GPL");
+2 -2
drivers/usb/misc/uss720.c
··· 128 #endif 129 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ 130 if (rq->reg[2] & rq->reg[1] & 0x10 && pp) 131 - parport_generic_irq(0, pp); 132 } 133 complete(&rq->compl); 134 kref_put(&rq->ref_count, destroy_async); ··· 337 memcpy(priv->reg, buffer, 4); 338 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ 339 if (priv->reg[2] & priv->reg[1] & 0x10) 340 - parport_generic_irq(0, pp); 341 return 1; 342 } 343 #endif
··· 128 #endif 129 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ 130 if (rq->reg[2] & rq->reg[1] & 0x10 && pp) 131 + parport_generic_irq(pp); 132 } 133 complete(&rq->compl); 134 kref_put(&rq->ref_count, destroy_async); ··· 337 memcpy(priv->reg, buffer, 4); 338 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ 339 if (priv->reg[2] & priv->reg[1] & 0x10) 340 + parport_generic_irq(pp); 341 return 1; 342 } 343 #endif
+11 -11
include/linux/parport.h
··· 100 #include <linux/proc_fs.h> 101 #include <linux/spinlock.h> 102 #include <linux/wait.h> 103 #include <asm/system.h> 104 #include <asm/ptrace.h> 105 #include <asm/semaphore.h> ··· 230 int (*preempt)(void *); 231 void (*wakeup)(void *); 232 void *private; 233 - void (*irq_func)(int, void *); 234 unsigned int flags; 235 struct pardevice *next; 236 struct pardevice *prev; ··· 367 extern struct parport *parport_find_number (int); 368 extern struct parport *parport_find_base (unsigned long); 369 370 /* Reference counting for ports. */ 371 extern struct parport *parport_get_port (struct parport *); 372 extern void parport_put_port (struct parport *); ··· 383 struct pardevice *parport_register_device(struct parport *port, 384 const char *name, 385 int (*pf)(void *), void (*kf)(void *), 386 - void (*irq_func)(int, void *), 387 int flags, void *handle); 388 389 /* parport_unregister unlinks a device from the chain. */ ··· 465 #define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ 466 467 /* IEEE1284 functions */ 468 - extern void parport_ieee1284_interrupt (int, void *); 469 extern int parport_negotiate (struct parport *, int mode); 470 extern ssize_t parport_write (struct parport *, const void *buf, size_t len); 471 extern ssize_t parport_read (struct parport *, void *buf, size_t len); ··· 507 /* IEEE1284.3 functions */ 508 extern int parport_daisy_init (struct parport *port); 509 extern void parport_daisy_fini (struct parport *port); 510 - extern struct pardevice *parport_open (int devnum, const char *name, 511 - int (*pf) (void *), 512 - void (*kf) (void *), 513 - void (*irqf) (int, void *), 514 - int flags, void *handle); 515 extern void parport_close (struct pardevice *dev); 516 extern ssize_t parport_device_id (int devnum, char *buffer, size_t len); 517 extern void parport_daisy_deselect_all (struct parport *port); 518 extern int parport_daisy_select (struct parport *port, int daisy, int mode); 519 520 /* Lowlevel drivers _can_ call this support function to handle irqs. */ 521 - static __inline__ void parport_generic_irq(int irq, struct parport *port) 522 { 523 - parport_ieee1284_interrupt (irq, port); 524 read_lock(&port->cad_lock); 525 if (port->cad && port->cad->irq_func) 526 - port->cad->irq_func(irq, port->cad->private); 527 read_unlock(&port->cad_lock); 528 } 529
··· 100 #include <linux/proc_fs.h> 101 #include <linux/spinlock.h> 102 #include <linux/wait.h> 103 + #include <linux/irqreturn.h> 104 #include <asm/system.h> 105 #include <asm/ptrace.h> 106 #include <asm/semaphore.h> ··· 229 int (*preempt)(void *); 230 void (*wakeup)(void *); 231 void *private; 232 + void (*irq_func)(void *); 233 unsigned int flags; 234 struct pardevice *next; 235 struct pardevice *prev; ··· 366 extern struct parport *parport_find_number (int); 367 extern struct parport *parport_find_base (unsigned long); 368 369 + /* generic irq handler, if it suits your needs */ 370 + extern irqreturn_t parport_irq_handler(int irq, void *dev_id); 371 + 372 /* Reference counting for ports. */ 373 extern struct parport *parport_get_port (struct parport *); 374 extern void parport_put_port (struct parport *); ··· 379 struct pardevice *parport_register_device(struct parport *port, 380 const char *name, 381 int (*pf)(void *), void (*kf)(void *), 382 + void (*irq_func)(void *), 383 int flags, void *handle); 384 385 /* parport_unregister unlinks a device from the chain. */ ··· 461 #define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ 462 463 /* IEEE1284 functions */ 464 + extern void parport_ieee1284_interrupt (void *); 465 extern int parport_negotiate (struct parport *, int mode); 466 extern ssize_t parport_write (struct parport *, const void *buf, size_t len); 467 extern ssize_t parport_read (struct parport *, void *buf, size_t len); ··· 503 /* IEEE1284.3 functions */ 504 extern int parport_daisy_init (struct parport *port); 505 extern void parport_daisy_fini (struct parport *port); 506 + extern struct pardevice *parport_open (int devnum, const char *name); 507 extern void parport_close (struct pardevice *dev); 508 extern ssize_t parport_device_id (int devnum, char *buffer, size_t len); 509 extern void parport_daisy_deselect_all (struct parport *port); 510 extern int parport_daisy_select (struct parport *port, int daisy, int mode); 511 512 /* Lowlevel drivers _can_ call this support function to handle irqs. */ 513 + static inline void parport_generic_irq(struct parport *port) 514 { 515 + parport_ieee1284_interrupt (port); 516 read_lock(&port->cad_lock); 517 if (port->cad && port->cad->irq_func) 518 + port->cad->irq_func(port->cad->private); 519 read_unlock(&port->cad_lock); 520 } 521
+1 -1
sound/drivers/mts64.c
··· 830 /********************************************************************* 831 * parport stuff 832 *********************************************************************/ 833 - static void snd_mts64_interrupt(int irq, void *private) 834 { 835 struct mts64 *mts = ((struct snd_card*)private)->private_data; 836 u16 ret;
··· 830 /********************************************************************* 831 * parport stuff 832 *********************************************************************/ 833 + static void snd_mts64_interrupt(void *private) 834 { 835 struct mts64 *mts = ((struct snd_card*)private)->private_data; 836 u16 ret;
+1 -1
sound/drivers/portman2x4.c
··· 611 /********************************************************************* 612 * parport stuff 613 *********************************************************************/ 614 - static void snd_portman_interrupt(int irq, void *userdata) 615 { 616 unsigned char midivalue = 0; 617 struct portman *pm = ((struct snd_card*)userdata)->private_data;
··· 611 /********************************************************************* 612 * parport stuff 613 *********************************************************************/ 614 + static void snd_portman_interrupt(void *userdata) 615 { 616 unsigned char midivalue = 0; 617 struct portman *pm = ((struct snd_card*)userdata)->private_data;