patch-2.3.99-pre6 linux/drivers/isdn/avmb1/t1pci.c
Next file: linux/drivers/isdn/hisax/hisax.h
Previous file: linux/drivers/isdn/avmb1/t1isa.c
Back to the patch index
Back to the overall index
- Lines: 91
- Date:
Thu Apr 13 09:03:03 2000
- Orig file:
v2.3.99-pre5/linux/drivers/isdn/avmb1/t1pci.c
- Orig date:
Wed Feb 16 17:03:52 2000
diff -u --recursive --new-file v2.3.99-pre5/linux/drivers/isdn/avmb1/t1pci.c linux/drivers/isdn/avmb1/t1pci.c
@@ -1,11 +1,18 @@
/*
- * $Id: t1pci.c,v 1.5 2000/02/02 18:36:04 calle Exp $
+ * $Id: t1pci.c,v 1.7 2000/04/07 15:26:55 calle Exp $
*
* Module for AVM T1 PCI-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: t1pci.c,v $
+ * Revision 1.7 2000/04/07 15:26:55 calle
+ * better error message if cabel not connected or T1 has no power.
+ *
+ * Revision 1.6 2000/04/03 13:29:25 calle
+ * make Tim Waugh happy (module unload races in 2.3.99-pre3).
+ * no real problem there, but now it is much cleaner ...
+ *
* Revision 1.5 2000/02/02 18:36:04 calle
* - Modules are now locked while init_module is running
* - fixed problem with memory mapping if address is not aligned
@@ -47,7 +54,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.5 $";
+static char *revision = "$Revision: 1.7 $";
#undef CONFIG_T1PCI_DEBUG
#undef CONFIG_T1PCI_POLLDEBUG
@@ -164,7 +171,11 @@
b1dma_reset(card);
if ((retval = t1pci_detect(card)) != 0) {
- printk(KERN_NOTICE "%s: NO card at 0x%x (%d)\n",
+ if (retval < 6)
+ printk(KERN_NOTICE "%s: NO card at 0x%x (%d)\n",
+ driver->name, card->port, retval);
+ else
+ printk(KERN_NOTICE "%s: card at 0x%x, but cabel not connected or T1 has no power (%d)\n",
driver->name, card->port, retval);
iounmap((void *) (((unsigned long) card->mbase) & PAGE_MASK));
kfree(card->ctrlinfo);
@@ -264,6 +275,8 @@
char *p;
int retval;
+ MOD_INC_USE_COUNT;
+
if ((p = strchr(revision, ':'))) {
strncpy(driver->revision, p + 1, sizeof(driver->revision));
p = strchr(driver->revision, '$');
@@ -277,6 +290,7 @@
if (!di) {
printk(KERN_ERR "%s: failed to attach capi_driver\n",
driver->name);
+ MOD_DEC_USE_COUNT;
return -EIO;
}
@@ -284,6 +298,7 @@
if (!pci_present()) {
printk(KERN_ERR "%s: no PCI bus present\n", driver->name);
detach_capi_driver(driver);
+ MOD_DEC_USE_COUNT;
return -EIO;
}
@@ -305,6 +320,7 @@
#ifdef MODULE
cleanup_module();
#endif
+ MOD_DEC_USE_COUNT;
return retval;
}
ncards++;
@@ -312,12 +328,15 @@
if (ncards) {
printk(KERN_INFO "%s: %d T1-PCI card(s) detected\n",
driver->name, ncards);
+ MOD_DEC_USE_COUNT;
return 0;
}
printk(KERN_ERR "%s: NO T1-PCI card detected\n", driver->name);
+ MOD_DEC_USE_COUNT;
return -ESRCH;
#else
printk(KERN_ERR "%s: kernel not compiled with PCI.\n", driver->name);
+ MOD_DEC_USE_COUNT;
return -EIO;
#endif
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)