fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / isdn / hardware / avm / t1isa.c
index 9d777eb..c925020 100644 (file)
@@ -131,7 +131,7 @@ static int t1_detectandinit(unsigned int base, unsigned irq, int cardnr)
         return 0;
 }
 
-static irqreturn_t t1isa_interrupt(int interrupt, void *devptr, struct pt_regs *regs)
+static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
 {
        avmcard *card = devptr;
        avmctrl_info *cinfo = &card->ctrlinfo[0];
@@ -328,7 +328,7 @@ static int t1isa_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
        return 0;
 }
 
-void t1isa_reset_ctr(struct capi_ctr *ctrl)
+static void t1isa_reset_ctr(struct capi_ctr *ctrl)
 {
        avmctrl_info *cinfo = (avmctrl_info *)(ctrl->driverdata);
        avmcard *card = cinfo->card;
@@ -472,7 +472,7 @@ static u16 t1isa_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
                                             CAPIMSG_NCCI(skb->data),
                                             CAPIMSG_MSGID(skb->data));
                if (retval != CAPI_NOERROR) 
-                       goto out;
+                       return retval;
 
                dlen = CAPIMSG_DATALEN(skb->data);
 
@@ -482,16 +482,15 @@ static u16 t1isa_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
                t1_put_slice(port, skb->data + len, dlen);
                spin_unlock_irqrestore(&card->lock, flags);
        } else {
-               retval = CAPI_NOERROR;
 
                spin_lock_irqsave(&card->lock, flags);
                b1_put_byte(port, SEND_MESSAGE);
                t1_put_slice(port, skb->data, len);
                spin_unlock_irqrestore(&card->lock, flags);
        }
- out:
+
        dev_kfree_skb_any(skb);
-       return retval;
+       return CAPI_NOERROR;
 }
 /* ------------------------------------------------------------- */
 
@@ -520,9 +519,9 @@ static int io[MAX_CARDS];
 static int irq[MAX_CARDS];
 static int cardnr[MAX_CARDS];
 
-MODULE_PARM(io, "1-" __MODULE_STRING(MAX_CARDS) "i");
-MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_CARDS) "i");
-MODULE_PARM(cardnr, "1-" __MODULE_STRING(MAX_CARDS) "i");
+module_param_array(io, int, NULL, 0);
+module_param_array(irq, int, NULL, 0);
+module_param_array(cardnr, int, NULL, 0);
 MODULE_PARM_DESC(io, "I/O base address(es)");
 MODULE_PARM_DESC(irq, "IRQ number(s) (assigned)");
 MODULE_PARM_DESC(cardnr, "Card number(s) (as jumpered)");
@@ -585,6 +584,7 @@ static void __exit t1isa_exit(void)
 {
        int i;
 
+       unregister_capi_driver(&capi_driver_t1isa);
        for (i = 0; i < MAX_CARDS; i++) {
                if (!io[i])
                        break;