[PATCH 14/17] pcmcia/i82365: irq handler cleanups

Jeff Garzik jeff at garzik.org
Sun Oct 21 03:52:48 EDT 2007


commit c94109209f6d3aa2ff8c6c458552775f693ad7ee
Author: Jeff Garzik <jeff at garzik.org>
Date:   Fri Oct 19 19:34:33 2007 -0400

    pcmcia/i82365: irq handler cleanups
    
    * pass irq number to irq handler via dev_id
    
    Signed-off-by: Jeff Garzik <jgarzik at redhat.com>

 drivers/pcmcia/i82365.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

c94109209f6d3aa2ff8c6c458552775f693ad7ee
diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c
index 839bb1c..330150e 100644
--- a/drivers/pcmcia/i82365.c
+++ b/drivers/pcmcia/i82365.c
@@ -82,7 +82,8 @@ module_param(pc_debug, int, 0644);
 static irqreturn_t i365_count_irq(int, void *);
 static inline int _check_irq(int irq, int flags)
 {
-    if (request_irq(irq, i365_count_irq, flags, "x", i365_count_irq) != 0)
+    if (request_irq(irq, i365_count_irq, flags, "x",
+    		    (void *)(unsigned long) irq) != 0)
 	return -1;
     free_irq(irq, i365_count_irq);
     return 0;
@@ -497,8 +498,10 @@ static u_int __init set_bridge_opts(u_short s, u_short ns)
 static volatile u_int irq_hits;
 static u_short irq_sock;
 
-static irqreturn_t i365_count_irq(int irq, void *dev)
+static irqreturn_t i365_count_irq(int dummy, void *dev_id)
 {
+    int irq = (int)(unsigned long) dev_id;
+
     i365_get(irq_sock, I365_CSC);
     irq_hits++;
     debug(2, "-> hit on irq %d\n", irq);
@@ -509,7 +512,7 @@ static u_int __init test_irq(u_short sock, int irq)
 {
     debug(2, "  testing ISA irq %d\n", irq);
     if (request_irq(irq, i365_count_irq, IRQF_PROBE_SHARED, "scan",
-			i365_count_irq) != 0)
+		    (void *)(unsigned long) irq) != 0)
 	return 1;
     irq_hits = 0; irq_sock = sock;
     msleep(10);
@@ -847,8 +850,9 @@ static void __init isa_probe(void)
 
 /*====================================================================*/
 
-static irqreturn_t pcic_interrupt(int irq, void *dev)
+static irqreturn_t pcic_interrupt(int dummy, void *dev_id)
 {
+    int irq = (int)(unsigned long) dev_id;
     int i, j, csc;
     u_int events, active;
     u_long flags = 0;
@@ -1293,7 +1297,8 @@ static int __init init_i82365(void)
 
     /* Set up interrupt handler(s) */
     if (grab_irq != 0)
-	request_irq(cs_irq, pcic_interrupt, 0, "i82365", pcic_interrupt);
+	request_irq(cs_irq, pcic_interrupt, 0, "i82365",
+		    (void *)(unsigned long) cs_irq);
     
     /* register sockets with the pcmcia core */
     for (i = 0; i < sockets; i++) {



More information about the linux-pcmcia mailing list