val = serial_inp(cs, UART_IIR);
                if (!(val & UART_IIR_NO_INT)) {
                        debugl1(cs,"IIR %02x", val);
-                       rs_interrupt_elsa(intno, cs);
+                       rs_interrupt_elsa(cs);
                }
        }
 #endif
                val = serial_inp(cs, UART_IIR);
                if (!(val & UART_IIR_NO_INT)) {
                        debugl1(cs,"IIR %02x", val);
-                       rs_interrupt_elsa(intno, cs);
+                       rs_interrupt_elsa(cs);
                }
        }
 #endif
 
 }
 
 
-static void rs_interrupt_elsa(int irq, struct IsdnCardState *cs)
+static void rs_interrupt_elsa(struct IsdnCardState *cs)
 {
        int status, iir, msr;
        int pass_counter = 0;
        
 #ifdef SERIAL_DEBUG_INTR
-       printk("rs_interrupt_single(%d)...", irq);
+       printk(KERN_DEBUG "rs_interrupt_single(%d)...", cs->irq);
 #endif
 
        do {
 
        int             (*cardmsg) (struct IsdnCardState *, int, void *);
        void            (*setstack_d) (struct PStack *, struct IsdnCardState *);
        void            (*DC_Close) (struct IsdnCardState *);
-       int             (*irq_func) (int, void *);
+       irq_handler_t   irq_func;
        int             (*auxcmd) (struct IsdnCardState *, isdn_ctrl *);
        struct Channel  channel[2+MAX_WAITING_CALLS];
        struct BCState  bcs[2+MAX_WAITING_CALLS];