diff options
Diffstat (limited to 'drivers/isdn/hisax/config.c')
| -rw-r--r-- | drivers/isdn/hisax/config.c | 16 | 
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c index 84d75a3f5d1..ded9d0baf60 100644 --- a/drivers/isdn/hisax/config.c +++ b/drivers/isdn/hisax/config.c @@ -1213,7 +1213,7 @@ static void HiSax_shiftcards(int idx)  		memcpy(&cards[i], &cards[i + 1], sizeof(cards[i]));  } -static int HiSax_inithardware(int *busy_flag) +static int __init HiSax_inithardware(int *busy_flag)  {  	int foundcards = 0;  	int i = 0; @@ -1542,7 +1542,9 @@ static void __exit HiSax_exit(void)  	printk(KERN_INFO "HiSax module removed\n");  } -int hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card) +#ifdef CONFIG_HOTPLUG + +int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card)  {  	u_char ids[16];  	int ret = -1; @@ -1563,6 +1565,8 @@ error:  }  EXPORT_SYMBOL(hisax_init_pcmcia); +#endif +  EXPORT_SYMBOL(HiSax_closecard);  #include "hisax_if.h" @@ -1580,6 +1584,11 @@ static void hisax_bc_close(struct BCState *bcs);  static void hisax_bh(struct work_struct *work);  static void EChannel_proc_rcv(struct hisax_d_if *d_if); +static int hisax_setup_card_dynamic(struct IsdnCard *card) +{ +	return 2; +} +  int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[],  		   char *name, int protocol)  { @@ -1599,7 +1608,8 @@ int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[],  	cards[i].protocol = protocol;  	sprintf(id, "%s%d", name, i);  	nrcards++; -	retval = checkcard(i, id, NULL, hisax_d_if->owner, hisax_cs_setup_card); +	retval = checkcard(i, id, NULL, hisax_d_if->owner, +				hisax_setup_card_dynamic);  	if (retval == 0) { // yuck  		cards[i].typ = 0;  		nrcards--;  |