X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fisdn%2Fcapi%2Fcapidrv.c;h=44efe19064c07a5835cbf5e6d609f8202a8e6199;hb=3ec04f3d2903fdf6d9849a8633af59b8628164a5;hp=3eae6a563133cfd97ffeb2d0249f5a5aeae7ed9b;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c index 3eae6a563..44efe1906 100644 --- a/drivers/isdn/capi/capidrv.c +++ b/drivers/isdn/capi/capidrv.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include @@ -41,7 +40,7 @@ static int debugmode = 0; MODULE_DESCRIPTION("CAPI4Linux: Interface to ISDN4Linux"); MODULE_AUTHOR("Carsten Paeth"); MODULE_LICENSE("GPL"); -module_param(debugmode, uint, 0); +MODULE_PARM(debugmode, "i"); /* -------- type definitions ----------------------------------------- */ @@ -2058,10 +2057,6 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp) return -1; } card->myid = card->interface.channels; - memset(card->bchans, 0, sizeof(capidrv_bchan) * card->nbchan); - for (i = 0; i < card->nbchan; i++) { - card->bchans[i].contr = card; - } spin_lock_irqsave(&global_lock, flags); card->next = global.contr_list; @@ -2069,6 +2064,11 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp) global.ncontr++; spin_unlock_irqrestore(&global_lock, flags); + memset(card->bchans, 0, sizeof(capidrv_bchan) * card->nbchan); + for (i = 0; i < card->nbchan; i++) { + card->bchans[i].contr = card; + } + cmd.command = ISDN_STAT_RUN; cmd.driver = card->myid; card->interface.statcallb(&cmd); @@ -2076,9 +2076,10 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp) card->cipmask = 0x1FFF03FF; /* any */ card->cipmask2 = 0; + send_listen(card); + card->listentimer.data = (unsigned long)card; card->listentimer.function = listentimerfunc; - send_listen(card); mod_timer(&card->listentimer, jiffies + 60*HZ); printk(KERN_INFO "%s: now up (%d B channels)\n",