summaryrefslogtreecommitdiffstats
path: root/drivers/isdn
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2001-04-05 04:55:58 +0000
committerRalf Baechle <ralf@linux-mips.org>2001-04-05 04:55:58 +0000
commit74a9f2e1b4d3ab45a9f72cb5b556c9f521524ab3 (patch)
tree7c4cdb103ab1b388c9852a88bd6fb1e73eba0b5c /drivers/isdn
parentee6374c8b0d333c08061c6a97bc77090d7461225 (diff)
Merge with Linux 2.4.3.
Note that mingetty does no longer work with serial console, you have to switch to another getty like getty_ps. This commit also includes a fix for a setitimer bug which did prevent getty_ps from working on older kernels.
Diffstat (limited to 'drivers/isdn')
-rw-r--r--drivers/isdn/Config.in8
-rw-r--r--drivers/isdn/Makefile3
-rw-r--r--drivers/isdn/act2000/act2000.h2
-rw-r--r--drivers/isdn/act2000/capi.c4
-rw-r--r--drivers/isdn/act2000/capi.h4
-rw-r--r--drivers/isdn/act2000/module.c47
-rw-r--r--drivers/isdn/avmb1/avm_cs.c4
-rw-r--r--drivers/isdn/avmb1/b1.c24
-rw-r--r--drivers/isdn/avmb1/b1dma.c24
-rw-r--r--drivers/isdn/avmb1/b1isa.c29
-rw-r--r--drivers/isdn/avmb1/b1pci.c28
-rw-r--r--drivers/isdn/avmb1/b1pcmcia.c24
-rw-r--r--drivers/isdn/avmb1/c4.c28
-rw-r--r--drivers/isdn/avmb1/capi.c35
-rw-r--r--drivers/isdn/avmb1/capidrv.c33
-rw-r--r--drivers/isdn/avmb1/capifs.c31
-rw-r--r--drivers/isdn/avmb1/capiutil.c9
-rw-r--r--drivers/isdn/avmb1/kcapi.c33
-rw-r--r--drivers/isdn/avmb1/t1isa.c27
-rw-r--r--drivers/isdn/avmb1/t1pci.c19
-rw-r--r--drivers/isdn/divert/divert_init.c13
-rw-r--r--drivers/isdn/divert/isdn_divert.c4
-rw-r--r--drivers/isdn/eicon/Divas_mod.c38
-rw-r--r--drivers/isdn/eicon/Makefile5
-rw-r--r--drivers/isdn/eicon/adapter.h3
-rw-r--r--drivers/isdn/eicon/bri.c7
-rw-r--r--drivers/isdn/eicon/common.c4
-rw-r--r--drivers/isdn/eicon/constant.h3
-rw-r--r--drivers/isdn/eicon/divalog.h3
-rw-r--r--drivers/isdn/eicon/divas.h3
-rw-r--r--drivers/isdn/eicon/dsp_defs.h3
-rw-r--r--drivers/isdn/eicon/dspdids.h3
-rw-r--r--drivers/isdn/eicon/eicon.h3
-rw-r--r--drivers/isdn/eicon/eicon_idi.c6
-rw-r--r--drivers/isdn/eicon/eicon_io.c4
-rw-r--r--drivers/isdn/eicon/eicon_mod.c56
-rw-r--r--drivers/isdn/eicon/eicon_pci.c8
-rw-r--r--drivers/isdn/eicon/fcheck.c31
-rw-r--r--drivers/isdn/eicon/fourbri.c28
-rw-r--r--drivers/isdn/eicon/fpga.c3
-rw-r--r--drivers/isdn/eicon/idi.c5
-rw-r--r--drivers/isdn/eicon/idi.h5
-rw-r--r--drivers/isdn/eicon/kprintf.c3
-rw-r--r--drivers/isdn/eicon/lincfg.c3
-rw-r--r--drivers/isdn/eicon/linchr.c21
-rw-r--r--drivers/isdn/eicon/linio.c3
-rw-r--r--drivers/isdn/eicon/linsys.c3
-rw-r--r--drivers/isdn/eicon/log.c3
-rw-r--r--drivers/isdn/eicon/md5sums.asc16
-rw-r--r--drivers/isdn/eicon/pc.h3
-rw-r--r--drivers/isdn/eicon/pc_maint.h3
-rw-r--r--drivers/isdn/eicon/pr_pc.h3
-rw-r--r--drivers/isdn/eicon/pri.c9
-rw-r--r--drivers/isdn/eicon/sys.h3
-rw-r--r--drivers/isdn/eicon/uxio.h3
-rw-r--r--drivers/isdn/eicon/xlog.c3
-rw-r--r--drivers/isdn/hisax/Makefile3
-rw-r--r--drivers/isdn/hisax/amd7930.c6
-rw-r--r--drivers/isdn/hisax/arcofi.c4
-rw-r--r--drivers/isdn/hisax/arcofi.h4
-rw-r--r--drivers/isdn/hisax/asuscom.c6
-rw-r--r--drivers/isdn/hisax/avm_a1.c6
-rw-r--r--drivers/isdn/hisax/avm_a1p.c6
-rw-r--r--drivers/isdn/hisax/avm_pci.c6
-rw-r--r--drivers/isdn/hisax/bkm_a4t.c6
-rw-r--r--drivers/isdn/hisax/bkm_a8.c6
-rw-r--r--drivers/isdn/hisax/bkm_ax.h4
-rw-r--r--drivers/isdn/hisax/callc.c53
-rw-r--r--drivers/isdn/hisax/cert.c4
-rw-r--r--drivers/isdn/hisax/config.c27
-rw-r--r--drivers/isdn/hisax/diva.c6
-rw-r--r--drivers/isdn/hisax/elsa.c6
-rw-r--r--drivers/isdn/hisax/elsa_ser.c4
-rw-r--r--drivers/isdn/hisax/fsm.c4
-rw-r--r--drivers/isdn/hisax/gazel.c6
-rw-r--r--drivers/isdn/hisax/hfc_2bds0.c4
-rw-r--r--drivers/isdn/hisax/hfc_2bds0.h4
-rw-r--r--drivers/isdn/hisax/hfc_2bs0.c4
-rw-r--r--drivers/isdn/hisax/hfc_2bs0.h4
-rw-r--r--drivers/isdn/hisax/hfc_pci.c4
-rw-r--r--drivers/isdn/hisax/hfcscard.c6
-rw-r--r--drivers/isdn/hisax/hisax.h16
-rw-r--r--drivers/isdn/hisax/hscx.c4
-rw-r--r--drivers/isdn/hisax/hscx.h4
-rw-r--r--drivers/isdn/hisax/hscx_irq.c4
-rw-r--r--drivers/isdn/hisax/icc.c6
-rw-r--r--drivers/isdn/hisax/icc.h6
-rw-r--r--drivers/isdn/hisax/ipac.h4
-rw-r--r--drivers/isdn/hisax/isac.c6
-rw-r--r--drivers/isdn/hisax/isac.h4
-rw-r--r--drivers/isdn/hisax/isar.c4
-rw-r--r--drivers/isdn/hisax/isar.h4
-rw-r--r--drivers/isdn/hisax/isdnl1.c6
-rw-r--r--drivers/isdn/hisax/isdnl1.h4
-rw-r--r--drivers/isdn/hisax/isdnl2.c6
-rw-r--r--drivers/isdn/hisax/isdnl2.h4
-rw-r--r--drivers/isdn/hisax/isdnl3.c6
-rw-r--r--drivers/isdn/hisax/isdnl3.h4
-rw-r--r--drivers/isdn/hisax/isurf.c6
-rw-r--r--drivers/isdn/hisax/ix1_micro.c6
-rw-r--r--drivers/isdn/hisax/jade.c4
-rw-r--r--drivers/isdn/hisax/jade.h4
-rw-r--r--drivers/isdn/hisax/jade_irq.c4
-rw-r--r--drivers/isdn/hisax/l3_1tr6.c6
-rw-r--r--drivers/isdn/hisax/l3_1tr6.h4
-rw-r--r--drivers/isdn/hisax/l3dss1.c18
-rw-r--r--drivers/isdn/hisax/l3dss1.h4
-rw-r--r--drivers/isdn/hisax/l3ni1.c14
-rw-r--r--drivers/isdn/hisax/l3ni1.h4
-rw-r--r--drivers/isdn/hisax/lmgr.c4
-rw-r--r--drivers/isdn/hisax/mic.c6
-rw-r--r--drivers/isdn/hisax/netjet.c6
-rw-r--r--drivers/isdn/hisax/netjet.h4
-rw-r--r--drivers/isdn/hisax/niccy.c6
-rw-r--r--drivers/isdn/hisax/nj_s.c6
-rw-r--r--drivers/isdn/hisax/nj_u.c6
-rw-r--r--drivers/isdn/hisax/q931.c6
-rw-r--r--drivers/isdn/hisax/rawhdlc.c4
-rw-r--r--drivers/isdn/hisax/rawhdlc.h4
-rw-r--r--drivers/isdn/hisax/s0box.c6
-rw-r--r--drivers/isdn/hisax/saphir.c6
-rw-r--r--drivers/isdn/hisax/sedlbauer.c6
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c679
-rw-r--r--drivers/isdn/hisax/sportster.c6
-rw-r--r--drivers/isdn/hisax/tei.c6
-rw-r--r--drivers/isdn/hisax/teleint.c6
-rw-r--r--drivers/isdn/hisax/teles0.c6
-rw-r--r--drivers/isdn/hisax/teles3.c6
-rw-r--r--drivers/isdn/hisax/telespci.c6
-rw-r--r--drivers/isdn/hisax/w6692.c6
-rw-r--r--drivers/isdn/hisax/w6692.h4
-rw-r--r--drivers/isdn/hysdn/boardergo.c8
-rw-r--r--drivers/isdn/hysdn/hycapi.c6
-rw-r--r--drivers/isdn/hysdn/hysdn_boot.c14
-rw-r--r--drivers/isdn/hysdn/hysdn_init.c21
-rw-r--r--drivers/isdn/hysdn/hysdn_net.c6
-rw-r--r--drivers/isdn/hysdn/hysdn_procconf.c10
-rw-r--r--drivers/isdn/hysdn/hysdn_procfs.c2
-rw-r--r--drivers/isdn/hysdn/hysdn_sched.c4
-rw-r--r--drivers/isdn/icn/icn.c30
-rw-r--r--drivers/isdn/icn/icn.h6
-rw-r--r--drivers/isdn/isdn_bsdcomp.c13
-rw-r--r--drivers/isdn/isdn_cards.c63
-rw-r--r--drivers/isdn/isdn_cards.h23
-rw-r--r--drivers/isdn/isdn_common.c22
-rw-r--r--drivers/isdn/isdn_tty.c6
-rw-r--r--drivers/isdn/isdn_v110.c8
-rw-r--r--drivers/isdn/isdnloop/isdnloop.c34
-rw-r--r--drivers/isdn/isdnloop/isdnloop.h2
-rw-r--r--drivers/isdn/pcbit/callbacks.c2
-rw-r--r--drivers/isdn/pcbit/callbacks.h2
-rw-r--r--drivers/isdn/pcbit/capi.c2
-rw-r--r--drivers/isdn/pcbit/capi.h2
-rw-r--r--drivers/isdn/pcbit/drv.c2
-rw-r--r--drivers/isdn/pcbit/edss1.c2
-rw-r--r--drivers/isdn/pcbit/edss1.h2
-rw-r--r--drivers/isdn/pcbit/layer2.c2
-rw-r--r--drivers/isdn/pcbit/layer2.h2
-rw-r--r--drivers/isdn/pcbit/module.c31
-rw-r--r--drivers/isdn/pcbit/pcbit.h2
-rw-r--r--drivers/isdn/sc/init.c22
-rw-r--r--drivers/isdn/sc/interrupt.c4
162 files changed, 1378 insertions, 864 deletions
diff --git a/drivers/isdn/Config.in b/drivers/isdn/Config.in
index f4272a6ae..f181cccce 100644
--- a/drivers/isdn/Config.in
+++ b/drivers/isdn/Config.in
@@ -9,7 +9,7 @@ if [ "$CONFIG_INET" != "n" ]; then
if [ "$CONFIG_ISDN_PPP" != "n" ]; then
bool ' Use VJ-compression with synchronous PPP' CONFIG_ISDN_PPP_VJ
bool ' Support generic MP (RFC 1717)' CONFIG_ISDN_MPP
- dep_tristate ' Support BSD compression (module only)' CONFIG_ISDN_PPP_BSDCOMP m
+ dep_tristate ' Support BSD compression' CONFIG_ISDN_PPP_BSDCOMP $CONFIG_ISDN
fi
fi
bool ' Support audio via ISDN' CONFIG_ISDN_AUDIO
@@ -23,7 +23,7 @@ fi
mainmenu_option next_comment
comment 'ISDN feature submodules'
dep_tristate 'isdnloop support' CONFIG_ISDN_DRV_LOOP $CONFIG_ISDN
- dep_tristate 'Support isdn diversion services' CONFIG_ISDN_DIVERSION $CONFIG_ISDN m
+ dep_tristate 'Support isdn diversion services' CONFIG_ISDN_DIVERSION $CONFIG_ISDN
endmenu
comment 'low-level hardware drivers'
@@ -76,6 +76,8 @@ if [ "$CONFIG_ISDN_DRV_HISAX" != "n" ]; then
bool ' Am7930' CONFIG_HISAX_AMD7930
fi
fi
+
+ dep_tristate ' Sedlbauer PCMCIA cs module' CONFIG_HISAX_SEDLBAUER_CS $CONFIG_PCMCIA
fi
endmenu
@@ -92,7 +94,7 @@ dep_tristate 'IBM Active 2000 support' CONFIG_ISDN_DRV_ACT2000 $CONFIG_ISD
bool 'Eicon active card support' CONFIG_ISDN_DRV_EICON
if [ "$CONFIG_ISDN_DRV_EICON" != "n" ]; then
if [ "$CONFIG_ISDN_DRV_EICON_OLD" != "y" ]; then
- dep_tristate ' Build Eicon driver type standalone' CONFIG_ISDN_DRV_EICON_DIVAS $CONFIG_ISDN
+ dep_tristate ' Build Eicon driver type standalone' CONFIG_ISDN_DRV_EICON_DIVAS $CONFIG_ISDN $CONFIG_PCI
fi
if [ "$CONFIG_ISDN_DRV_EICON_DIVAS" != "y" ]; then
dep_tristate ' Legacy Eicon driver' CONFIG_ISDN_DRV_EICON_OLD $CONFIG_ISDN
diff --git a/drivers/isdn/Makefile b/drivers/isdn/Makefile
index d1ab6cd7b..fc08d752a 100644
--- a/drivers/isdn/Makefile
+++ b/drivers/isdn/Makefile
@@ -11,8 +11,7 @@ export-objs := isdn_common.o
# Multipart objects.
list-multi := isdn.o
-isdn-objs := isdn_net.o isdn_tty.o isdn_cards.o isdn_v110.o \
- isdn_common.o
+isdn-objs := isdn_net.o isdn_tty.o isdn_v110.o isdn_common.o
# Optional parts of multipart objects.
diff --git a/drivers/isdn/act2000/act2000.h b/drivers/isdn/act2000/act2000.h
index db19bf245..adffe94b1 100644
--- a/drivers/isdn/act2000/act2000.h
+++ b/drivers/isdn/act2000/act2000.h
@@ -1,4 +1,4 @@
-/* $Id: act2000.h,v 1.8 2000/11/12 16:32:06 kai Exp $
+/* $Id: act2000.h,v 1.8.6.2 2001/02/16 16:43:23 kai Exp $
*
* ISDN lowlevel-module for the IBM ISDN-S0 Active 2000.
*
diff --git a/drivers/isdn/act2000/capi.c b/drivers/isdn/act2000/capi.c
index ad2471a17..ee126cb2c 100644
--- a/drivers/isdn/act2000/capi.c
+++ b/drivers/isdn/act2000/capi.c
@@ -1,4 +1,4 @@
-/* $Id: capi.c,v 1.9 2000/11/12 16:32:06 kai Exp $
+/* $Id: capi.c,v 1.9.6.1 2001/02/16 16:43:23 kai Exp $
*
* ISDN lowlevel-module for the IBM ISDN-S0 Active 2000.
* CAPI encoder/decoder
@@ -124,7 +124,7 @@ actcapi_chkhdr(act2000_card * card, actcapi_msghdr *hdr)
m->hdr.cmd.cmd = c; \
m->hdr.cmd.subcmd = s; \
m->hdr.msgnum = actcapi_nextsmsg(card); \
- } \
+ } else m = NULL;\
}
#define ACTCAPI_CHKSKB if (!skb) { \
diff --git a/drivers/isdn/act2000/capi.h b/drivers/isdn/act2000/capi.h
index 88e9b1aab..fb64fa877 100644
--- a/drivers/isdn/act2000/capi.h
+++ b/drivers/isdn/act2000/capi.h
@@ -1,4 +1,4 @@
-/* $Id: capi.h,v 1.6 2000/11/12 16:32:06 kai Exp $
+/* $Id: capi.h,v 1.6.6.1 2001/02/16 16:43:23 kai Exp $
*
* ISDN lowlevel-module for the IBM ISDN-S0 Active 2000.
*
@@ -44,7 +44,7 @@ typedef struct actcapi_msgdsc {
char *description;
} actcapi_msgdsc;
-/* CAPI Adress */
+/* CAPI Address */
typedef struct actcapi_addr {
__u8 len; /* Length of element */
__u8 tnp; /* Type/Numbering Plan */
diff --git a/drivers/isdn/act2000/module.c b/drivers/isdn/act2000/module.c
index c602d945f..44e3db27a 100644
--- a/drivers/isdn/act2000/module.c
+++ b/drivers/isdn/act2000/module.c
@@ -1,4 +1,4 @@
-/* $Id: module.c,v 1.14 2000/11/12 16:32:06 kai Exp $
+/* $Id: module.c,v 1.14.6.2 2000/12/18 22:14:10 kai Exp $
*
* ISDN lowlevel-module for the IBM ISDN-S0 Active 2000.
*
@@ -24,6 +24,7 @@
#include "act2000.h"
#include "act2000_isa.h"
#include "capi.h"
+#include <linux/init.h>
static unsigned short act2000_isa_ports[] =
{
@@ -820,12 +821,7 @@ act2000_addcard(int bus, int port, int irq, char *id)
#define DRIVERNAME "IBM Active 2000 ISDN driver"
-#ifdef MODULE
-#define act2000_init init_module
-#endif
-
-int
-act2000_init(void)
+static int __init act2000_init(void)
{
printk(KERN_INFO "%s\n", DRIVERNAME);
if (!cards)
@@ -837,9 +833,7 @@ act2000_init(void)
return 0;
}
-#ifdef MODULE
-void
-cleanup_module(void)
+static void __exit act2000_exit(void)
{
act2000_card *card = cards;
act2000_card *last;
@@ -858,34 +852,5 @@ cleanup_module(void)
printk(KERN_INFO "%s unloaded\n", DRIVERNAME);
}
-#else
-void
-act2000_setup(char *str, int *ints)
-{
- int i, j, argc, port, irq, bus;
-
- argc = ints[0];
- i = 1;
- if (argc)
- while (argc) {
- port = irq = -1;
- bus = 0;
- if (argc) {
- bus = ints[i];
- i++;
- argc--;
- }
- if (argc) {
- port = ints[i];
- i++;
- argc--;
- }
- if (argc) {
- irq = ints[i];
- i++;
- argc--;
- }
- act2000_addcard(bus, port, irq, act_id);
- }
-}
-#endif
+module_init(act2000_init);
+module_exit(act2000_exit);
diff --git a/drivers/isdn/avmb1/avm_cs.c b/drivers/isdn/avmb1/avm_cs.c
index 7ad7360d9..b3b74b2b0 100644
--- a/drivers/isdn/avmb1/avm_cs.c
+++ b/drivers/isdn/avmb1/avm_cs.c
@@ -138,6 +138,8 @@ static dev_link_t *avmcs_attach(void)
/* Initialize the dev_link_t structure */
link = kmalloc(sizeof(struct dev_link_t), GFP_KERNEL);
+ if (!link)
+ return NULL;
memset(link, 0, sizeof(struct dev_link_t));
link->release.function = &avmcs_release;
link->release.data = (u_long)link;
@@ -169,6 +171,8 @@ static dev_link_t *avmcs_attach(void)
/* Allocate space for private device-specific data */
local = kmalloc(sizeof(local_info_t), GFP_KERNEL);
+ if (!local)
+ return NULL;
memset(local, 0, sizeof(local_info_t));
link->priv = local;
diff --git a/drivers/isdn/avmb1/b1.c b/drivers/isdn/avmb1/b1.c
index 3feb65ce9..ecd017c6f 100644
--- a/drivers/isdn/avmb1/b1.c
+++ b/drivers/isdn/avmb1/b1.c
@@ -1,11 +1,20 @@
/*
- * $Id: b1.c,v 1.20 2000/11/23 20:45:14 kai Exp $
+ * $Id: b1.c,v 1.20.6.3 2001/03/21 08:52:20 kai Exp $
*
* Common module for AVM B1 cards.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: b1.c,v $
+ * Revision 1.20.6.3 2001/03/21 08:52:20 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.20.6.2 2001/03/15 15:11:23 kai
+ * *** empty log message ***
+ *
+ * Revision 1.20.6.1 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.20 2000/11/23 20:45:14 kai
* fixed module_init/exit stuff
* Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
@@ -117,7 +126,7 @@
#include "capicmd.h"
#include "capiutil.h"
-static char *revision = "$Revision: 1.20 $";
+static char *revision = "$Revision: 1.20.6.3 $";
/* ------------------------------------------------------------- */
@@ -747,12 +756,13 @@ EXPORT_SYMBOL(b1ctl_read_proc);
static int __init b1_init(void)
{
char *p;
- char rev[10];
+ char rev[32];
- if ((p = strchr(revision, ':'))) {
- strncpy(rev, p + 1, sizeof(rev));
- p = strchr(rev, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(rev, p + 2, sizeof(rev));
+ rev[sizeof(rev)-1] = 0;
+ if ((p = strchr(rev, '$')) != 0 && p > rev)
+ *(p-1) = 0;
} else
strcpy(rev, "1.0");
diff --git a/drivers/isdn/avmb1/b1dma.c b/drivers/isdn/avmb1/b1dma.c
index 78cec8c9a..0250ae8af 100644
--- a/drivers/isdn/avmb1/b1dma.c
+++ b/drivers/isdn/avmb1/b1dma.c
@@ -1,11 +1,20 @@
/*
- * $Id: b1dma.c,v 1.11 2000/11/19 17:02:47 kai Exp $
+ * $Id: b1dma.c,v 1.11.6.3 2001/03/21 08:52:21 kai Exp $
*
* Common module for AVM B1 cards that support dma with AMCC
*
* (c) Copyright 2000 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: b1dma.c,v $
+ * Revision 1.11.6.3 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.11.6.2 2001/03/15 15:11:23 kai
+ * *** empty log message ***
+ *
+ * Revision 1.11.6.1 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.11 2000/11/19 17:02:47 kai
* compatibility cleanup - part 3
*
@@ -62,7 +71,7 @@
#include "capicmd.h"
#include "capiutil.h"
-static char *revision = "$Revision: 1.11 $";
+static char *revision = "$Revision: 1.11.6.3 $";
/* ------------------------------------------------------------- */
@@ -988,12 +997,13 @@ EXPORT_SYMBOL(b1dmactl_read_proc);
int b1dma_init(void)
{
char *p;
- char rev[10];
+ char rev[32];
- if ((p = strchr(revision, ':'))) {
- strncpy(rev, p + 1, sizeof(rev));
- p = strchr(rev, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(rev, p + 2, sizeof(rev));
+ rev[sizeof(rev)-1] = 0;
+ if ((p = strchr(rev, '$')) != 0 && p > rev)
+ *(p-1) = 0;
} else
strcpy(rev, "1.0");
diff --git a/drivers/isdn/avmb1/b1isa.c b/drivers/isdn/avmb1/b1isa.c
index 76e1faed3..bd88b2d25 100644
--- a/drivers/isdn/avmb1/b1isa.c
+++ b/drivers/isdn/avmb1/b1isa.c
@@ -1,11 +1,23 @@
/*
- * $Id: b1isa.c,v 1.10 2000/11/23 20:45:14 kai Exp $
+ * $Id: b1isa.c,v 1.10.6.4 2001/03/21 08:52:21 kai Exp $
*
* Module for AVM B1 ISA-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: b1isa.c,v $
+ * Revision 1.10.6.4 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.10.6.3 2001/03/15 15:11:23 kai
+ * *** empty log message ***
+ *
+ * Revision 1.10.6.2 2001/02/16 16:43:23 kai
+ * Changes from -ac16, little bug fixes, typos and the like
+ *
+ * Revision 1.10.6.1 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.10 2000/11/23 20:45:14 kai
* fixed module_init/exit stuff
* Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
@@ -24,7 +36,7 @@
* - fixed problem with memory mapping if address is not aligned
*
* Revision 1.6 2000/01/25 14:37:39 calle
- * new message after successfull detection including card revision and
+ * new message after successful detection including card revision and
* used resources.
*
* Revision 1.5 1999/11/05 16:38:01 calle
@@ -83,7 +95,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.10 $";
+static char *revision = "$Revision: 1.10.6.4 $";
/* ------------------------------------------------------------- */
@@ -278,11 +290,12 @@ static int __init b1isa_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strncpy(driver->revision, p + 1, sizeof(driver->revision));
- p = strchr(driver->revision, '$');
- *p = 0;
- }
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driver->revision, p + 2, sizeof(driver->revision));
+ driver->revision[sizeof(driver->revision)-1] = 0;
+ if ((p = strchr(driver->revision, '$')) != 0 && p > driver->revision)
+ *(p-1) = 0;
+ }
printk(KERN_INFO "%s: revision %s\n", driver->name, driver->revision);
diff --git a/drivers/isdn/avmb1/b1pci.c b/drivers/isdn/avmb1/b1pci.c
index 6d7ac7af4..cd5347ec6 100644
--- a/drivers/isdn/avmb1/b1pci.c
+++ b/drivers/isdn/avmb1/b1pci.c
@@ -1,11 +1,14 @@
/*
- * $Id: b1pci.c,v 1.29.6.1 2000/11/28 12:02:45 kai Exp $
+ * $Id: b1pci.c,v 1.29.6.2 2001/03/21 08:52:21 kai Exp $
*
* Module for AVM B1 PCI-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: b1pci.c,v $
+ * Revision 1.29.6.2 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
* Revision 1.29.6.1 2000/11/28 12:02:45 kai
* MODULE_DEVICE_TABLE for 2.4
*
@@ -119,7 +122,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.29.6.1 $";
+static char *revision = "$Revision: 1.29.6.2 $";
/* ------------------------------------------------------------- */
@@ -571,17 +574,20 @@ static int __init b1pci_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strncpy(driver->revision, p + 1, sizeof(driver->revision));
- p = strchr(driver->revision, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driver->revision, p + 2, sizeof(driver->revision));
+ driver->revision[sizeof(driver->revision)-1] = 0;
+ if ((p = strchr(driver->revision, '$')) != 0 && p > driver->revision)
+ *(p-1) = 0;
+ }
#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCIV4
- p = strchr(revision, ':');
- strncpy(driverv4->revision, p + 1, sizeof(driverv4->revision));
- p = strchr(driverv4->revision, '$');
- *p = 0;
-#endif
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driverv4->revision, p + 2, sizeof(driverv4->revision));
+ driverv4->revision[sizeof(driverv4->revision)-1] = 0;
+ if ((p = strchr(driverv4->revision, '$')) != 0 && p > driverv4->revision)
+ *(p-1) = 0;
}
+#endif
printk(KERN_INFO "%s: revision %s\n", driver->name, driver->revision);
diff --git a/drivers/isdn/avmb1/b1pcmcia.c b/drivers/isdn/avmb1/b1pcmcia.c
index bc4a27bd2..942654ff3 100644
--- a/drivers/isdn/avmb1/b1pcmcia.c
+++ b/drivers/isdn/avmb1/b1pcmcia.c
@@ -1,11 +1,20 @@
/*
- * $Id: b1pcmcia.c,v 1.12 2000/11/23 20:45:14 kai Exp $
+ * $Id: b1pcmcia.c,v 1.12.6.3 2001/03/21 08:52:21 kai Exp $
*
* Module for AVM B1/M1/M2 PCMCIA-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: b1pcmcia.c,v $
+ * Revision 1.12.6.3 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.12.6.2 2001/02/16 16:43:23 kai
+ * Changes from -ac16, little bug fixes, typos and the like
+ *
+ * Revision 1.12.6.1 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.12 2000/11/23 20:45:14 kai
* fixed module_init/exit stuff
* Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
@@ -33,7 +42,7 @@
* - fixed problem with memory mapping if address is not aligned
*
* Revision 1.6 2000/01/25 14:37:39 calle
- * new message after successfull detection including card revision and
+ * new message after successful detection including card revision and
* used resources.
*
* Revision 1.5 1999/11/05 16:38:01 calle
@@ -93,7 +102,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.12 $";
+static char *revision = "$Revision: 1.12.6.3 $";
/* ------------------------------------------------------------- */
@@ -318,10 +327,11 @@ static int __init b1pcmcia_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strncpy(driver->revision, p + 1, sizeof(driver->revision));
- p = strchr(driver->revision, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driver->revision, p + 2, sizeof(driver->revision));
+ driver->revision[sizeof(driver->revision)-1] = 0;
+ if ((p = strchr(driver->revision, '$')) != 0 && p > driver->revision)
+ *(p-1) = 0;
}
printk(KERN_INFO "%s: revision %s\n", driver->name, driver->revision);
diff --git a/drivers/isdn/avmb1/c4.c b/drivers/isdn/avmb1/c4.c
index 4c0b5f0eb..f64e0d6f4 100644
--- a/drivers/isdn/avmb1/c4.c
+++ b/drivers/isdn/avmb1/c4.c
@@ -1,11 +1,23 @@
/*
- * $Id: c4.c,v 1.20.6.1 2000/11/28 12:02:45 kai Exp $
+ * $Id: c4.c,v 1.20.6.5 2001/03/21 08:52:21 kai Exp $
*
* Module for AVM C4 card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: c4.c,v $
+ * Revision 1.20.6.5 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.20.6.4 2001/03/15 15:11:23 kai
+ * *** empty log message ***
+ *
+ * Revision 1.20.6.3 2001/02/16 16:43:23 kai
+ * Changes from -ac16, little bug fixes, typos and the like
+ *
+ * Revision 1.20.6.2 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.20.6.1 2000/11/28 12:02:45 kai
* MODULE_DEVICE_TABLE for 2.4
*
@@ -75,7 +87,7 @@
* - fixed problem with memory mapping if address is not aligned
*
* Revision 1.3 2000/01/25 14:37:39 calle
- * new message after successfull detection including card revision and
+ * new message after successful detection including card revision and
* used resources.
*
* Revision 1.2 2000/01/21 20:52:58 keil
@@ -106,7 +118,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.20.6.1 $";
+static char *revision = "$Revision: 1.20.6.5 $";
#undef CONFIG_C4_DEBUG
#undef CONFIG_C4_POLLDEBUG
@@ -1331,7 +1343,6 @@ static struct capi_driver c4_driver = {
add_card: 0, /* no add_card function */
};
-
static int ncards = 0;
static int __init c4_init(void)
@@ -1343,10 +1354,11 @@ static int __init c4_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strncpy(driver->revision, p + 1, sizeof(driver->revision));
- p = strchr(driver->revision, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driver->revision, p + 2, sizeof(driver->revision));
+ driver->revision[sizeof(driver->revision)-1] = 0;
+ if ((p = strchr(driver->revision, '$')) != 0 && p > driver->revision)
+ *(p-1) = 0;
}
printk(KERN_INFO "%s: revision %s\n", driver->name, driver->revision);
diff --git a/drivers/isdn/avmb1/capi.c b/drivers/isdn/avmb1/capi.c
index 88f87ba2f..61c66b278 100644
--- a/drivers/isdn/avmb1/capi.c
+++ b/drivers/isdn/avmb1/capi.c
@@ -1,11 +1,26 @@
/*
- * $Id: capi.c,v 1.44.6.3 2000/12/17 22:45:08 kai Exp $
+ * $Id: capi.c,v 1.44.6.8 2001/03/21 08:52:21 kai Exp $
*
* CAPI 2.0 Interface for Linux
*
* Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: capi.c,v $
+ * Revision 1.44.6.8 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.44.6.7 2001/03/15 15:11:24 kai
+ * *** empty log message ***
+ *
+ * Revision 1.44.6.6 2001/03/13 16:17:07 kai
+ * spelling fixes from 2.4.3-pre
+ *
+ * Revision 1.44.6.5 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
+ * Revision 1.44.6.4 2001/02/10 14:41:20 kai
+ * Changes from kernel tree
+ *
* Revision 1.44.6.3 2000/12/17 22:45:08 kai
* That's hopefully it for test13-4
*
@@ -253,7 +268,7 @@
#include "capifs.h"
#endif
-static char *revision = "$Revision: 1.44.6.3 $";
+static char *revision = "$Revision: 1.44.6.8 $";
MODULE_AUTHOR("Carsten Paeth (calle@calle.in-berlin.de)");
@@ -1317,7 +1332,6 @@ capinc_raw_open(struct inode *inode, struct file *file)
#ifdef _DEBUG_REFCOUNT
printk(KERN_DEBUG "capi_raw_open %d\n", GET_USE_COUNT(THIS_MODULE));
#endif
-
mp->datahandle = 0;
mp->file = file;
file->private_data = (void *)mp;
@@ -2097,7 +2111,7 @@ static struct capi_interface_user cuser = {
callback: lower_callback,
};
-static char rev[10];
+static char rev[32];
static int __init capi_init(void)
{
@@ -2105,12 +2119,13 @@ static int __init capi_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strcpy(rev, p + 2);
- p = strchr(rev, '$');
- *(p-1) = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(rev, p + 2, sizeof(rev));
+ rev[sizeof(rev)-1] = 0;
+ if ((p = strchr(rev, '$')) != 0 && p > rev)
+ *(p-1) = 0;
} else
- strcpy(rev, "???");
+ strcpy(rev, "1.0");
if (devfs_register_chrdev(capi_major, "capi20", &capi_fops)) {
printk(KERN_ERR "capi20: unable to get major %d\n", capi_major);
@@ -2209,7 +2224,7 @@ static void __exit capi_exit(void)
}
#endif
(void) detach_capi_interface(&cuser);
- printk(KERN_NOTICE "capi: Rev%s: unloaded\n", rev);
+ printk(KERN_NOTICE "capi: Rev %s: unloaded\n", rev);
}
module_init(capi_init);
diff --git a/drivers/isdn/avmb1/capidrv.c b/drivers/isdn/avmb1/capidrv.c
index b4bb90130..0d888d3a5 100644
--- a/drivers/isdn/avmb1/capidrv.c
+++ b/drivers/isdn/avmb1/capidrv.c
@@ -1,11 +1,23 @@
/*
- * $Id: capidrv.c,v 1.39 2000/11/23 20:45:14 kai Exp $
+ * $Id: capidrv.c,v 1.39.6.4 2001/03/21 08:52:21 kai Exp $
*
* ISDN4Linux Driver, using capi20 interface (kernelcapi)
*
* Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: capidrv.c,v $
+ * Revision 1.39.6.4 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.39.6.3 2001/03/13 16:17:07 kai
+ * spelling fixes from 2.4.3-pre
+ *
+ * Revision 1.39.6.2 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
+ * Revision 1.39.6.1 2001/02/10 14:41:20 kai
+ * Changes from kernel tree
+ *
* Revision 1.39 2000/11/23 20:45:14 kai
* fixed module_init/exit stuff
* Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
@@ -219,7 +231,7 @@
#include "capicmd.h"
#include "capidrv.h"
-static char *revision = "$Revision: 1.39 $";
+static char *revision = "$Revision: 1.39.6.4 $";
static int debugmode = 0;
MODULE_AUTHOR("Carsten Paeth <calle@calle.in-berlin.de>");
@@ -488,7 +500,7 @@ static inline __u8 cip2si2(__u16 cipval)
}
-/* -------- controller managment ------------------------------------- */
+/* -------- controller management ------------------------------------- */
static inline capidrv_contr *findcontrbydriverid(int driverid)
{
@@ -2484,7 +2496,7 @@ static int __init capidrv_init(void)
{
struct capi_register_params rparam;
capi_profile profile;
- char rev[10];
+ char rev[32];
char *p;
__u32 ncontr, contr;
__u16 errcode;
@@ -2498,12 +2510,13 @@ static int __init capidrv_init(void)
return -EIO;
}
- if ((p = strchr(revision, ':'))) {
- strcpy(rev, p + 1);
- p = strchr(rev, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(rev, p + 2, sizeof(rev));
+ rev[sizeof(rev)-1] = 0;
+ if ((p = strchr(rev, '$')) != 0 && p > rev)
+ *(p-1) = 0;
} else
- strcpy(rev, " ??? ");
+ strcpy(rev, "1.0");
rparam.level3cnt = -2; /* number of bchannels twice */
rparam.datablkcnt = 16;
@@ -2534,7 +2547,7 @@ static int __init capidrv_init(void)
}
proc_init();
- printk(KERN_NOTICE "capidrv: Rev%s: loaded\n", rev);
+ printk(KERN_NOTICE "capidrv: Rev %s: loaded\n", rev);
MOD_DEC_USE_COUNT;
return 0;
diff --git a/drivers/isdn/avmb1/capifs.c b/drivers/isdn/avmb1/capifs.c
index e40ef0bb1..1aad73920 100644
--- a/drivers/isdn/avmb1/capifs.c
+++ b/drivers/isdn/avmb1/capifs.c
@@ -1,11 +1,23 @@
/*
- * $Id: capifs.c,v 1.14.6.1 2000/11/28 12:02:45 kai Exp $
+ * $Id: capifs.c,v 1.14.6.5 2001/03/21 08:52:21 kai Exp $
*
* (c) Copyright 2000 by Carsten Paeth (calle@calle.de)
*
* Heavily based on devpts filesystem from H. Peter Anvin
*
* $Log: capifs.c,v $
+ * Revision 1.14.6.5 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.14.6.4 2001/03/15 15:11:24 kai
+ * *** empty log message ***
+ *
+ * Revision 1.14.6.3 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
+ * Revision 1.14.6.2 2001/02/10 14:41:20 kai
+ * Changes from kernel tree
+ *
* Revision 1.14.6.1 2000/11/28 12:02:45 kai
* MODULE_DEVICE_TABLE for 2.4
*
@@ -93,7 +105,7 @@
MODULE_AUTHOR("Carsten Paeth <calle@calle.de>");
-static char *revision = "$Revision: 1.14.6.1 $";
+static char *revision = "$Revision: 1.14.6.5 $";
struct capifs_ncci {
struct inode *inode;
@@ -581,16 +593,17 @@ void capifs_free_ncci(char type, unsigned int num)
static int __init capifs_init(void)
{
- char rev[10];
+ char rev[32];
char *p;
int err;
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strcpy(rev, p + 1);
- p = strchr(rev, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(rev, p + 2, sizeof(rev));
+ rev[sizeof(rev)-1] = 0;
+ if ((p = strchr(rev, '$')) != 0 && p > rev)
+ *(p-1) = 0;
} else
strcpy(rev, "1.0");
@@ -600,9 +613,9 @@ static int __init capifs_init(void)
return err;
}
#ifdef MODULE
- printk(KERN_NOTICE "capifs: Rev%s: loaded\n", rev);
+ printk(KERN_NOTICE "capifs: Rev %s: loaded\n", rev);
#else
- printk(KERN_NOTICE "capifs: Rev%s: started\n", rev);
+ printk(KERN_NOTICE "capifs: Rev %s: started\n", rev);
#endif
MOD_DEC_USE_COUNT;
return 0;
diff --git a/drivers/isdn/avmb1/capiutil.c b/drivers/isdn/avmb1/capiutil.c
index 321212ecc..18b235068 100644
--- a/drivers/isdn/avmb1/capiutil.c
+++ b/drivers/isdn/avmb1/capiutil.c
@@ -1,5 +1,5 @@
/*
- * $Id: capiutil.c,v 1.13 2000/11/23 20:45:14 kai Exp $
+ * $Id: capiutil.c,v 1.13.6.2 2001/03/15 15:11:24 kai Exp $
*
* CAPI 2.0 convert capi message to capi message struct
*
@@ -7,6 +7,12 @@
* Rewritten for Linux 1996 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: capiutil.c,v $
+ * Revision 1.13.6.2 2001/03/15 15:11:24 kai
+ * *** empty log message ***
+ *
+ * Revision 1.13.6.1 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.13 2000/11/23 20:45:14 kai
* fixed module_init/exit stuff
* Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
@@ -93,7 +99,6 @@
#include <linux/init.h>
#include <asm/segment.h>
#include <linux/config.h>
-
#include "capiutil.h"
/* from CAPI2.0 DDK AVM Berlin GmbH */
diff --git a/drivers/isdn/avmb1/kcapi.c b/drivers/isdn/avmb1/kcapi.c
index 6f7bd4fd0..24d94480e 100644
--- a/drivers/isdn/avmb1/kcapi.c
+++ b/drivers/isdn/avmb1/kcapi.c
@@ -1,11 +1,23 @@
/*
- * $Id: kcapi.c,v 1.21.6.1 2000/12/10 23:39:19 kai Exp $
+ * $Id: kcapi.c,v 1.21.6.5 2001/03/21 08:52:21 kai Exp $
*
* Kernel CAPI 2.0 Module
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: kcapi.c,v $
+ * Revision 1.21.6.5 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.21.6.4 2001/03/15 15:11:24 kai
+ * *** empty log message ***
+ *
+ * Revision 1.21.6.3 2001/03/13 16:17:08 kai
+ * spelling fixes from 2.4.3-pre
+ *
+ * Revision 1.21.6.2 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.21.6.1 2000/12/10 23:39:19 kai
* in 2.4 we don't have tq_scheduler anymore.
* also add one supported card to hfc_pci.c
@@ -136,7 +148,7 @@
#include <linux/b1lli.h>
#endif
-static char *revision = "$Revision: 1.21.6.1 $";
+static char *revision = "$Revision: 1.21.6.5 $";
/* ------------------------------------------------------------- */
@@ -814,7 +826,7 @@ static void controllercb_appl_released(struct capi_ctr * card, __u16 appl)
}
}
/*
- * ncci managment
+ * ncci management
*/
static void controllercb_new_ncci(struct capi_ctr * card,
@@ -1752,7 +1764,7 @@ EXPORT_SYMBOL(detach_capi_driver);
static int __init kcapi_init(void)
{
char *p;
- char rev[10];
+ char rev[32];
MOD_INC_USE_COUNT;
@@ -1766,17 +1778,18 @@ static int __init kcapi_init(void)
proc_capi_init();
- if ((p = strchr(revision, ':'))) {
- strcpy(rev, p + 1);
- p = strchr(rev, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(rev, p + 2, sizeof(rev));
+ rev[sizeof(rev)-1] = 0;
+ if ((p = strchr(rev, '$')) != 0 && p > rev)
+ *(p-1) = 0;
} else
strcpy(rev, "1.0");
#ifdef MODULE
- printk(KERN_NOTICE "CAPI-driver Rev%s: loaded\n", rev);
+ printk(KERN_NOTICE "CAPI-driver Rev %s: loaded\n", rev);
#else
- printk(KERN_NOTICE "CAPI-driver Rev%s: started\n", rev);
+ printk(KERN_NOTICE "CAPI-driver Rev %s: started\n", rev);
#endif
MOD_DEC_USE_COUNT;
return 0;
diff --git a/drivers/isdn/avmb1/t1isa.c b/drivers/isdn/avmb1/t1isa.c
index 5676dc911..d41c81e8c 100644
--- a/drivers/isdn/avmb1/t1isa.c
+++ b/drivers/isdn/avmb1/t1isa.c
@@ -1,11 +1,23 @@
/*
- * $Id: t1isa.c,v 1.16 2000/11/23 20:45:14 kai Exp $
+ * $Id: t1isa.c,v 1.16.6.4 2001/03/21 08:52:21 kai Exp $
*
* Module for AVM T1 HEMA-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: t1isa.c,v $
+ * Revision 1.16.6.4 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.16.6.3 2001/03/15 15:11:24 kai
+ * *** empty log message ***
+ *
+ * Revision 1.16.6.2 2001/02/16 16:43:24 kai
+ * Changes from -ac16, little bug fixes, typos and the like
+ *
+ * Revision 1.16.6.1 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.16 2000/11/23 20:45:14 kai
* fixed module_init/exit stuff
* Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
@@ -33,7 +45,7 @@
* - fixed problem with memory mapping if address is not aligned
*
* Revision 1.9 2000/01/25 14:37:39 calle
- * new message after successfull detection including card revision and
+ * new message after successful detection including card revision and
* used resources.
*
* Revision 1.8 1999/11/05 16:38:01 calle
@@ -104,7 +116,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.16 $";
+static char *revision = "$Revision: 1.16.6.4 $";
/* ------------------------------------------------------------- */
@@ -625,10 +637,11 @@ static int __init t1isa_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strncpy(driver->revision, p + 1, sizeof(driver->revision));
- p = strchr(driver->revision, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driver->revision, p + 2, sizeof(driver->revision));
+ driver->revision[sizeof(driver->revision)-1] = 0;
+ if ((p = strchr(driver->revision, '$')) != 0 && p > driver->revision)
+ *(p-1) = 0;
}
printk(KERN_INFO "%s: revision %s\n", driver->name, driver->revision);
diff --git a/drivers/isdn/avmb1/t1pci.c b/drivers/isdn/avmb1/t1pci.c
index ac2f93994..7f7f703a2 100644
--- a/drivers/isdn/avmb1/t1pci.c
+++ b/drivers/isdn/avmb1/t1pci.c
@@ -1,11 +1,17 @@
/*
- * $Id: t1pci.c,v 1.13.6.1 2000/11/28 12:02:45 kai Exp $
+ * $Id: t1pci.c,v 1.13.6.3 2001/03/21 08:52:21 kai Exp $
*
* Module for AVM T1 PCI-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: t1pci.c,v $
+ * Revision 1.13.6.3 2001/03/21 08:52:21 kai
+ * merge from main branch: fix buffer for revision string (calle)
+ *
+ * Revision 1.13.6.2 2001/02/13 11:43:29 kai
+ * more compatility changes for 2.2.19
+ *
* Revision 1.13.6.1 2000/11/28 12:02:45 kai
* MODULE_DEVICE_TABLE for 2.4
*
@@ -88,7 +94,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.13.6.1 $";
+static char *revision = "$Revision: 1.13.6.3 $";
#undef CONFIG_T1PCI_DEBUG
#undef CONFIG_T1PCI_POLLDEBUG
@@ -302,10 +308,11 @@ static int __init t1pci_init(void)
MOD_INC_USE_COUNT;
- if ((p = strchr(revision, ':'))) {
- strncpy(driver->revision, p + 1, sizeof(driver->revision));
- p = strchr(driver->revision, '$');
- *p = 0;
+ if ((p = strchr(revision, ':')) != 0 && p[1]) {
+ strncpy(driver->revision, p + 2, sizeof(driver->revision));
+ driver->revision[sizeof(driver->revision)-1] = 0;
+ if ((p = strchr(driver->revision, '$')) != 0 && p > driver->revision)
+ *(p-1) = 0;
}
printk(KERN_INFO "%s: revision %s\n", driver->name, driver->revision);
diff --git a/drivers/isdn/divert/divert_init.c b/drivers/isdn/divert/divert_init.c
index 0e0c43964..c8a30954c 100644
--- a/drivers/isdn/divert/divert_init.c
+++ b/drivers/isdn/divert/divert_init.c
@@ -1,5 +1,5 @@
/*
- * $Id: divert_init.c,v 1.5 2000/11/13 22:51:47 kai Exp $
+ * $Id: divert_init.c,v 1.5.6.2 2001/01/24 22:18:17 kai Exp $
*
* Module init for DSS1 diversion services for i4l.
*
@@ -23,6 +23,7 @@
#include <linux/module.h>
#include <linux/version.h>
+#include <linux/init.h>
#include "isdn_divert.h"
/********************/
@@ -46,7 +47,7 @@ isdn_divert_if divert_if =
/* Module interface code */
/* no cmd line parms */
/*************************/
-int init_module(void)
+static int __init divert_init(void)
{ int i;
if (divert_dev_init())
@@ -63,12 +64,12 @@ int init_module(void)
#endif
printk(KERN_INFO "dss1_divert module successfully installed\n");
return(0);
-} /* init_module */
+}
/**********************/
/* Module deinit code */
/**********************/
-void cleanup_module(void)
+static void __exit divert_exit(void)
{ int flags;
int i;
@@ -89,6 +90,8 @@ void cleanup_module(void)
deleterule(-1); /* delete all rules and free mem */
deleteprocs();
printk(KERN_INFO "dss1_divert module successfully removed \n");
-} /* cleanup_module */
+}
+module_init(divert_init);
+module_exit(divert_exit);
diff --git a/drivers/isdn/divert/isdn_divert.c b/drivers/isdn/divert/isdn_divert.c
index 197065263..47a279775 100644
--- a/drivers/isdn/divert/isdn_divert.c
+++ b/drivers/isdn/divert/isdn_divert.c
@@ -1,5 +1,5 @@
/*
- * $Id: isdn_divert.c,v 1.6.6.1 2001/02/07 11:31:31 kai Exp $
+ * $Id: isdn_divert.c,v 1.6.6.2 2001/02/16 16:43:25 kai Exp $
*
* DSS1 main diversion supplementary handling for i4l.
*
@@ -290,7 +290,7 @@ int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
/* insert a new rule before idx */
/********************************/
int insertrule(int idx, divert_rule *newrule)
-{ struct deflect_struc *ds,*ds1;
+{ struct deflect_struc *ds,*ds1=NULL;
int flags;
if (!(ds = (struct deflect_struc *) kmalloc(sizeof(struct deflect_struc),
diff --git a/drivers/isdn/eicon/Divas_mod.c b/drivers/isdn/eicon/Divas_mod.c
index d3b572c2d..799f721bf 100644
--- a/drivers/isdn/eicon/Divas_mod.c
+++ b/drivers/isdn/eicon/Divas_mod.c
@@ -1,13 +1,6 @@
/*
*
- * Copyright (C) Eicon Technology Corporation, 2000.
- *
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
- * Eicon File Revision : 1.15
- *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
@@ -26,6 +19,7 @@
#include <linux/config.h>
+#include <linux/init.h>
#include <linux/fs.h>
#undef N_DATA
@@ -40,27 +34,23 @@
#include "adapter.h"
#include "uxio.h"
+
#ifdef MODULE
#include "idi.h"
void DIVA_DIDD_Write(DESCRIPTOR *, int);
EXPORT_SYMBOL_NOVERS(DIVA_DIDD_Read);
EXPORT_SYMBOL_NOVERS(DIVA_DIDD_Write);
EXPORT_SYMBOL_NOVERS(DivasPrintf);
-#define Divas_init init_module
-#else
-#define Divas_init eicon_init
#endif
-extern char *file_check(void);
-
int DivasCardsDiscover(void);
-int
-Divas_init(void)
+static int __init
+divas_init(void)
{
printk(KERN_DEBUG "DIVA Server Driver - initialising\n");
- printk(KERN_DEBUG "DIVA Server Driver - Version 2.0.15 (%s)\n",file_check());
+ printk(KERN_DEBUG "DIVA Server Driver - Version 2.0.16\n");
#if !defined(CONFIG_PCI)
@@ -85,9 +75,8 @@ Divas_init(void)
return 0;
}
-#ifdef MODULE
-void
-cleanup_module(void)
+static void __exit
+divas_exit(void)
{
card_t *pCard;
word wCardIndex;
@@ -156,15 +145,6 @@ cleanup_module(void)
unregister_chrdev(Divas_major, "Divas");
}
-void mod_inc_use_count(void)
-{
- MOD_INC_USE_COUNT;
-}
-
-void mod_dec_use_count(void)
-{
- MOD_DEC_USE_COUNT;
-}
-
-#endif
+module_init(divas_init);
+module_exit(divas_exit);
diff --git a/drivers/isdn/eicon/Makefile b/drivers/isdn/eicon/Makefile
index 35f59701d..eb303c5f7 100644
--- a/drivers/isdn/eicon/Makefile
+++ b/drivers/isdn/eicon/Makefile
@@ -12,10 +12,9 @@ export-objs := Divas_mod.o eicon_mod.o
list-multi := eicon.o divas.o
eicon-objs := eicon_mod.o eicon_isa.o eicon_pci.o eicon_idi.o \
- eicon_io.o fcheck.o
+ eicon_io.o
divas-objs := common.o idi.o bri.o pri.o log.o xlog.o kprintf.o fpga.o \
- fourbri.o lincfg.o linchr.o linsys.o linio.o fcheck.o \
- Divas_mod.o
+ fourbri.o lincfg.o linchr.o linsys.o linio.o Divas_mod.o
# Optional parts of multipart objects.
diff --git a/drivers/isdn/eicon/adapter.h b/drivers/isdn/eicon/adapter.h
index cabba68be..e8a37498c 100644
--- a/drivers/isdn/eicon/adapter.h
+++ b/drivers/isdn/eicon/adapter.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.7
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/bri.c b/drivers/isdn/eicon/bri.c
index 5a8afc11d..3d2ed85c3 100644
--- a/drivers/isdn/eicon/bri.c
+++ b/drivers/isdn/eicon/bri.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.8
*
* This program is free software; you can redistribute it and/or modify
@@ -63,6 +60,7 @@ void io_out_buffer(ADAPTER *a, void *adr, void *P, word length);
void io_inc(ADAPTER *a, void *adr);
static int diva_server_bri_test_int(card_t *card);
+static int bri_ISR (card_t* card);
#define PLX_IOBASE 0
#define DIVAS_IOBASE 1
@@ -80,7 +78,6 @@ void UxCardPortIoOut(ux_diva_card_t *card, byte *base, int offset, byte);
void UxCardPortIoOutW(ux_diva_card_t *card, byte *base, int offset, word);
int DivasBRIInitPCI(card_t *card, dia_card_t *cfg);
-int bri_ISR (card_t* card);
static
int diva_server_bri_reset(card_t *card)
@@ -361,7 +358,7 @@ int diva_server_bri_config(card_t *card, dia_config_t *config)
UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, config->nt2);
UxCardPortIoOutW(card->hw, DivasIOBase, REG_ADDRLO, 10);
- UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, 0);
+ UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, config->sig_flags);
UxCardPortIoOutW(card->hw, DivasIOBase, REG_ADDRLO, 11);
UxCardPortIoOut(card->hw, DivasIOBase, REG_DATA, config->watchdog);
diff --git a/drivers/isdn/eicon/common.c b/drivers/isdn/eicon/common.c
index 1f9ae145e..a5a35f3c8 100644
--- a/drivers/isdn/eicon/common.c
+++ b/drivers/isdn/eicon/common.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.15
*
* This program is free software; you can redistribute it and/or modify
@@ -101,7 +98,6 @@ void DIVA_DIDD_Read( DESCRIPTOR *table, int tablelength )
return;
}
-static
void DIVA_DIDD_Write(DESCRIPTOR *table, int tablelength)
{
if (tablelength > sizeof(DIDD_Table))
diff --git a/drivers/isdn/eicon/constant.h b/drivers/isdn/eicon/constant.h
index ea92f05ad..f039fd52a 100644
--- a/drivers/isdn/eicon/constant.h
+++ b/drivers/isdn/eicon/constant.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/divalog.h b/drivers/isdn/eicon/divalog.h
index 93bd56ae9..48c0596b9 100644
--- a/drivers/isdn/eicon/divalog.h
+++ b/drivers/isdn/eicon/divalog.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/divas.h b/drivers/isdn/eicon/divas.h
index 2fcd8349b..3ea401edc 100644
--- a/drivers/isdn/eicon/divas.h
+++ b/drivers/isdn/eicon/divas.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.5
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/dsp_defs.h b/drivers/isdn/eicon/dsp_defs.h
index ee7c1429e..35ab16e67 100644
--- a/drivers/isdn/eicon/dsp_defs.h
+++ b/drivers/isdn/eicon/dsp_defs.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/dspdids.h b/drivers/isdn/eicon/dspdids.h
index 1ac6a9bc6..618fda717 100644
--- a/drivers/isdn/eicon/dspdids.h
+++ b/drivers/isdn/eicon/dspdids.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/eicon.h b/drivers/isdn/eicon/eicon.h
index eefd379a5..33ca39a56 100644
--- a/drivers/isdn/eicon/eicon.h
+++ b/drivers/isdn/eicon/eicon.h
@@ -1,4 +1,4 @@
-/* $Id: eicon.h,v 1.23 2000/06/21 11:28:42 armin Exp $
+/* $Id: eicon.h,v 1.23.6.2 2001/02/13 11:43:30 kai Exp $
*
* ISDN low-level module for Eicon active ISDN-Cards.
*
@@ -151,7 +151,6 @@ typedef struct {
#include <linux/isdn.h>
#include <linux/isdnif.h>
-
typedef struct {
__u16 length __attribute__ ((packed)); /* length of data/parameter field */
__u8 P[1]; /* data/parameter field */
diff --git a/drivers/isdn/eicon/eicon_idi.c b/drivers/isdn/eicon/eicon_idi.c
index 5b63311da..9972d535b 100644
--- a/drivers/isdn/eicon/eicon_idi.c
+++ b/drivers/isdn/eicon/eicon_idi.c
@@ -1,4 +1,4 @@
-/* $Id: eicon_idi.c,v 1.41 2000/08/12 18:00:47 armin Exp $
+/* $Id: eicon_idi.c,v 1.41.6.1 2001/02/10 14:44:09 kai Exp $
*
* ISDN lowlevel-module for Eicon active cards.
* IDI interface
@@ -36,7 +36,7 @@
#undef EICON_FULL_SERVICE_OKTETT
-char *eicon_idi_revision = "$Revision: 1.41 $";
+char *eicon_idi_revision = "$Revision: 1.41.6.1 $";
eicon_manifbuf *manbuf;
@@ -2506,7 +2506,7 @@ idi_handle_ind(eicon_card *ccard, struct sk_buff *skb)
case ISDN_PROTO_L2_TRANS:
idi_do_req(ccard, chan, N_CONNECT, 1);
break;
- default:
+ default:;
/* On most incoming calls we use automatic connect */
/* idi_do_req(ccard, chan, N_CONNECT, 1); */
}
diff --git a/drivers/isdn/eicon/eicon_io.c b/drivers/isdn/eicon/eicon_io.c
index 6f294e8b7..f21a045c2 100644
--- a/drivers/isdn/eicon/eicon_io.c
+++ b/drivers/isdn/eicon/eicon_io.c
@@ -1,4 +1,4 @@
-/* $Id: eicon_io.c,v 1.13 2000/05/07 08:51:04 armin Exp $
+/* $Id: eicon_io.c,v 1.13.6.1 2001/02/16 09:09:50 armin Exp $
*
* ISDN low-level module for Eicon active ISDN-Cards.
* Code for communicating with hardware.
@@ -6,7 +6,7 @@
* Copyright 1999,2000 by Armin Schindler (mac@melware.de)
* Copyright 1999,2000 Cytronics & Melware (info@melware.de)
*
- * Thanks to Eicon Technology GmbH & Co. oHG for
+ * Thanks to Eicon Networks for
* documents, informations and hardware.
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/eicon_mod.c b/drivers/isdn/eicon/eicon_mod.c
index bd3d33e0a..9bbdf68a3 100644
--- a/drivers/isdn/eicon/eicon_mod.c
+++ b/drivers/isdn/eicon/eicon_mod.c
@@ -1,4 +1,4 @@
-/* $Id: eicon_mod.c,v 1.37 2000/09/02 11:16:47 armin Exp $
+/* $Id: eicon_mod.c,v 1.37.6.4 2001/02/16 09:09:50 armin Exp $
*
* ISDN lowlevel-module for Eicon active cards.
*
@@ -6,7 +6,7 @@
* Copyright 1998-2000 by Armin Schindler (mac@melware.de)
* Copyright 1999,2000 Cytronics & Melware (info@melware.de)
*
- * Thanks to Eicon Technology GmbH & Co. oHG for
+ * Thanks to Eicon Networks for
* documents, informations and hardware.
*
* Deutsche Mailbox Saar-Lor-Lux GmbH
@@ -32,7 +32,7 @@
#define DRIVERNAME "Eicon active ISDN driver"
#define DRIVERRELEASE "2.0"
-#define DRIVERPATCH ".15"
+#define DRIVERPATCH ".16"
#include <linux/config.h>
@@ -55,7 +55,7 @@
static eicon_card *cards = (eicon_card *) NULL; /* glob. var , contains
start of card-list */
-static char *eicon_revision = "$Revision: 1.37 $";
+static char *eicon_revision = "$Revision: 1.37.6.4 $";
extern char *eicon_pci_revision;
extern char *eicon_isa_revision;
@@ -64,9 +64,6 @@ extern char *eicon_idi_revision;
extern int do_ioctl(struct inode *pDivasInode, struct file *pDivasFile,
unsigned int command, unsigned long arg);
extern void eicon_pci_init_conf(eicon_card *card);
-void mod_inc_use_count(void);
-void mod_dec_use_count(void);
-extern char *file_check(void);
#ifdef MODULE
#define MOD_USE_COUNT (GET_USE_COUNT (&__this_module))
@@ -377,7 +374,7 @@ eicon_command(eicon_card * card, isdn_ctrl * c)
#ifdef MODULE
case EICON_IOCTL_FREEIT:
while (MOD_USE_COUNT > 0) MOD_DEC_USE_COUNT;
- mod_inc_use_count();
+ MOD_INC_USE_COUNT;
return 0;
#endif
case EICON_IOCTL_LOADPCI:
@@ -573,14 +570,10 @@ eicon_command(eicon_card * card, isdn_ctrl * c)
eicon_log(card, 1, "eicon CMD_GETSIL not implemented\n");
return 0;
case ISDN_CMD_LOCK:
-#ifdef MODULE
- mod_inc_use_count();
-#endif
+ MOD_INC_USE_COUNT;
return 0;
case ISDN_CMD_UNLOCK:
-#ifdef MODULE
- mod_dec_use_count();
-#endif
+ MOD_DEC_USE_COUNT;
return 0;
#ifdef CONFIG_ISDN_TTY_FAX
case ISDN_CMD_FAXCMD:
@@ -1177,8 +1170,7 @@ eicon_registercard(eicon_card * card)
return 0;
}
-#ifdef MODULE
-static void
+static void __exit
unregister_card(eicon_card * card)
{
isdn_ctrl cmd;
@@ -1204,7 +1196,6 @@ unregister_card(eicon_card * card)
break;
}
}
-#endif /* MODULE */
static void
eicon_freecard(eicon_card *card) {
@@ -1311,11 +1302,7 @@ eicon_addcard(int Type, int membase, int irq, char *id, int card_id)
}
-#ifdef MODULE
-#define eicon_init init_module
-#endif
-
-int
+static int __init
eicon_init(void)
{
int card_count = 0;
@@ -1341,8 +1328,8 @@ eicon_init(void)
#endif
strcpy(tmprev, eicon_idi_revision);
printk("%s\n", eicon_getrev(tmprev));
- printk(KERN_INFO "%s Release: %s%s (%s)\n", DRIVERNAME,
- DRIVERRELEASE, DRIVERPATCH, file_check());
+ printk(KERN_INFO "%s Release: %s%s\n", DRIVERNAME,
+ DRIVERRELEASE, DRIVERPATCH);
#ifdef CONFIG_ISDN_DRV_EICON_ISA
#ifdef CONFIG_MCA
@@ -1391,19 +1378,6 @@ eicon_init(void)
return 0;
}
-
-#ifdef MODULE
-
-void mod_inc_use_count(void)
-{
- MOD_INC_USE_COUNT;
-}
-
-void mod_dec_use_count(void)
-{
- MOD_DEC_USE_COUNT;
-}
-
#ifdef CONFIG_ISDN_DRV_EICON_PCI
void DIVA_DIDD_Write(DESCRIPTOR *, int);
EXPORT_SYMBOL_NOVERS(DIVA_DIDD_Read);
@@ -1414,8 +1388,8 @@ int DivasCardNext;
card_t DivasCards[1];
#endif
-void
-cleanup_module(void)
+static void __exit
+eicon_exit(void)
{
#if CONFIG_PCI
#ifdef CONFIG_ISDN_DRV_EICON_PCI
@@ -1499,7 +1473,7 @@ cleanup_module(void)
printk(KERN_INFO "%s unloaded\n", DRIVERNAME);
}
-#else /* no module */
+#ifndef MODULE
static int __init
eicon_setup(char *line)
@@ -1712,3 +1686,5 @@ int eicon_mca_probe(int slot, /* slot-nr where the card was detected */
#endif /* CONFIG_MCA */
#endif /* CONFIG_ISDN_DRV_EICON_ISA */
+module_init(eicon_init);
+module_exit(eicon_exit);
diff --git a/drivers/isdn/eicon/eicon_pci.c b/drivers/isdn/eicon/eicon_pci.c
index 6cb3bca6d..8d5b60f98 100644
--- a/drivers/isdn/eicon/eicon_pci.c
+++ b/drivers/isdn/eicon/eicon_pci.c
@@ -1,4 +1,4 @@
-/* $Id: eicon_pci.c,v 1.15 2000/06/12 12:44:02 armin Exp $
+/* $Id: eicon_pci.c,v 1.15.6.2 2001/02/16 09:09:50 armin Exp $
*
* ISDN low-level module for Eicon active ISDN-Cards.
* Hardware-specific code for PCI cards.
@@ -6,7 +6,7 @@
* Copyright 1998-2000 by Armin Schindler (mac@melware.de)
* Copyright 1999,2000 Cytronics & Melware (info@melware.de)
*
- * Thanks to Eicon Technology GmbH & Co. oHG for
+ * Thanks to Eicon Networks for
* documents, informations and hardware.
*
* This program is free software; you can redistribute it and/or modify
@@ -35,7 +35,7 @@
#include "adapter.h"
#include "uxio.h"
-char *eicon_pci_revision = "$Revision: 1.15 $";
+char *eicon_pci_revision = "$Revision: 1.15.6.2 $";
#if CONFIG_PCI /* intire stuff is only for PCI */
#ifdef CONFIG_ISDN_DRV_EICON_PCI
@@ -86,7 +86,7 @@ int eicon_pci_find_card(char *ID)
printk(KERN_INFO "%s: DriverID='%s' CardID=%d\n",
eicon_ctype_name[ctype], did, card_id);
}
-err:
+err:;
}
pCard++;
}
diff --git a/drivers/isdn/eicon/fcheck.c b/drivers/isdn/eicon/fcheck.c
deleted file mode 100644
index c86f7d3df..000000000
--- a/drivers/isdn/eicon/fcheck.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id: fcheck.c,v 1.3 2000/06/12 12:44:02 armin Exp $
- *
- * (c) 2000 Cytronics & Melware
- *
- * This file is (c) under GNU PUBLIC LICENSE
- * For changes and modifications please read
- * ../../../Documentation/isdn/README.eicon
- *
- *
- */
-
-#include <linux/kernel.h>
-
-char *
-file_check(void) {
-
-#ifdef FILECHECK
-#if FILECHECK == 0
- return("verified");
-#endif
-#if FILECHECK == 1
- return("modified");
-#endif
-#if FILECHECK == 127
- return("verification failed");
-#endif
-#else
- return("not verified");
-#endif
-}
-
diff --git a/drivers/isdn/eicon/fourbri.c b/drivers/isdn/eicon/fourbri.c
index 5fe9817e0..0efb16fed 100644
--- a/drivers/isdn/eicon/fourbri.c
+++ b/drivers/isdn/eicon/fourbri.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.7
*
* This program is free software; you can redistribute it and/or modify
@@ -67,7 +64,7 @@ void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length);
void mem_inc(ADAPTER *a, void *adr);
int Divas4BRIInitPCI(card_t *card, dia_card_t *cfg);
-int fourbri_ISR (card_t* card);
+static int fourbri_ISR (card_t* card);
int FPGA_Download(word, dword, byte *, byte *, int);
extern byte FPGA_Bytes[];
@@ -113,7 +110,7 @@ static int diva_server_4bri_config(card_t *card, dia_config_t *config)
UxCardMemOut(card->hw, &shared[ 8], config->tei);
UxCardMemOut(card->hw, &shared[ 9], config->nt2);
- UxCardMemOut(card->hw, &shared[10], 0);
+ UxCardMemOut(card->hw, &shared[10], config->sig_flags);
UxCardMemOut(card->hw, &shared[11], config->watchdog);
UxCardMemOut(card->hw, &shared[12], config->permanent);
UxCardMemOut(card->hw, &shared[13], config->x_interface);
@@ -561,23 +558,16 @@ int memcm(byte *dst, byte *src, dword dwLen)
}*/
-int fourbri_ISR (card_t* card)
+static int fourbri_ISR (card_t* card)
{
- int served = 0;
byte *ctl;
- byte *reg = UxCardMemAttach(card->hw, DIVAS_REG_MEMORY);
- if (UxCardPortIoIn(card->hw, reg, PLX9054_INTCSR) & 0x80)
- {
- served = 1;
- card->int_pend += 1;
- DivasDpcSchedule(); /* ISR DPC */
+ card->int_pend += 1;
+ DivasDpcSchedule(); /* ISR DPC */
- ctl = UxCardMemAttach(card->hw, DIVAS_CTL_MEMORY);
- UxCardMemOut(card->hw, &ctl[MQ_BREG_IRQ_TEST], MQ_IRQ_REQ_OFF);
- UxCardMemDetach(card->hw, ctl);
- }
+ ctl = UxCardMemAttach(card->hw, DIVAS_CTL_MEMORY);
+ UxCardMemOut(card->hw, &ctl[MQ_BREG_IRQ_TEST], MQ_IRQ_REQ_OFF);
+ UxCardMemDetach(card->hw, ctl);
- UxCardMemDetach(card->hw, reg);
- return (served != 0);
+ return (1);
}
diff --git a/drivers/isdn/eicon/fpga.c b/drivers/isdn/eicon/fpga.c
index b5f21678e..dda2f1ae0 100644
--- a/drivers/isdn/eicon/fpga.c
+++ b/drivers/isdn/eicon/fpga.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.2
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/idi.c b/drivers/isdn/eicon/idi.c
index f9b8a0ee3..1bb57a779 100644
--- a/drivers/isdn/eicon/idi.c
+++ b/drivers/isdn/eicon/idi.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.8
*
* This program is free software; you can redistribute it and/or modify
@@ -248,7 +245,6 @@ void next_req(ADAPTER * a)
/*
* IDI request function for active cards
*/
-
static
void request(card_t *card, ENTITY *e)
{
@@ -256,6 +252,7 @@ void request(card_t *card, ENTITY *e)
int i;
int ipl;
+
if (card->log_types & DIVAS_LOG_IDI)
{
DivasLogIdi(card, e, TRUE);
diff --git a/drivers/isdn/eicon/idi.h b/drivers/isdn/eicon/idi.h
index 5988cb8ed..eda433110 100644
--- a/drivers/isdn/eicon/idi.h
+++ b/drivers/isdn/eicon/idi.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
@@ -65,7 +62,7 @@ struct get_serial_s {
struct postcall_s {
word command; /* command = 0x0300 */
word dummy; /* not used */
- IDI_CALL callback; /* routine adress to call back */
+ IDI_CALL callback; /* routine address to call back */
ENTITY *contxt; /* ptr to entity to use */
};
diff --git a/drivers/isdn/eicon/kprintf.c b/drivers/isdn/eicon/kprintf.c
index 3282b7fc5..f549a039c 100644
--- a/drivers/isdn/eicon/kprintf.c
+++ b/drivers/isdn/eicon/kprintf.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.3
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/lincfg.c b/drivers/isdn/eicon/lincfg.c
index 3d2a8bfb1..8092da21a 100644
--- a/drivers/isdn/eicon/lincfg.c
+++ b/drivers/isdn/eicon/lincfg.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.9
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/linchr.c b/drivers/isdn/eicon/linchr.c
index 9a3ccdac6..a35979ac2 100644
--- a/drivers/isdn/eicon/linchr.c
+++ b/drivers/isdn/eicon/linchr.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.12
*
* This program is free software; you can redistribute it and/or modify
@@ -24,6 +21,8 @@
*
*/
+#define __NO_VERSION__
+#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/poll.h>
@@ -240,14 +239,12 @@ ssize_t do_read(struct file *pFile, char *pUserBuffer, size_t BufferSize, loff_t
return 0;
}
-int private_usage_count;
-extern void mod_inc_use_count(void);
-extern void mod_dec_use_count(void);
+static int private_usage_count;
int do_open(struct inode *pInode, struct file *pFile)
{
-#if defined(MODULE)
- mod_inc_use_count();
+ MOD_INC_USE_COUNT;
+#ifdef MODULE
private_usage_count++;
#endif
return 0;
@@ -255,8 +252,8 @@ int do_open(struct inode *pInode, struct file *pFile)
int do_release(struct inode *pInode, struct file *pFile)
{
-#if defined(MODULE)
- mod_dec_use_count();
+ MOD_DEC_USE_COUNT;
+#ifdef MODULE
private_usage_count--;
#endif
return 0;
@@ -267,8 +264,6 @@ void UnlockDivas(void)
while (private_usage_count > 0)
{
private_usage_count--;
-#if defined(MODULE)
- mod_dec_use_count();
-#endif
+ MOD_DEC_USE_COUNT;
}
}
diff --git a/drivers/isdn/eicon/linio.c b/drivers/isdn/eicon/linio.c
index 0412eb6ba..3d970abce 100644
--- a/drivers/isdn/eicon/linio.c
+++ b/drivers/isdn/eicon/linio.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.16
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/linsys.c b/drivers/isdn/eicon/linsys.c
index 3f167ed7b..30de1cc6d 100644
--- a/drivers/isdn/eicon/linsys.c
+++ b/drivers/isdn/eicon/linsys.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.10
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/log.c b/drivers/isdn/eicon/log.c
index 1d847f0a8..30018d13d 100644
--- a/drivers/isdn/eicon/log.c
+++ b/drivers/isdn/eicon/log.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.5
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/md5sums.asc b/drivers/isdn/eicon/md5sums.asc
deleted file mode 100644
index e7ae38c42..000000000
--- a/drivers/isdn/eicon/md5sums.asc
+++ /dev/null
@@ -1,16 +0,0 @@
-# These are valid md5sums to detect modifications
-# in eicon driver files provided by Eicon Technology.
-# For changes and modifications in these files please
-# read ../../../Documentation/isdn/README.eicon
-#
-34bfe8d08d337a97c699ac8326f1d9b6 common.c
-dbb92cba52db31ff8325a252b3f595c3 idi.c
-15687687ef82f099966ed42772001cd3 bri.c
-c3e3b720c3351b66635bd548195e29e8 pri.c
-b0a6d2ab49bcfcfd1825860f178a84b4 log.c
-673746176316b72271a09c0a27287a01 xlog.c
-07e1bbabdb4d69880db196ef31bfb241 kprintf.c
-b60b40ad630f26b7923369df95b4d1b9 fpga.c
-5013ecca0a38a8fcc4a61642754f2076 fourbri.c
-1501ae468a0c5eaab1e60720fa723a67 fcheck.c
-# end of md5sums
diff --git a/drivers/isdn/eicon/pc.h b/drivers/isdn/eicon/pc.h
index 412a61faa..0ba821ad2 100644
--- a/drivers/isdn/eicon/pc.h
+++ b/drivers/isdn/eicon/pc.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.2
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/pc_maint.h b/drivers/isdn/eicon/pc_maint.h
index e6e902f00..f6fa6733d 100644
--- a/drivers/isdn/eicon/pc_maint.h
+++ b/drivers/isdn/eicon/pc_maint.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/pr_pc.h b/drivers/isdn/eicon/pr_pc.h
index f01ad4499..7634c7b7d 100644
--- a/drivers/isdn/eicon/pr_pc.h
+++ b/drivers/isdn/eicon/pr_pc.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.0
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/pri.c b/drivers/isdn/eicon/pri.c
index a6a63945e..ee1544974 100644
--- a/drivers/isdn/eicon/pri.c
+++ b/drivers/isdn/eicon/pri.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.5
*
* This program is free software; you can redistribute it and/or modify
@@ -82,7 +79,7 @@ void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length);
void mem_inc(ADAPTER *a, void *adr);
int DivasPRIInitPCI(card_t *card, dia_card_t *cfg);
-int pri_ISR (card_t* card);
+static int pri_ISR (card_t* card);
static int diva_server_reset(card_t *card)
{
@@ -156,7 +153,7 @@ static int diva_server_config(card_t *card, dia_config_t *config)
UxCardMemOut(card->hw, &shared[ 8], config->tei);
UxCardMemOut(card->hw, &shared[ 9], config->nt2);
- UxCardMemOut(card->hw, &shared[10], 0);
+ UxCardMemOut(card->hw, &shared[10], config->sig_flags);
UxCardMemOut(card->hw, &shared[11], config->watchdog);
UxCardMemOut(card->hw, &shared[12], config->permanent);
UxCardMemOut(card->hw, &shared[13], config->x_interface);
@@ -509,7 +506,7 @@ int DivasPriInit(card_t *card, dia_card_t *cfg)
}
-int pri_ISR (card_t* card)
+static int pri_ISR (card_t* card)
{
int served = 0;
byte* cfg = UxCardMemAttach(card->hw, DIVAS_CFG_MEMORY);
diff --git a/drivers/isdn/eicon/sys.h b/drivers/isdn/eicon/sys.h
index 0e636c547..e5141b856 100644
--- a/drivers/isdn/eicon/sys.h
+++ b/drivers/isdn/eicon/sys.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.2
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/uxio.h b/drivers/isdn/eicon/uxio.h
index c15d93f96..e3302830b 100644
--- a/drivers/isdn/eicon/uxio.h
+++ b/drivers/isdn/eicon/uxio.h
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.6
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/eicon/xlog.c b/drivers/isdn/eicon/xlog.c
index 282662cfc..b9786601d 100644
--- a/drivers/isdn/eicon/xlog.c
+++ b/drivers/isdn/eicon/xlog.c
@@ -3,9 +3,6 @@
*
* Copyright (C) Eicon Technology Corporation, 2000.
*
- * This source file is supplied for the exclusive use with Eicon
- * Technology Corporation's range of DIVA Server Adapters.
- *
* Eicon File Revision : 1.2
*
* This program is free software; you can redistribute it and/or modify
diff --git a/drivers/isdn/hisax/Makefile b/drivers/isdn/hisax/Makefile
index 72d990134..0b9889884 100644
--- a/drivers/isdn/hisax/Makefile
+++ b/drivers/isdn/hisax/Makefile
@@ -54,7 +54,8 @@ hisax-objs += $(sort $(hisax-objs-y))
# Each configuration option enables a list of files.
-obj-$(CONFIG_ISDN_DRV_HISAX) += hisax.o
+obj-$(CONFIG_ISDN_DRV_HISAX) += hisax.o
+obj-$(CONFIG_HISAX_SEDLBAUER_CS) += sedlbauer_cs.o
MD5FILES := isac.c isdnl1.c isdnl2.c isdnl3.c \
tei.c callc.c cert.c l3dss1.c l3_1tr6.c \
diff --git a/drivers/isdn/hisax/amd7930.c b/drivers/isdn/hisax/amd7930.c
index 1a8c75ace..95b2111e3 100644
--- a/drivers/isdn/hisax/amd7930.c
+++ b/drivers/isdn/hisax/amd7930.c
@@ -1,4 +1,4 @@
-/* $Id: amd7930.c,v 1.5 2000/11/24 17:05:37 kai Exp $
+/* $Id: amd7930.c,v 1.5.6.1 2001/02/16 16:43:25 kai Exp $
*
* HiSax ISDN driver - chip specific routines for AMD 7930
*
@@ -14,7 +14,7 @@
*
* The code is unreliable enough to be consider alpha
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
* Advanced Micro Devices' Am79C30A is an ISDN/audio chip used in the
* SparcStation 1+. The chip provides microphone and speaker interfaces
@@ -94,7 +94,7 @@
#include "rawhdlc.h"
#include <linux/interrupt.h>
-static const char *amd7930_revision = "$Revision: 1.5 $";
+static const char *amd7930_revision = "$Revision: 1.5.6.1 $";
#define RCV_BUFSIZE 1024 /* Size of raw receive buffer in bytes */
#define RCV_BUFBLKS 4 /* Number of blocks to divide buffer into
diff --git a/drivers/isdn/hisax/arcofi.c b/drivers/isdn/hisax/arcofi.c
index 4ff4d7a4f..11154150d 100644
--- a/drivers/isdn/hisax/arcofi.c
+++ b/drivers/isdn/hisax/arcofi.c
@@ -1,10 +1,10 @@
-/* $Id: arcofi.c,v 1.12 2000/11/25 17:01:00 kai Exp $
+/* $Id: arcofi.c,v 1.12.6.1 2001/02/16 16:43:25 kai Exp $
*
* arcofi.c Ansteuerung ARCOFI 2165
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/arcofi.h b/drivers/isdn/hisax/arcofi.h
index d80157146..badf9f010 100644
--- a/drivers/isdn/hisax/arcofi.h
+++ b/drivers/isdn/hisax/arcofi.h
@@ -1,10 +1,10 @@
-/* $Id: arcofi.h,v 1.6 2000/06/26 08:59:12 keil Exp $
+/* $Id: arcofi.h,v 1.6.6.1 2001/02/16 16:43:25 kai Exp $
*
* arcofi.h Ansteuerung ARCOFI 2165
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/asuscom.c b/drivers/isdn/hisax/asuscom.c
index 01b668d8e..c14bc9400 100644
--- a/drivers/isdn/hisax/asuscom.c
+++ b/drivers/isdn/hisax/asuscom.c
@@ -1,4 +1,4 @@
-/* $Id: asuscom.c,v 1.11 2000/11/24 17:05:37 kai Exp $
+/* $Id: asuscom.c,v 1.11.6.1 2001/02/16 16:43:25 kai Exp $
*
* asuscom.c low level stuff for ASUSCOM NETWORK INC. ISDNLink cards
*
@@ -6,7 +6,7 @@
*
* Thanks to ASUSCOM NETWORK INC. Taiwan and Dynalink NL for informations
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -20,7 +20,7 @@
extern const char *CardType[];
-const char *Asuscom_revision = "$Revision: 1.11 $";
+const char *Asuscom_revision = "$Revision: 1.11.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/avm_a1.c b/drivers/isdn/hisax/avm_a1.c
index e2765970e..66126727f 100644
--- a/drivers/isdn/hisax/avm_a1.c
+++ b/drivers/isdn/hisax/avm_a1.c
@@ -1,10 +1,10 @@
-/* $Id: avm_a1.c,v 2.13 2000/11/24 17:05:37 kai Exp $
+/* $Id: avm_a1.c,v 2.13.6.1 2001/02/16 16:43:25 kai Exp $
*
* avm_a1.c low level stuff for AVM A1 (Fritz) isdn cards
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -15,7 +15,7 @@
#include "isdnl1.h"
extern const char *CardType[];
-static const char *avm_revision = "$Revision: 2.13 $";
+static const char *avm_revision = "$Revision: 2.13.6.1 $";
#define AVM_A1_STAT_ISAC 0x01
#define AVM_A1_STAT_HSCX 0x02
diff --git a/drivers/isdn/hisax/avm_a1p.c b/drivers/isdn/hisax/avm_a1p.c
index 2f813402f..f726af636 100644
--- a/drivers/isdn/hisax/avm_a1p.c
+++ b/drivers/isdn/hisax/avm_a1p.c
@@ -1,4 +1,4 @@
-/* $Id: avm_a1p.c,v 2.7 2000/11/24 17:05:37 kai Exp $
+/* $Id: avm_a1p.c,v 2.7.6.1 2001/02/16 16:43:25 kai Exp $
*
* avm_a1p.c low level stuff for the following AVM cards:
* A1 PCMCIA
@@ -7,7 +7,7 @@
*
* Author Carsten Paeth (calle@calle.in-berlin.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*/
#define __NO_VERSION__
#include <linux/init.h>
@@ -53,7 +53,7 @@
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
-static const char *avm_revision = "$Revision: 2.7 $";
+static const char *avm_revision = "$Revision: 2.7.6.1 $";
static inline u_char
ReadISAC(struct IsdnCardState *cs, u_char offset)
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
index 79f96fe18..b895778db 100644
--- a/drivers/isdn/hisax/avm_pci.c
+++ b/drivers/isdn/hisax/avm_pci.c
@@ -1,11 +1,11 @@
-/* $Id: avm_pci.c,v 1.22.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: avm_pci.c,v 1.22.6.4 2001/02/16 16:43:25 kai Exp $
*
* avm_pci.c low level stuff for AVM Fritz!PCI and ISA PnP isdn cards
* Thanks to AVM, Berlin for informations
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -18,7 +18,7 @@
#include <linux/interrupt.h>
extern const char *CardType[];
-static const char *avm_pci_rev = "$Revision: 1.22.6.2 $";
+static const char *avm_pci_rev = "$Revision: 1.22.6.4 $";
#define AVM_FRITZ_PCI 1
#define AVM_FRITZ_PNP 2
diff --git a/drivers/isdn/hisax/bkm_a4t.c b/drivers/isdn/hisax/bkm_a4t.c
index c8a4896a9..39087f27e 100644
--- a/drivers/isdn/hisax/bkm_a4t.c
+++ b/drivers/isdn/hisax/bkm_a4t.c
@@ -1,4 +1,4 @@
-/* $Id: bkm_a4t.c,v 1.13.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: bkm_a4t.c,v 1.13.6.4 2001/02/16 16:43:25 kai Exp $
* bkm_a4t.c low level stuff for T-Berkom A4T
* derived from the original file sedlbauer.c
* derived from the original file niccy.c
@@ -6,7 +6,7 @@
*
* Author Roland Klabunde (R.Klabunde@Berkom.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -24,7 +24,7 @@
extern const char *CardType[];
-const char *bkm_a4t_revision = "$Revision: 1.13.6.2 $";
+const char *bkm_a4t_revision = "$Revision: 1.13.6.4 $";
static inline u_char
diff --git a/drivers/isdn/hisax/bkm_a8.c b/drivers/isdn/hisax/bkm_a8.c
index 45011d356..20fdd2175 100644
--- a/drivers/isdn/hisax/bkm_a8.c
+++ b/drivers/isdn/hisax/bkm_a8.c
@@ -1,4 +1,4 @@
-/* $Id: bkm_a8.c,v 1.14.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: bkm_a8.c,v 1.14.6.4 2001/02/16 16:43:25 kai Exp $
* bkm_a8.c low level stuff for Scitel Quadro (4*S0, passive)
* derived from the original file sedlbauer.c
* derived from the original file niccy.c
@@ -6,7 +6,7 @@
*
* Author Roland Klabunde (R.Klabunde@Berkom.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -27,7 +27,7 @@
extern const char *CardType[];
-const char sct_quadro_revision[] = "$Revision: 1.14.6.2 $";
+const char sct_quadro_revision[] = "$Revision: 1.14.6.4 $";
static const char *sct_quadro_subtypes[] =
{
diff --git a/drivers/isdn/hisax/bkm_ax.h b/drivers/isdn/hisax/bkm_ax.h
index 921698784..17cab1215 100644
--- a/drivers/isdn/hisax/bkm_ax.h
+++ b/drivers/isdn/hisax/bkm_ax.h
@@ -1,9 +1,9 @@
-/* $Id: bkm_ax.h,v 1.5.6.1 2000/11/28 12:02:46 kai Exp $
+/* $Id: bkm_ax.h,v 1.5.6.2 2001/02/16 16:43:25 kai Exp $
* bkm_ax.h low level decls for T-Berkom cards A4T and Scitel Quadro (4*S0, passive)
*
* Author Roland Klabunde (R.Klabunde@Berkom.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/callc.c b/drivers/isdn/hisax/callc.c
index ced19e429..c499b6f8d 100644
--- a/drivers/isdn/hisax/callc.c
+++ b/drivers/isdn/hisax/callc.c
@@ -1,9 +1,9 @@
-/* $Id: callc.c,v 2.51 2000/11/24 17:05:37 kai Exp $
+/* $Id: callc.c,v 2.51.6.2 2001/03/13 16:17:08 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -20,7 +20,7 @@
#define MOD_USE_COUNT ( GET_USE_COUNT (&__this_module))
#endif /* MODULE */
-const char *lli_revision = "$Revision: 2.51 $";
+const char *lli_revision = "$Revision: 2.51.6.2 $";
extern struct IsdnCard cards[];
extern int nrcards;
@@ -337,7 +337,7 @@ lli_go_active(struct FsmInst *fi, int event, void *arg)
* RESUME
*/
-/* incomming call */
+/* incoming call */
static void
lli_deliver_call(struct FsmInst *fi, int event, void *arg)
@@ -1026,9 +1026,11 @@ dummy_pstack(struct PStack *st, int pr, void *arg) {
printk(KERN_WARNING"call to dummy_pstack pr=%04x arg %lx\n", pr, (long)arg);
}
-static void
+static int
init_PStack(struct PStack **stp) {
*stp = kmalloc(sizeof(struct PStack), GFP_ATOMIC);
+ if (!*stp)
+ return -ENOMEM;
(*stp)->next = NULL;
(*stp)->l1.l1l2 = dummy_pstack;
(*stp)->l1.l1hw = dummy_pstack;
@@ -1041,16 +1043,20 @@ init_PStack(struct PStack **stp) {
(*stp)->l3.l3l4 = dummy_pstack;
(*stp)->lli.l4l3 = dummy_pstack;
(*stp)->ma.layer = dummy_pstack;
+ return 0;
}
-static void
+static int
init_d_st(struct Channel *chanp)
{
struct PStack *st;
struct IsdnCardState *cs = chanp->cs;
char tmp[16];
+ int err;
- init_PStack(&chanp->d_st);
+ err = init_PStack(&chanp->d_st);
+ if (err)
+ return err;
st = chanp->d_st;
st->next = NULL;
HiSax_addlist(cs, st);
@@ -1075,6 +1081,8 @@ init_d_st(struct Channel *chanp)
st->lli.userdata = chanp;
st->lli.l2writewakeup = NULL;
st->l3.l3l4 = dchan_l3l4;
+
+ return 0;
}
static void
@@ -1090,10 +1098,11 @@ callc_debug(struct FsmInst *fi, char *fmt, ...)
va_end(args);
}
-static void
+static int
init_chan(int chan, struct IsdnCardState *csta)
{
struct Channel *chanp = csta->channel + chan;
+ int err;
chanp->cs = csta;
chanp->bcs = csta->bcs + chan;
@@ -1102,7 +1111,9 @@ init_chan(int chan, struct IsdnCardState *csta)
chanp->debug = 0;
chanp->Flags = 0;
chanp->leased = 0;
- init_PStack(&chanp->b_st);
+ err = init_PStack(&chanp->b_st);
+ if (err)
+ return err;
chanp->b_st->l1.delay = DEFAULT_B_DELAY;
chanp->fi.fsm = &callcfsm;
chanp->fi.state = ST_NULL;
@@ -1112,31 +1123,41 @@ init_chan(int chan, struct IsdnCardState *csta)
FsmInitTimer(&chanp->fi, &chanp->dial_timer);
FsmInitTimer(&chanp->fi, &chanp->drel_timer);
if (!chan || (test_bit(FLG_TWO_DCHAN, &csta->HW_Flags) && chan < 2)) {
- init_d_st(chanp);
+ err = init_d_st(chanp);
+ if (err)
+ return err;
} else {
chanp->d_st = csta->channel->d_st;
}
chanp->data_open = 0;
+ return 0;
}
int
CallcNewChan(struct IsdnCardState *csta) {
- int i;
+ int i, err;
chancount += 2;
- init_chan(0, csta);
- init_chan(1, csta);
+ err = init_chan(0, csta);
+ if (err)
+ return err;
+ err = init_chan(1, csta);
+ if (err)
+ return err;
printk(KERN_INFO "HiSax: 2 channels added\n");
- for (i = 0; i < MAX_WAITING_CALLS; i++)
- init_chan(i+2,csta);
+ for (i = 0; i < MAX_WAITING_CALLS; i++) {
+ err = init_chan(i+2,csta);
+ if (err)
+ return err;
+ }
printk(KERN_INFO "HiSax: MAX_WAITING_CALLS added\n");
if (test_bit(FLG_PTP, &csta->channel->d_st->l2.flag)) {
printk(KERN_INFO "LAYER2 WATCHING ESTABLISH\n");
csta->channel->d_st->lli.l4l3(csta->channel->d_st,
DL_ESTABLISH | REQUEST, NULL);
}
- return (2);
+ return (0);
}
static void
diff --git a/drivers/isdn/hisax/cert.c b/drivers/isdn/hisax/cert.c
index 64f3bccc8..a372362c4 100644
--- a/drivers/isdn/hisax/cert.c
+++ b/drivers/isdn/hisax/cert.c
@@ -1,8 +1,8 @@
-/* $Id: cert.c,v 2.3 2000/06/26 08:59:12 keil Exp $
+/* $Id: cert.c,v 2.3.6.1 2001/02/16 16:43:25 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
index 6d0366cf2..63612502d 100644
--- a/drivers/isdn/hisax/config.c
+++ b/drivers/isdn/hisax/config.c
@@ -1,9 +1,9 @@
-/* $Id: config.c,v 2.57.6.6 2000/12/10 23:39:19 kai Exp $
+/* $Id: config.c,v 2.57.6.11 2001/03/13 16:17:08 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#include <linux/types.h>
@@ -11,7 +11,6 @@
#include <linux/timer.h>
#include <linux/config.h>
#include <linux/init.h>
-#include <linux/pci.h>
#include "hisax.h"
#include <linux/module.h>
#include <linux/kernel_stat.h>
@@ -1195,7 +1194,12 @@ checkcard(int cardnr, char *id, int *busy_flag)
return (0);
}
init_tei(cs, cs->protocol);
- CallcNewChan(cs);
+ ret = CallcNewChan(cs);
+ if (ret) {
+ closecard(cardnr);
+ restore_flags(flags);
+ return 0;
+ }
/* ISAR needs firmware download first */
if (!test_bit(HW_ISAR, &cs->HW_Flags))
ll_run(cs, 0);
@@ -1326,8 +1330,7 @@ HiSax_reportcard(int cardnr, int sel)
#endif
}
-int __init
-HiSax_init(void)
+static int __init HiSax_init(void)
{
int i,j;
int nzproto = 0;
@@ -1497,11 +1500,7 @@ HiSax_init(void)
}
}
-#ifdef MODULE
-int init_module(void) { return HiSax_init(); }
-
-void
-cleanup_module(void)
+static void __exit HiSax_exit(void)
{
int cardnr = nrcards -1;
long flags;
@@ -1518,7 +1517,6 @@ cleanup_module(void)
restore_flags(flags);
printk(KERN_INFO "HiSax module removed\n");
}
-#endif
#ifdef CONFIG_HISAX_ELSA
int elsa_init_pcmcia(void *pcm_iob, int pcm_irq, int *busy_flag, int prot)
@@ -1707,6 +1705,8 @@ int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *
return (ret);
}
+#include <linux/pci.h>
+
static struct pci_device_id hisax_pci_tbl[] __initdata = {
#ifdef CONFIG_HISAX_FRITZPCI
{PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, PCI_ANY_ID, PCI_ANY_ID},
@@ -1770,3 +1770,6 @@ static struct pci_device_id hisax_pci_tbl[] __initdata = {
};
MODULE_DEVICE_TABLE(pci, hisax_pci_tbl);
+
+module_init(HiSax_init);
+module_exit(HiSax_exit);
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c
index 8967accde..0089c40fa 100644
--- a/drivers/isdn/hisax/diva.c
+++ b/drivers/isdn/hisax/diva.c
@@ -1,10 +1,10 @@
-/* $Id: diva.c,v 1.25.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: diva.c,v 1.25.6.4 2001/02/16 16:43:25 kai Exp $
*
* diva.c low level stuff for Eicon.Diehl Diva Family ISDN cards
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -24,7 +24,7 @@
extern const char *CardType[];
-const char *Diva_revision = "$Revision: 1.25.6.2 $";
+const char *Diva_revision = "$Revision: 1.25.6.4 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c
index ff20606df..8f0a7f673 100644
--- a/drivers/isdn/hisax/elsa.c
+++ b/drivers/isdn/hisax/elsa.c
@@ -1,10 +1,10 @@
-/* $Id: elsa.c,v 2.26.6.1 2000/11/28 12:02:46 kai Exp $
+/* $Id: elsa.c,v 2.26.6.3 2001/02/16 16:43:25 kai Exp $
*
* elsa.c low level stuff for Elsa isdn cards
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -30,7 +30,7 @@
extern const char *CardType[];
-const char *Elsa_revision = "$Revision: 2.26.6.1 $";
+const char *Elsa_revision = "$Revision: 2.26.6.3 $";
const char *Elsa_Types[] =
{"None", "PC", "PCC-8", "PCC-16", "PCF", "PCF-Pro",
"PCMCIA", "QS 1000", "QS 3000", "Microlink PCI", "QS 3000 PCI",
diff --git a/drivers/isdn/hisax/elsa_ser.c b/drivers/isdn/hisax/elsa_ser.c
index 74bedf8f6..0440e4278 100644
--- a/drivers/isdn/hisax/elsa_ser.c
+++ b/drivers/isdn/hisax/elsa_ser.c
@@ -1,8 +1,8 @@
-/* $Id: elsa_ser.c,v 2.10 2000/11/19 17:02:47 kai Exp $
+/* $Id: elsa_ser.c,v 2.10.6.1 2001/02/16 16:43:26 kai Exp $
*
* stuff for the serial modem on ELSA cards
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#include <linux/config.h>
diff --git a/drivers/isdn/hisax/fsm.c b/drivers/isdn/hisax/fsm.c
index 28a759230..7b830ff72 100644
--- a/drivers/isdn/hisax/fsm.c
+++ b/drivers/isdn/hisax/fsm.c
@@ -1,4 +1,4 @@
-/* $Id: fsm.c,v 1.14 2000/11/24 17:05:37 kai Exp $
+/* $Id: fsm.c,v 1.14.6.1 2001/02/16 16:43:26 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
@@ -6,7 +6,7 @@
* Thanks to Jan den Ouden
* Fritz Elfert
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
diff --git a/drivers/isdn/hisax/gazel.c b/drivers/isdn/hisax/gazel.c
index 11db6b9ee..72b28e666 100644
--- a/drivers/isdn/hisax/gazel.c
+++ b/drivers/isdn/hisax/gazel.c
@@ -1,11 +1,11 @@
-/* $Id: gazel.c,v 2.11.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: gazel.c,v 2.11.6.4 2001/02/16 16:43:26 kai Exp $
*
* gazel.c low level stuff for Gazel isdn cards
*
* Author BeWan Systems
* based on source code from Karsten Keil
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#include <linux/config.h>
@@ -19,7 +19,7 @@
#include <linux/pci.h>
extern const char *CardType[];
-const char *gazel_revision = "$Revision: 2.11.6.2 $";
+const char *gazel_revision = "$Revision: 2.11.6.4 $";
#define R647 1
#define R685 2
diff --git a/drivers/isdn/hisax/hfc_2bds0.c b/drivers/isdn/hisax/hfc_2bds0.c
index 73c6fb448..5472c301c 100644
--- a/drivers/isdn/hisax/hfc_2bds0.c
+++ b/drivers/isdn/hisax/hfc_2bds0.c
@@ -1,10 +1,10 @@
-/* $Id: hfc_2bds0.c,v 1.15 2000/11/24 17:05:37 kai Exp $
+/* $Id: hfc_2bds0.c,v 1.15.6.1 2001/02/16 16:43:26 kai Exp $
*
* specific routines for CCD's HFC 2BDS0
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
diff --git a/drivers/isdn/hisax/hfc_2bds0.h b/drivers/isdn/hisax/hfc_2bds0.h
index 66cf0b11a..7bb8f4dee 100644
--- a/drivers/isdn/hisax/hfc_2bds0.h
+++ b/drivers/isdn/hisax/hfc_2bds0.h
@@ -1,10 +1,10 @@
-/* $Id: hfc_2bds0.h,v 1.4 2000/06/26 08:59:12 keil Exp $
+/* $Id: hfc_2bds0.h,v 1.4.6.1 2001/02/16 16:43:27 kai Exp $
*
* specific defines for CCD's HFC 2BDS0
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/hfc_2bs0.c b/drivers/isdn/hisax/hfc_2bs0.c
index 22e94c074..7bb82c77e 100644
--- a/drivers/isdn/hisax/hfc_2bs0.c
+++ b/drivers/isdn/hisax/hfc_2bs0.c
@@ -1,10 +1,10 @@
-/* $Id: hfc_2bs0.c,v 1.17 2000/11/24 17:05:37 kai Exp $
+/* $Id: hfc_2bs0.c,v 1.17.6.1 2001/02/16 16:43:27 kai Exp $
*
* specific routines for CCD's HFC 2BS0
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/hfc_2bs0.h b/drivers/isdn/hisax/hfc_2bs0.h
index dd978e781..f8f6391f3 100644
--- a/drivers/isdn/hisax/hfc_2bs0.h
+++ b/drivers/isdn/hisax/hfc_2bs0.h
@@ -1,10 +1,10 @@
-/* $Id: hfc_2bs0.h,v 1.3 2000/06/26 08:59:13 keil Exp $
+/* $Id: hfc_2bs0.h,v 1.3.6.1 2001/02/16 16:43:27 kai Exp $
*
* specific defines for CCD's HFC 2BS0
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
index 053dd9024..f1f50e536 100644
--- a/drivers/isdn/hisax/hfc_pci.c
+++ b/drivers/isdn/hisax/hfc_pci.c
@@ -1,4 +1,4 @@
-/* $Id: hfc_pci.c,v 1.34.6.3 2000/12/10 23:39:19 kai Exp $
+/* $Id: hfc_pci.c,v 1.34.6.4 2001/02/13 10:33:58 kai Exp $
* hfc_pci.c low level driver for CCD´s hfc-pci based cards
*
@@ -35,7 +35,7 @@
extern const char *CardType[];
-static const char *hfcpci_revision = "$Revision: 1.34.6.3 $";
+static const char *hfcpci_revision = "$Revision: 1.34.6.4 $";
/* table entry in the PCI devices list */
typedef struct {
diff --git a/drivers/isdn/hisax/hfcscard.c b/drivers/isdn/hisax/hfcscard.c
index 6c06186ae..e98557cc4 100644
--- a/drivers/isdn/hisax/hfcscard.c
+++ b/drivers/isdn/hisax/hfcscard.c
@@ -1,10 +1,10 @@
-/* $Id: hfcscard.c,v 1.8 2000/11/24 17:05:37 kai Exp $
+/* $Id: hfcscard.c,v 1.8.6.1 2001/02/16 16:43:27 kai Exp $
*
* hfcscard.c low level stuff for hfcs based cards (Teles3c, ACER P10)
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -16,7 +16,7 @@
extern const char *CardType[];
-static const char *hfcs_revision = "$Revision: 1.8 $";
+static const char *hfcs_revision = "$Revision: 1.8.6.1 $";
static void
hfcs_interrupt(int intno, void *dev_id, struct pt_regs *regs)
diff --git a/drivers/isdn/hisax/hisax.h b/drivers/isdn/hisax/hisax.h
index 63c115d78..99026327a 100644
--- a/drivers/isdn/hisax/hisax.h
+++ b/drivers/isdn/hisax/hisax.h
@@ -1,8 +1,8 @@
-/* $Id: hisax.h,v 2.52.6.1 2000/12/06 16:59:19 kai Exp $
+/* $Id: hisax.h,v 2.52.6.3 2001/02/16 16:43:27 kai Exp $
*
* Basic declarations, defines and prototypes
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#include <linux/config.h>
@@ -126,13 +126,13 @@
#define l3dss1_process
#include "l3dss1.h"
#undef l3dss1_process
-#endif CONFIG_HISAX_EURO
+#endif /* CONFIG_HISAX_EURO */
#ifdef CONFIG_HISAX_NI1
#define l3ni1_process
#include "l3ni1.h"
#undef l3ni1_process
-#endif CONFIG_HISAX_NI1
+#endif /* CONFIG_HISAX_NI1 */
#define MAX_DFRAME_LEN 260
#define MAX_DFRAME_LEN_L1 300
@@ -318,10 +318,10 @@ struct PStack {
{ u_char uuuu; /* only as dummy */
#ifdef CONFIG_HISAX_EURO
dss1_stk_priv dss1; /* private dss1 data */
-#endif CONFIG_HISAX_EURO
+#endif /* CONFIG_HISAX_EURO */
#ifdef CONFIG_HISAX_NI1
ni1_stk_priv ni1; /* private ni1 data */
-#endif CONFIG_HISAX_NI1
+#endif /* CONFIG_HISAX_NI1 */
} prot;
};
@@ -342,10 +342,10 @@ struct l3_process {
{ u_char uuuu; /* only when euro not defined, avoiding empty union */
#ifdef CONFIG_HISAX_EURO
dss1_proc_priv dss1; /* private dss1 data */
-#endif CONFIG_HISAX_EURO
+#endif /* CONFIG_HISAX_EURO */
#ifdef CONFIG_HISAX_NI1
ni1_proc_priv ni1; /* private ni1 data */
-#endif CONFIG_HISAX_NI1
+#endif /* CONFIG_HISAX_NI1 */
} prot;
};
diff --git a/drivers/isdn/hisax/hscx.c b/drivers/isdn/hisax/hscx.c
index d8338bc26..a39e1321e 100644
--- a/drivers/isdn/hisax/hscx.c
+++ b/drivers/isdn/hisax/hscx.c
@@ -1,10 +1,10 @@
-/* $Id: hscx.c,v 1.21 2000/11/24 17:05:37 kai Exp $
+/* $Id: hscx.c,v 1.21.6.1 2001/02/16 16:43:27 kai Exp $
*
* hscx.c HSCX specific routines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/hscx.h b/drivers/isdn/hisax/hscx.h
index 32fc2708d..bb1fd004d 100644
--- a/drivers/isdn/hisax/hscx.h
+++ b/drivers/isdn/hisax/hscx.h
@@ -1,10 +1,10 @@
-/* $Id: hscx.h,v 1.6 2000/06/26 08:59:13 keil Exp $
+/* $Id: hscx.h,v 1.6.6.1 2001/02/16 16:43:27 kai Exp $
*
* hscx.h HSCX specific defines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/hscx_irq.c b/drivers/isdn/hisax/hscx_irq.c
index c28f070e2..3824f4337 100644
--- a/drivers/isdn/hisax/hscx_irq.c
+++ b/drivers/isdn/hisax/hscx_irq.c
@@ -1,4 +1,4 @@
-/* $Id: hscx_irq.c,v 1.16 2000/11/19 17:02:47 kai Exp $
+/* $Id: hscx_irq.c,v 1.16.6.1 2001/02/16 16:43:27 kai Exp $
*
* hscx_irq.c low level b-channel stuff for Siemens HSCX
*
@@ -6,7 +6,7 @@
*
* This is an include file for fast inline IRQ stuff
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c
index fb449592a..a9da7f72f 100644
--- a/drivers/isdn/hisax/icc.c
+++ b/drivers/isdn/hisax/icc.c
@@ -1,4 +1,4 @@
-// $Id: icc.c,v 1.5 2000/11/24 17:05:37 kai Exp $
+// $Id: icc.c,v 1.5.6.2 2001/03/13 16:17:08 kai Exp $
//-----------------------------------------------------------------------------
//
// ICC specific routines
@@ -7,10 +7,10 @@
// www.traverse.com.au
//
// 1999.6.25 Initial implementation of routines for Siemens ISDN
-// Communication Controler PEB 2070 based on the ISAC routines
+// Communication Controller PEB 2070 based on the ISAC routines
// written by Karsten Keil.
//
-// This file is (c) under GNU PUBLIC LICENSE
+// This file is (c) under GNU General Public License
//
//-----------------------------------------------------------------------------
diff --git a/drivers/isdn/hisax/icc.h b/drivers/isdn/hisax/icc.h
index b3ecbdcf8..f624a63ab 100644
--- a/drivers/isdn/hisax/icc.h
+++ b/drivers/isdn/hisax/icc.h
@@ -1,4 +1,4 @@
-// $Id: icc.h,v 1.2 2000/06/26 08:59:13 keil Exp $
+// $Id: icc.h,v 1.2.6.2 2001/03/13 16:17:08 kai Exp $
//-----------------------------------------------------------------------------
//
// ICC specific routines
@@ -7,10 +7,10 @@
// www.traverse.com.au
//
// 1999.7.14 Initial implementation of routines for Siemens ISDN
-// Communication Controler PEB 2070 based on the ISAC routines
+// Communication Controller PEB 2070 based on the ISAC routines
// written by Karsten Keil.
//
-// This file is (c) under GNU PUBLIC LICENSE
+// This file is (c) under GNU General Public License
//
//-----------------------------------------------------------------------------
diff --git a/drivers/isdn/hisax/ipac.h b/drivers/isdn/hisax/ipac.h
index eff327f9e..a46840be6 100644
--- a/drivers/isdn/hisax/ipac.h
+++ b/drivers/isdn/hisax/ipac.h
@@ -1,10 +1,10 @@
-/* $Id: ipac.h,v 1.5 2000/06/26 08:59:13 keil Exp $
+/* $Id: ipac.h,v 1.5.6.1 2001/02/16 16:43:27 kai Exp $
*
* ipac.h IPAC specific defines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c
index ae68aea1b..3e6c9525a 100644
--- a/drivers/isdn/hisax/isac.c
+++ b/drivers/isdn/hisax/isac.c
@@ -1,10 +1,10 @@
-/* $Id: isac.c,v 1.28 2000/11/24 17:05:37 kai Exp $
+/* $Id: isac.c,v 1.28.6.1 2001/02/16 16:43:27 kai Exp $
*
* isac.c ISAC specific routines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*/
@@ -445,7 +445,7 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
if (cs->debug & L1_DEB_MONITOR)
debugl1(cs, "ISAC %02x -> MOX1", cs->dc.isac.mon_tx[cs->dc.isac.mon_txp -1]);
}
- AfterMOX1:
+ AfterMOX1:;
#endif
}
}
diff --git a/drivers/isdn/hisax/isac.h b/drivers/isdn/hisax/isac.h
index 751e8de1d..928439f81 100644
--- a/drivers/isdn/hisax/isac.h
+++ b/drivers/isdn/hisax/isac.h
@@ -1,10 +1,10 @@
-/* $Id: isac.h,v 1.7 2000/06/26 08:59:13 keil Exp $
+/* $Id: isac.h,v 1.7.6.1 2001/02/16 16:43:27 kai Exp $
*
* isac.h ISAC specific defines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isar.c b/drivers/isdn/hisax/isar.c
index 27987e2c1..d90651901 100644
--- a/drivers/isdn/hisax/isar.c
+++ b/drivers/isdn/hisax/isar.c
@@ -1,10 +1,10 @@
-/* $Id: isar.c,v 1.17 2000/11/24 17:05:37 kai Exp $
+/* $Id: isar.c,v 1.17.6.1 2001/02/16 16:43:27 kai Exp $
*
* isar.c ISAR (Siemens PSB 7110) specific routines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isar.h b/drivers/isdn/hisax/isar.h
index d34621834..509652784 100644
--- a/drivers/isdn/hisax/isar.h
+++ b/drivers/isdn/hisax/isar.h
@@ -1,10 +1,10 @@
-/* $Id: isar.h,v 1.9 2000/06/26 08:59:13 keil Exp $
+/* $Id: isar.h,v 1.9.6.1 2001/02/16 16:43:27 kai Exp $
*
* isar.h ISAR (Siemens PSB 7110) specific defines
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isdnl1.c b/drivers/isdn/hisax/isdnl1.c
index 5506b956f..3d02ba76c 100644
--- a/drivers/isdn/hisax/isdnl1.c
+++ b/drivers/isdn/hisax/isdnl1.c
@@ -1,11 +1,11 @@
-/* $Id: isdnl1.c,v 2.41.6.1 2000/12/10 22:01:04 kai Exp $
+/* $Id: isdnl1.c,v 2.41.6.2 2001/02/16 16:43:27 kai Exp $
*
* isdnl1.c common low level stuff for Siemens Chipsetbased isdn cards
* based on the teles driver from Jan den Ouden
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -15,7 +15,7 @@
*
*/
-const char *l1_revision = "$Revision: 2.41.6.1 $";
+const char *l1_revision = "$Revision: 2.41.6.2 $";
#define __NO_VERSION__
#include <linux/init.h>
diff --git a/drivers/isdn/hisax/isdnl1.h b/drivers/isdn/hisax/isdnl1.h
index 040a95aa5..435638de1 100644
--- a/drivers/isdn/hisax/isdnl1.h
+++ b/drivers/isdn/hisax/isdnl1.h
@@ -1,8 +1,8 @@
-/* $Id: isdnl1.h,v 2.9 2000/06/26 08:59:13 keil Exp $
+/* $Id: isdnl1.h,v 2.9.6.1 2001/02/16 16:43:27 kai Exp $
*
* Layer 1 defines
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isdnl2.c b/drivers/isdn/hisax/isdnl2.c
index 59d461c0b..a586b3b4e 100644
--- a/drivers/isdn/hisax/isdnl2.c
+++ b/drivers/isdn/hisax/isdnl2.c
@@ -1,9 +1,9 @@
-/* $Id: isdnl2.c,v 2.25 2000/11/24 17:05:38 kai Exp $
+/* $Id: isdnl2.c,v 2.25.6.1 2001/02/16 16:43:27 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -16,7 +16,7 @@
#include "hisax.h"
#include "isdnl2.h"
-const char *l2_revision = "$Revision: 2.25 $";
+const char *l2_revision = "$Revision: 2.25.6.1 $";
static void l2m_debug(struct FsmInst *fi, char *fmt, ...);
diff --git a/drivers/isdn/hisax/isdnl2.h b/drivers/isdn/hisax/isdnl2.h
index 28e753c8c..6a73943f6 100644
--- a/drivers/isdn/hisax/isdnl2.h
+++ b/drivers/isdn/hisax/isdnl2.h
@@ -1,8 +1,8 @@
-/* $Id: isdnl2.h,v 1.3 2000/06/26 08:59:13 keil Exp $
+/* $Id: isdnl2.h,v 1.3.6.1 2001/02/16 16:43:27 kai Exp $
*
* Layer 2 defines
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isdnl3.c b/drivers/isdn/hisax/isdnl3.c
index 1c2ab1042..d3e5f7965 100644
--- a/drivers/isdn/hisax/isdnl3.c
+++ b/drivers/isdn/hisax/isdnl3.c
@@ -1,9 +1,9 @@
-/* $Id: isdnl3.c,v 2.17 2000/11/24 17:05:38 kai Exp $
+/* $Id: isdnl3.c,v 2.17.6.2 2001/02/16 16:43:27 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -18,7 +18,7 @@
#include "isdnl3.h"
#include <linux/config.h>
-const char *l3_revision = "$Revision: 2.17 $";
+const char *l3_revision = "$Revision: 2.17.6.2 $";
static struct Fsm l3fsm;
diff --git a/drivers/isdn/hisax/isdnl3.h b/drivers/isdn/hisax/isdnl3.h
index 6027e1822..be25d32ba 100644
--- a/drivers/isdn/hisax/isdnl3.h
+++ b/drivers/isdn/hisax/isdnl3.h
@@ -1,6 +1,6 @@
-/* $Id: isdnl3.h,v 2.6 2000/06/26 08:59:13 keil Exp $
+/* $Id: isdnl3.h,v 2.6.6.1 2001/02/16 16:43:27 kai Exp $
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/isurf.c b/drivers/isdn/hisax/isurf.c
index e703ecf66..1b986d0b3 100644
--- a/drivers/isdn/hisax/isurf.c
+++ b/drivers/isdn/hisax/isurf.c
@@ -1,10 +1,10 @@
-/* $Id: isurf.c,v 1.10 2000/11/24 17:05:38 kai Exp $
+/* $Id: isurf.c,v 1.10.6.1 2001/02/16 16:43:27 kai Exp $
*
* isurf.c low level stuff for Siemens I-Surf/I-Talk cards
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -17,7 +17,7 @@
extern const char *CardType[];
-static const char *ISurf_revision = "$Revision: 1.10 $";
+static const char *ISurf_revision = "$Revision: 1.10.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/ix1_micro.c b/drivers/isdn/hisax/ix1_micro.c
index 11e5bd316..770b94268 100644
--- a/drivers/isdn/hisax/ix1_micro.c
+++ b/drivers/isdn/hisax/ix1_micro.c
@@ -1,4 +1,4 @@
-/* $Id: ix1_micro.c,v 2.10 2000/11/24 17:05:38 kai Exp $
+/* $Id: ix1_micro.c,v 2.10.6.1 2001/02/16 16:43:27 kai Exp $
*
* ix1_micro.c low level stuff for ITK ix1-micro Rev.2 isdn cards
* derived from the original file teles3.c from Karsten Keil
@@ -14,7 +14,7 @@
/*
For the modification done by the author the following terms and conditions
- apply (GNU PUBLIC LICENSE)
+ apply (GNU General Public License)
This program is free software; you can redistribute it and/or modify
@@ -50,7 +50,7 @@
#include "isdnl1.h"
extern const char *CardType[];
-const char *ix1_revision = "$Revision: 2.10 $";
+const char *ix1_revision = "$Revision: 2.10.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/jade.c b/drivers/isdn/hisax/jade.c
index fc96b6e2e..706b0855c 100644
--- a/drivers/isdn/hisax/jade.c
+++ b/drivers/isdn/hisax/jade.c
@@ -1,10 +1,10 @@
-/* $Id: jade.c,v 1.6 2000/11/24 17:05:38 kai Exp $
+/* $Id: jade.c,v 1.6.6.1 2001/02/16 16:43:27 kai Exp $
*
* jade.c JADE stuff (derived from original hscx.c)
*
* Author Roland Klabunde (R.Klabunde@Berkom.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/jade.h b/drivers/isdn/hisax/jade.h
index b94b968e4..81eb8ddf2 100644
--- a/drivers/isdn/hisax/jade.h
+++ b/drivers/isdn/hisax/jade.h
@@ -1,9 +1,9 @@
-/* $Id: jade.h,v 1.3 2000/06/26 08:59:14 keil Exp $
+/* $Id: jade.h,v 1.3.6.1 2001/02/16 16:43:27 kai Exp $
* jade.h JADE specific defines
*
* Author Roland Klabunde (R.Klabunde@Berkom.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/jade_irq.c b/drivers/isdn/hisax/jade_irq.c
index d9d289886..4969669b9 100644
--- a/drivers/isdn/hisax/jade_irq.c
+++ b/drivers/isdn/hisax/jade_irq.c
@@ -1,10 +1,10 @@
-/* $Id: jade_irq.c,v 1.5 2000/11/19 17:02:48 kai Exp $
+/* $Id: jade_irq.c,v 1.5.6.1 2001/02/16 16:43:27 kai Exp $
*
* jade_irq.c Low level JADE IRQ stuff (derived from original hscx_irq.c)
*
* Author Roland Klabunde (R.Klabunde@Berkom.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/l3_1tr6.c b/drivers/isdn/hisax/l3_1tr6.c
index fcb34f415..6e05b5a60 100644
--- a/drivers/isdn/hisax/l3_1tr6.c
+++ b/drivers/isdn/hisax/l3_1tr6.c
@@ -1,10 +1,10 @@
-/* $Id: l3_1tr6.c,v 2.13 2000/11/19 17:02:48 kai Exp $
+/* $Id: l3_1tr6.c,v 2.13.6.1 2001/02/16 16:43:27 kai Exp $
*
* German 1TR6 D-channel protocol
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -17,7 +17,7 @@
#include <linux/ctype.h>
extern char *HiSax_getrev(const char *revision);
-const char *l3_1tr6_revision = "$Revision: 2.13 $";
+const char *l3_1tr6_revision = "$Revision: 2.13.6.1 $";
#define MsgHead(ptr, cref, mty, dis) \
*ptr++ = dis; \
diff --git a/drivers/isdn/hisax/l3_1tr6.h b/drivers/isdn/hisax/l3_1tr6.h
index f9d46f659..cfb6d7326 100644
--- a/drivers/isdn/hisax/l3_1tr6.h
+++ b/drivers/isdn/hisax/l3_1tr6.h
@@ -1,8 +1,8 @@
-/* $Id: l3_1tr6.h,v 2.2 2000/06/26 08:59:14 keil Exp $
+/* $Id: l3_1tr6.h,v 2.2.6.1 2001/02/16 16:43:27 kai Exp $
*
* German 1TR6 D-channel protocol defines
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#ifndef l3_1tr6
diff --git a/drivers/isdn/hisax/l3dss1.c b/drivers/isdn/hisax/l3dss1.c
index cc714ce3d..2ab9ed940 100644
--- a/drivers/isdn/hisax/l3dss1.c
+++ b/drivers/isdn/hisax/l3dss1.c
@@ -1,11 +1,11 @@
-/* $Id: l3dss1.c,v 2.30 2000/11/19 17:02:48 kai Exp $
+/* $Id: l3dss1.c,v 2.30.6.1 2001/02/16 16:43:27 kai Exp $
*
* EURO/DSS1 D-channel protocol
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -22,7 +22,7 @@
#include <linux/config.h>
extern char *HiSax_getrev(const char *revision);
-const char *dss1_revision = "$Revision: 2.30 $";
+const char *dss1_revision = "$Revision: 2.30.6.1 $";
#define EXT_BEARER_CAPS 1
@@ -426,9 +426,9 @@ l3dss1_parse_facility(struct PStack *st, struct l3_process *pc,
#undef FOO1
}
-#else not HISAX_DE_AOC
+#else /* not HISAX_DE_AOC */
l3_debug(st, "invoke break");
-#endif not HISAX_DE_AOC
+#endif /* not HISAX_DE_AOC */
break;
case 2: /* return result */
/* if no process available handle separately */
@@ -438,12 +438,12 @@ l3dss1_parse_facility(struct PStack *st, struct l3_process *pc,
return;
}
if ((pc->prot.dss1.invoke_id) && (pc->prot.dss1.invoke_id == id))
- { /* Diversion successfull */
+ { /* Diversion successful */
free_invoke_id(st,pc->prot.dss1.invoke_id);
pc->prot.dss1.remote_result = 0; /* success */
pc->prot.dss1.invoke_id = 0;
pc->redir_result = pc->prot.dss1.remote_result;
- st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successfull */
+ st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successful */
else
l3_debug(st,"return error unknown identifier");
break;
@@ -2112,7 +2112,7 @@ static void l3dss1_redir_req(struct l3_process *pc, u_char pr, void *arg)
MsgHead(p, pc->callref, MT_FACILITY);
for (subp = pc->chan->setup.phone; (*subp) && (*subp != '.'); subp++) len_phone++; /* len of phone number */
- if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subadress element */
+ if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subaddress element */
*p++ = 0x1c; /* Facility info element */
*p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */
@@ -2138,7 +2138,7 @@ static void l3dss1_redir_req(struct l3_process *pc, u_char pr, void *arg)
*p++ = pc->chan->setup.phone[l];
if (len_sub)
- { *p++ = 0x04; /* called party subadress */
+ { *p++ = 0x04; /* called party subaddress */
*p++ = len_sub - 2;
while (*subp) *p++ = *subp++;
}
diff --git a/drivers/isdn/hisax/l3dss1.h b/drivers/isdn/hisax/l3dss1.h
index 4913f17bd..76207660c 100644
--- a/drivers/isdn/hisax/l3dss1.h
+++ b/drivers/isdn/hisax/l3dss1.h
@@ -1,8 +1,8 @@
-/* $Id: l3dss1.h,v 1.10 2000/06/26 08:59:14 keil Exp $
+/* $Id: l3dss1.h,v 1.10.6.1 2001/02/16 16:43:28 kai Exp $
*
* DSS1 (Euro) D-channel protocol defines
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/l3ni1.c b/drivers/isdn/hisax/l3ni1.c
index 4440f44e7..86245b474 100644
--- a/drivers/isdn/hisax/l3ni1.c
+++ b/drivers/isdn/hisax/l3ni1.c
@@ -1,4 +1,4 @@
-// $Id: l3ni1.c,v 2.5.6.1 2000/12/06 16:59:19 kai Exp $
+// $Id: l3ni1.c,v 2.5.6.2 2001/02/16 16:43:28 kai Exp $
//
//-----------------------------------------------------------------------------
//
@@ -16,7 +16,7 @@
// Will Scales - beta tester extraordinaire
// Brett Whittacre - beta tester and remote devel system in Vegas
//
-// This file is (c) under GNU PUBLIC LICENSE
+// This file is (c) under GNU General Public License
//
//-----------------------------------------------------------------------------
#define __NO_VERSION__
@@ -26,7 +26,7 @@
#include <linux/ctype.h>
extern char *HiSax_getrev(const char *revision);
-const char *ni1_revision = "$Revision: 2.5.6.1 $";
+const char *ni1_revision = "$Revision: 2.5.6.2 $";
#define EXT_BEARER_CAPS 1
@@ -372,12 +372,12 @@ l3ni1_parse_facility(struct PStack *st, struct l3_process *pc,
return;
}
if ((pc->prot.ni1.invoke_id) && (pc->prot.ni1.invoke_id == id))
- { /* Diversion successfull */
+ { /* Diversion successful */
free_invoke_id(st,pc->prot.ni1.invoke_id);
pc->prot.ni1.remote_result = 0; /* success */
pc->prot.ni1.invoke_id = 0;
pc->redir_result = pc->prot.ni1.remote_result;
- st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successfull */
+ st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successful */
else
l3_debug(st,"return error unknown identifier");
break;
@@ -1973,7 +1973,7 @@ static void l3ni1_redir_req(struct l3_process *pc, u_char pr, void *arg)
MsgHead(p, pc->callref, MT_FACILITY);
for (subp = pc->chan->setup.phone; (*subp) && (*subp != '.'); subp++) len_phone++; /* len of phone number */
- if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subadress element */
+ if (*subp++ == '.') len_sub = strlen(subp) + 2; /* length including info subaddress element */
*p++ = 0x1c; /* Facility info element */
*p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */
@@ -1999,7 +1999,7 @@ static void l3ni1_redir_req(struct l3_process *pc, u_char pr, void *arg)
*p++ = pc->chan->setup.phone[l];
if (len_sub)
- { *p++ = 0x04; /* called party subadress */
+ { *p++ = 0x04; /* called party subaddress */
*p++ = len_sub - 2;
while (*subp) *p++ = *subp++;
}
diff --git a/drivers/isdn/hisax/l3ni1.h b/drivers/isdn/hisax/l3ni1.h
index 9fd7ce86a..57410c151 100644
--- a/drivers/isdn/hisax/l3ni1.h
+++ b/drivers/isdn/hisax/l3ni1.h
@@ -1,4 +1,4 @@
-// $Id: l3ni1.h,v 2.3 2000/11/16 13:50:43 keil Exp $
+// $Id: l3ni1.h,v 2.3.6.1 2001/02/16 16:43:28 kai Exp $
//-----------------------------------------------------------------------------
//
// NI1 D-channel protocol
@@ -12,7 +12,7 @@
// code provided by Ragnar Paulson.
//
//
-// This file is (c) under GNU PUBLIC LICENSE
+// This file is (c) under GNU General Public License
//
//-----------------------------------------------------------------------------
diff --git a/drivers/isdn/hisax/lmgr.c b/drivers/isdn/hisax/lmgr.c
index 99afed2e6..c261ba6cd 100644
--- a/drivers/isdn/hisax/lmgr.c
+++ b/drivers/isdn/hisax/lmgr.c
@@ -1,10 +1,10 @@
-/* $Id: lmgr.c,v 1.7 2000/06/26 08:59:14 keil Exp $
+/* $Id: lmgr.c,v 1.7.6.1 2001/02/16 16:43:28 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
*
* Layermanagement module
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/mic.c b/drivers/isdn/hisax/mic.c
index abb544866..b38235d41 100644
--- a/drivers/isdn/hisax/mic.c
+++ b/drivers/isdn/hisax/mic.c
@@ -1,4 +1,4 @@
-/* $Id: mic.c,v 1.10 2000/11/24 17:05:38 kai Exp $
+/* $Id: mic.c,v 1.10.6.1 2001/02/16 16:43:28 kai Exp $
*
* mic.c low level stuff for mic cards
*
@@ -6,7 +6,7 @@
*
* Author Stephan von Krawczynski <skraw@ithnet.com>
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -19,7 +19,7 @@
extern const char *CardType[];
-const char *mic_revision = "$Revision: 1.10 $";
+const char *mic_revision = "$Revision: 1.10.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/netjet.c b/drivers/isdn/hisax/netjet.c
index 4c4d94af7..23ebd3c9b 100644
--- a/drivers/isdn/hisax/netjet.c
+++ b/drivers/isdn/hisax/netjet.c
@@ -1,4 +1,4 @@
-/* $Id: netjet.c,v 1.24.6.2 2000/12/17 22:45:11 kai Exp $
+/* $Id: netjet.c,v 1.24.6.4 2001/02/16 16:43:28 kai Exp $
*
* netjet.c low level stuff for Traverse Technologie NETJet ISDN cards
*
@@ -6,7 +6,7 @@
*
* Thanks to Traverse Technologie Australia for documents and informations
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -22,7 +22,7 @@
#include <asm/io.h>
#include "netjet.h"
-const char *NETjet_revision = "$Revision: 1.24.6.2 $";
+const char *NETjet_revision = "$Revision: 1.24.6.4 $";
/* Interface functions */
diff --git a/drivers/isdn/hisax/netjet.h b/drivers/isdn/hisax/netjet.h
index 120a98d27..f24f6992b 100644
--- a/drivers/isdn/hisax/netjet.h
+++ b/drivers/isdn/hisax/netjet.h
@@ -1,4 +1,4 @@
-// $Id: netjet.h,v 2.5.6.1 2000/11/28 12:02:46 kai Exp $
+// $Id: netjet.h,v 2.5.6.2 2001/02/16 16:43:28 kai Exp $
//-----------------------------------------------------------------------------
//
// NETjet common header file
@@ -6,7 +6,7 @@
// Author Kerstern Keil repackaged by
// Matt Henderson - Traverse Technologies P/L www.traverse.com.au
//
-// This file is (c) under GNU PUBLIC LICENSE
+// This file is (c) under GNU General Public License
//
//-----------------------------------------------------------------------------
diff --git a/drivers/isdn/hisax/niccy.c b/drivers/isdn/hisax/niccy.c
index b22ed23e7..dba2a6d86 100644
--- a/drivers/isdn/hisax/niccy.c
+++ b/drivers/isdn/hisax/niccy.c
@@ -1,4 +1,4 @@
-/* $Id: niccy.c,v 1.15.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: niccy.c,v 1.15.6.4 2001/02/16 16:43:28 kai Exp $
*
* niccy.c low level stuff for Dr. Neuhaus NICCY PnP and NICCY PCI and
* compatible (SAGEM cybermodem)
@@ -7,7 +7,7 @@
*
* Thanks to Dr. Neuhaus and SAGEM for informations
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -22,7 +22,7 @@
#include <linux/pci.h>
extern const char *CardType[];
-const char *niccy_revision = "$Revision: 1.15.6.2 $";
+const char *niccy_revision = "$Revision: 1.15.6.4 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/nj_s.c b/drivers/isdn/hisax/nj_s.c
index 02a76d7df..850a4dab4 100644
--- a/drivers/isdn/hisax/nj_s.c
+++ b/drivers/isdn/hisax/nj_s.c
@@ -1,6 +1,6 @@
-// $Id: nj_s.c,v 2.7.6.2 2001/02/07 11:31:31 kai Exp $
+// $Id: nj_s.c,v 2.7.6.4 2001/02/16 16:43:28 kai Exp $
//
-// This file is (c) under GNU PUBLIC LICENSE
+// This file is (c) under GNU General Public License
//
#define __NO_VERSION__
@@ -14,7 +14,7 @@
#include <linux/ppp_defs.h>
#include "netjet.h"
-const char *NETjet_S_revision = "$Revision: 2.7.6.2 $";
+const char *NETjet_S_revision = "$Revision: 2.7.6.4 $";
static u_char dummyrr(struct IsdnCardState *cs, int chan, u_char off)
{
diff --git a/drivers/isdn/hisax/nj_u.c b/drivers/isdn/hisax/nj_u.c
index f0bdd3326..766604fc5 100644
--- a/drivers/isdn/hisax/nj_u.c
+++ b/drivers/isdn/hisax/nj_u.c
@@ -1,6 +1,6 @@
-/* $Id: nj_u.c,v 2.8.6.2 2001/02/07 11:31:31 kai Exp $
+/* $Id: nj_u.c,v 2.8.6.4 2001/02/16 16:43:28 kai Exp $
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -15,7 +15,7 @@
#include <linux/ppp_defs.h>
#include "netjet.h"
-const char *NETjet_U_revision = "$Revision: 2.8.6.2 $";
+const char *NETjet_U_revision = "$Revision: 2.8.6.4 $";
static u_char dummyrr(struct IsdnCardState *cs, int chan, u_char off)
{
diff --git a/drivers/isdn/hisax/q931.c b/drivers/isdn/hisax/q931.c
index 3f461883d..2f68e3224 100644
--- a/drivers/isdn/hisax/q931.c
+++ b/drivers/isdn/hisax/q931.c
@@ -1,10 +1,10 @@
-/* $Id: q931.c,v 1.10 2000/06/26 08:59:14 keil Exp $
+/* $Id: q931.c,v 1.10.6.2 2001/03/13 16:17:08 kai Exp $
*
* q931.c code to decode ITU Q.931 call control messages
*
* Author Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
* Changelog
*
@@ -1228,7 +1228,7 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
finish = 1;
}
} else if (sapi == TEI_SAPI) {
- dp += sprintf(dp, "tei managment\n");
+ dp += sprintf(dp, "tei management\n");
finish = 1;
} else {
dp += sprintf(dp, "unknown sapi %d broadcast\n", sapi);
diff --git a/drivers/isdn/hisax/rawhdlc.c b/drivers/isdn/hisax/rawhdlc.c
index 1f4dc4436..09e05f677 100644
--- a/drivers/isdn/hisax/rawhdlc.c
+++ b/drivers/isdn/hisax/rawhdlc.c
@@ -1,11 +1,11 @@
-/* $Id: rawhdlc.c,v 1.5 2000/06/26 08:59:14 keil Exp $
+/* $Id: rawhdlc.c,v 1.5.6.1 2001/02/16 16:43:28 kai Exp $
*
* rawhdlc.c support routines for cards that don't support HDLC
*
* Author Karsten Keil (keil@isdn4linux.de)
* Brent Baccala <baccala@FreeSoft.org>
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
* Some passive ISDN cards, such as the Traverse NETJet and the AMD 7930,
* don't perform HDLC encapsulation over the B channel. Drivers for
diff --git a/drivers/isdn/hisax/rawhdlc.h b/drivers/isdn/hisax/rawhdlc.h
index 12ca6ab8c..1ba38a51f 100644
--- a/drivers/isdn/hisax/rawhdlc.h
+++ b/drivers/isdn/hisax/rawhdlc.h
@@ -1,10 +1,10 @@
-/* $Id: rawhdlc.h,v 1.3 2000/06/26 08:59:14 keil Exp $
+/* $Id: rawhdlc.h,v 1.3.6.1 2001/02/16 16:43:29 kai Exp $
*
* rawhdlc.h support routines for cards that don't support HDLC
*
* Author Brent Baccala <baccala@FreeSoft.org>
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hisax/s0box.c b/drivers/isdn/hisax/s0box.c
index c29e765e6..fa965fe87 100644
--- a/drivers/isdn/hisax/s0box.c
+++ b/drivers/isdn/hisax/s0box.c
@@ -1,10 +1,10 @@
-/* $Id: s0box.c,v 2.4 2000/11/24 17:05:38 kai Exp $
+/* $Id: s0box.c,v 2.4.6.1 2001/02/16 16:43:29 kai Exp $
*
* s0box.c low level stuff for Creatix S0BOX
*
* Author S0BOX specific stuff: Enrik Berkhan (enrik@starfleet.inka.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -15,7 +15,7 @@
#include "isdnl1.h"
extern const char *CardType[];
-const char *s0box_revision = "$Revision: 2.4 $";
+const char *s0box_revision = "$Revision: 2.4.6.1 $";
static inline void
writereg(unsigned int padr, signed int addr, u_char off, u_char val) {
diff --git a/drivers/isdn/hisax/saphir.c b/drivers/isdn/hisax/saphir.c
index 8f4b7c473..c243cef3b 100644
--- a/drivers/isdn/hisax/saphir.c
+++ b/drivers/isdn/hisax/saphir.c
@@ -1,4 +1,4 @@
-/* $Id: saphir.c,v 1.8 2000/11/24 17:05:38 kai Exp $
+/* $Id: saphir.c,v 1.8.6.1 2001/02/16 16:43:29 kai Exp $
*
* saphir.c low level stuff for HST Saphir 1
*
@@ -6,7 +6,7 @@
*
* Thanks to HST High Soft Tech GmbH
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -19,7 +19,7 @@
#include "isdnl1.h"
extern const char *CardType[];
-static char *saphir_rev = "$Revision: 1.8 $";
+static char *saphir_rev = "$Revision: 1.8.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c
index abe4d2198..300213f56 100644
--- a/drivers/isdn/hisax/sedlbauer.c
+++ b/drivers/isdn/hisax/sedlbauer.c
@@ -1,4 +1,4 @@
-/* $Id: sedlbauer.c,v 1.25.6.2 2000/11/29 17:48:59 kai Exp $
+/* $Id: sedlbauer.c,v 1.25.6.4 2001/02/16 16:43:29 kai Exp $
*
* sedlbauer.c low level stuff for Sedlbauer cards
* includes support for the Sedlbauer speed star (speed star II),
@@ -16,7 +16,7 @@
* Sedlbauer AG for informations
* Edgar Toernig
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -52,7 +52,7 @@
extern const char *CardType[];
-const char *Sedlbauer_revision = "$Revision: 1.25.6.2 $";
+const char *Sedlbauer_revision = "$Revision: 1.25.6.4 $";
const char *Sedlbauer_Types[] =
{"None", "speed card/win", "speed star", "speed fax+",
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
new file mode 100644
index 000000000..a89447bcf
--- /dev/null
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -0,0 +1,679 @@
+/*======================================================================
+
+ A Sedlbauer PCMCIA client driver
+
+ This driver is for the Sedlbauer Speed Star and Speed Star II,
+ which are ISDN PCMCIA Cards.
+
+ sedlbauer_cs.c 1.1a 2001/01/28 15:04:04
+
+ The contents of this file are subject to the Mozilla Public
+ License Version 1.1 (the "License"); you may not use this file
+ except in compliance with the License. You may obtain a copy of
+ the License at http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS
+ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ rights and limitations under the License.
+
+ The initial developer of the original code is David A. Hinds
+ <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
+ are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
+
+ Modifications from dummy_cs.c are Copyright (C) 1999-2001 Marcus Niemann
+ <maniemann@users.sourceforge.net>. All Rights Reserved.
+
+ Alternatively, the contents of this file may be used under the
+ terms of the GNU Public License version 2 (the "GPL"), in which
+ case the provisions of the GPL are applicable instead of the
+ above. If you wish to allow the use of your version of this file
+ only under the terms of the GPL and not to allow others to use
+ your version of this file under the MPL, indicate your decision
+ by deleting the provisions above and replace them with the notice
+ and other provisions required by the GPL. If you do not delete
+ the provisions above, a recipient may use your version of this
+ file under either the MPL or the GPL.
+
+======================================================================*/
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/ptrace.h>
+#include <linux/malloc.h>
+#include <linux/string.h>
+#include <linux/timer.h>
+#include <linux/ioport.h>
+#include <asm/io.h>
+#include <asm/system.h>
+
+#include <pcmcia/version.h>
+#include <pcmcia/cs_types.h>
+#include <pcmcia/cs.h>
+#include <pcmcia/cistpl.h>
+#include <pcmcia/cisreg.h>
+#include <pcmcia/ds.h>
+#include <pcmcia/bus_ops.h>
+
+/*
+ All the PCMCIA modules use PCMCIA_DEBUG to control debugging. If
+ you do not define PCMCIA_DEBUG at all, all the debug code will be
+ left out. If you compile with PCMCIA_DEBUG=0, the debug code will
+ be present but disabled -- but it can then be enabled for specific
+ modules at load time with a 'pc_debug=#' option to insmod.
+*/
+
+#ifdef PCMCIA_DEBUG
+static int pc_debug = PCMCIA_DEBUG;
+MODULE_PARM(pc_debug, "i");
+#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args);
+static char *version =
+"sedlbauer_cs.c 1.1a 2001/01/28 15:04:04 (M.Niemann)";
+#else
+#define DEBUG(n, args...)
+#endif
+
+
+/*====================================================================*/
+
+/* Parameters that can be set with 'insmod' */
+
+/* The old way: bit map of interrupts to choose from */
+/* This means pick from 15, 14, 12, 11, 10, 9, 7, 5, 4, and 3 */
+static u_int irq_mask = 0xdeb8;
+/* Newer, simpler way of listing specific interrupts */
+static int irq_list[4] = { -1 };
+
+MODULE_PARM(irq_mask, "i");
+MODULE_PARM(irq_list, "1-4i");
+
+static int protocol = 2; /* EURO-ISDN Default */
+MODULE_PARM(protocol, "i");
+
+extern int sedl_init_pcmcia(int, int, int*, int);
+
+/*====================================================================*/
+
+/*
+ The event() function is this driver's Card Services event handler.
+ It will be called by Card Services when an appropriate card status
+ event is received. The config() and release() entry points are
+ used to configure or release a socket, in response to card
+ insertion and ejection events. They are invoked from the sedlbauer
+ event handler.
+*/
+
+static void sedlbauer_config(dev_link_t *link);
+static void sedlbauer_release(u_long arg);
+static int sedlbauer_event(event_t event, int priority,
+ event_callback_args_t *args);
+
+/*
+ The attach() and detach() entry points are used to create and destroy
+ "instances" of the driver, where each instance represents everything
+ needed to manage one actual PCMCIA card.
+*/
+
+static dev_link_t *sedlbauer_attach(void);
+static void sedlbauer_detach(dev_link_t *);
+
+/*
+ You'll also need to prototype all the functions that will actually
+ be used to talk to your device. See 'memory_cs' for a good example
+ of a fully self-sufficient driver; the other drivers rely more or
+ less on other parts of the kernel.
+*/
+
+/*
+ The dev_info variable is the "key" that is used to match up this
+ device driver with appropriate cards, through the card configuration
+ database.
+*/
+
+static dev_info_t dev_info = "sedlbauer_cs";
+
+/*
+ A linked list of "instances" of the sedlbauer device. Each actual
+ PCMCIA card corresponds to one device instance, and is described
+ by one dev_link_t structure (defined in ds.h).
+
+ You may not want to use a linked list for this -- for example, the
+ memory card driver uses an array of dev_link_t pointers, where minor
+ device numbers are used to derive the corresponding array index.
+*/
+
+static dev_link_t *dev_list = NULL;
+
+/*
+ A dev_link_t structure has fields for most things that are needed
+ to keep track of a socket, but there will usually be some device
+ specific information that also needs to be kept track of. The
+ 'priv' pointer in a dev_link_t structure can be used to point to
+ a device-specific private data structure, like this.
+
+ To simplify the data structure handling, we actually include the
+ dev_link_t structure in the device's private data structure.
+
+ A driver needs to provide a dev_node_t structure for each device
+ on a card. In some cases, there is only one device per card (for
+ example, ethernet cards, modems). In other cases, there may be
+ many actual or logical devices (SCSI adapters, memory cards with
+ multiple partitions). The dev_node_t structures need to be kept
+ in a linked list starting at the 'dev' field of a dev_link_t
+ structure. We allocate them in the card's private data structure,
+ because they generally shouldn't be allocated dynamically.
+
+ In this case, we also provide a flag to indicate if a device is
+ "stopped" due to a power management event, or card ejection. The
+ device IO routines can use a flag like this to throttle IO to a
+ card that is not ready to accept it.
+
+ The bus_operations pointer is used on platforms for which we need
+ to use special socket-specific versions of normal IO primitives
+ (inb, outb, readb, writeb, etc) for card IO.
+*/
+
+typedef struct local_info_t {
+ dev_link_t link;
+ dev_node_t node;
+ int stop;
+ struct bus_operations *bus;
+} local_info_t;
+
+/*====================================================================*/
+
+static void cs_error(client_handle_t handle, int func, int ret)
+{
+ error_info_t err = { func, ret };
+ CardServices(ReportError, handle, &err);
+}
+
+/*======================================================================
+
+ sedlbauer_attach() creates an "instance" of the driver, allocating
+ local data structures for one device. The device is registered
+ with Card Services.
+
+ The dev_link structure is initialized, but we don't actually
+ configure the card at this point -- we wait until we receive a
+ card insertion event.
+
+======================================================================*/
+
+static dev_link_t *sedlbauer_attach(void)
+{
+ local_info_t *local;
+ dev_link_t *link;
+ client_reg_t client_reg;
+ int ret, i;
+
+ DEBUG(0, "sedlbauer_attach()\n");
+
+ /* Allocate space for private device-specific data */
+ local = kmalloc(sizeof(local_info_t), GFP_KERNEL);
+ if (!local) return NULL;
+ memset(local, 0, sizeof(local_info_t));
+ link = &local->link; link->priv = local;
+
+ /* Initialize the dev_link_t structure */
+ link->release.function = &sedlbauer_release;
+ link->release.data = (u_long)link;
+
+ /* Interrupt setup */
+ link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
+ link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID;
+ if (irq_list[0] == -1)
+ link->irq.IRQInfo2 = irq_mask;
+ else
+ for (i = 0; i < 4; i++)
+ link->irq.IRQInfo2 |= 1 << irq_list[i];
+ link->irq.Handler = NULL;
+
+ /*
+ General socket configuration defaults can go here. In this
+ client, we assume very little, and rely on the CIS for almost
+ everything. In most clients, many details (i.e., number, sizes,
+ and attributes of IO windows) are fixed by the nature of the
+ device, and can be hard-wired here.
+ */
+
+ /* from old sedl_cs
+ */
+ /* The io structure describes IO port mapping */
+ link->io.NumPorts1 = 8;
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ link->io.IOAddrLines = 3;
+
+
+ link->conf.Attributes = 0;
+ link->conf.Vcc = 50;
+ link->conf.IntType = INT_MEMORY_AND_IO;
+
+ /* Register with Card Services */
+ link->next = dev_list;
+ dev_list = link;
+ client_reg.dev_info = &dev_info;
+ client_reg.Attributes = INFO_IO_CLIENT | INFO_CARD_SHARE;
+ client_reg.EventMask =
+ CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
+ CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
+ CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
+ client_reg.event_handler = &sedlbauer_event;
+ client_reg.Version = 0x0210;
+ client_reg.event_callback_args.client_data = link;
+ ret = CardServices(RegisterClient, &link->handle, &client_reg);
+ if (ret != CS_SUCCESS) {
+ cs_error(link->handle, RegisterClient, ret);
+ sedlbauer_detach(link);
+ return NULL;
+ }
+
+ return link;
+} /* sedlbauer_attach */
+
+/*======================================================================
+
+ This deletes a driver "instance". The device is de-registered
+ with Card Services. If it has been released, all local data
+ structures are freed. Otherwise, the structures will be freed
+ when the device is released.
+
+======================================================================*/
+
+static void sedlbauer_detach(dev_link_t *link)
+{
+ dev_link_t **linkp;
+
+ DEBUG(0, "sedlbauer_detach(0x%p)\n", link);
+
+ /* Locate device structure */
+ for (linkp = &dev_list; *linkp; linkp = &(*linkp)->next)
+ if (*linkp == link) break;
+ if (*linkp == NULL)
+ return;
+
+ /*
+ If the device is currently configured and active, we won't
+ actually delete it yet. Instead, it is marked so that when
+ the release() function is called, that will trigger a proper
+ detach().
+ */
+ if (link->state & DEV_CONFIG) {
+#ifdef PCMCIA_DEBUG
+ printk(KERN_DEBUG "sedlbauer_cs: detach postponed, '%s' "
+ "still locked\n", link->dev->dev_name);
+#endif
+ link->state |= DEV_STALE_LINK;
+ return;
+ }
+
+ /* Break the link with Card Services */
+ if (link->handle)
+ CardServices(DeregisterClient, link->handle);
+
+ /* Unlink device structure, and free it */
+ *linkp = link->next;
+ /* This points to the parent local_info_t struct */
+ kfree(link->priv);
+} /* sedlbauer_detach */
+
+/*======================================================================
+
+ sedlbauer_config() is scheduled to run after a CARD_INSERTION event
+ is received, to configure the PCMCIA socket, and to make the
+ device available to the system.
+
+======================================================================*/
+
+#define CS_CHECK(fn, args...) \
+while ((last_ret=CardServices(last_fn=(fn),args))!=0) goto cs_failed
+
+#define CFG_CHECK(fn, args...) \
+if (CardServices(fn, args) != 0) goto next_entry
+
+static void sedlbauer_config(dev_link_t *link)
+{
+ client_handle_t handle = link->handle;
+ local_info_t *dev = link->priv;
+ tuple_t tuple;
+ cisparse_t parse;
+ int last_fn, last_ret;
+ u_char buf[64];
+ config_info_t conf;
+ win_req_t req;
+ memreq_t map;
+
+
+ DEBUG(0, "sedlbauer_config(0x%p)\n", link);
+
+ /*
+ This reads the card's CONFIG tuple to find its configuration
+ registers.
+ */
+ tuple.DesiredTuple = CISTPL_CONFIG;
+ tuple.Attributes = 0;
+ tuple.TupleData = buf;
+ tuple.TupleDataMax = sizeof(buf);
+ tuple.TupleOffset = 0;
+ CS_CHECK(GetFirstTuple, handle, &tuple);
+ CS_CHECK(GetTupleData, handle, &tuple);
+ CS_CHECK(ParseTuple, handle, &tuple, &parse);
+ link->conf.ConfigBase = parse.config.base;
+ link->conf.Present = parse.config.rmask[0];
+
+ /* Configure card */
+ link->state |= DEV_CONFIG;
+
+ /* Look up the current Vcc */
+ CS_CHECK(GetConfigurationInfo, handle, &conf);
+ link->conf.Vcc = conf.Vcc;
+
+ /*
+ In this loop, we scan the CIS for configuration table entries,
+ each of which describes a valid card configuration, including
+ voltage, IO window, memory window, and interrupt settings.
+
+ We make no assumptions about the card to be configured: we use
+ just the information available in the CIS. In an ideal world,
+ this would work for any PCMCIA card, but it requires a complete
+ and accurate CIS. In practice, a driver usually "knows" most of
+ these things without consulting the CIS, and most client drivers
+ will only use the CIS to fill in implementation-defined details.
+ */
+ tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
+ CS_CHECK(GetFirstTuple, handle, &tuple);
+ while (1) {
+ cistpl_cftable_entry_t dflt = { 0 };
+ cistpl_cftable_entry_t *cfg = &(parse.cftable_entry);
+ CFG_CHECK(GetTupleData, handle, &tuple);
+ CFG_CHECK(ParseTuple, handle, &tuple, &parse);
+
+ if (cfg->flags & CISTPL_CFTABLE_DEFAULT) dflt = *cfg;
+ if (cfg->index == 0) goto next_entry;
+ link->conf.ConfigIndex = cfg->index;
+
+ /* Does this card need audio output? */
+ if (cfg->flags & CISTPL_CFTABLE_AUDIO) {
+ link->conf.Attributes |= CONF_ENABLE_SPKR;
+ link->conf.Status = CCSR_AUDIO_ENA;
+ }
+
+ /* Use power settings for Vcc and Vpp if present */
+ /* Note that the CIS values need to be rescaled */
+ if (cfg->vcc.present & (1<<CISTPL_POWER_VNOM)) {
+ if (conf.Vcc != cfg->vcc.param[CISTPL_POWER_VNOM]/10000)
+ goto next_entry;
+ } else if (dflt.vcc.present & (1<<CISTPL_POWER_VNOM)) {
+ if (conf.Vcc != dflt.vcc.param[CISTPL_POWER_VNOM]/10000)
+ goto next_entry;
+ }
+
+ if (cfg->vpp1.present & (1<<CISTPL_POWER_VNOM))
+ link->conf.Vpp1 = link->conf.Vpp2 =
+ cfg->vpp1.param[CISTPL_POWER_VNOM]/10000;
+ else if (dflt.vpp1.present & (1<<CISTPL_POWER_VNOM))
+ link->conf.Vpp1 = link->conf.Vpp2 =
+ dflt.vpp1.param[CISTPL_POWER_VNOM]/10000;
+
+ /* Do we need to allocate an interrupt? */
+ if (cfg->irq.IRQInfo1 || dflt.irq.IRQInfo1)
+ link->conf.Attributes |= CONF_ENABLE_IRQ;
+
+ /* IO window settings */
+ link->io.NumPorts1 = link->io.NumPorts2 = 0;
+ if ((cfg->io.nwin > 0) || (dflt.io.nwin > 0)) {
+ cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt.io;
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
+ if (!(io->flags & CISTPL_IO_8BIT))
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
+ if (!(io->flags & CISTPL_IO_16BIT))
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+/* new in dummy.cs 2001/01/28 MN
+ link->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
+*/
+ link->io.BasePort1 = io->win[0].base;
+ link->io.NumPorts1 = io->win[0].len;
+ if (io->nwin > 1) {
+ link->io.Attributes2 = link->io.Attributes1;
+ link->io.BasePort2 = io->win[1].base;
+ link->io.NumPorts2 = io->win[1].len;
+ }
+ /* This reserves IO space but doesn't actually enable it */
+ CFG_CHECK(RequestIO, link->handle, &link->io);
+ }
+
+ /*
+ Now set up a common memory window, if needed. There is room
+ in the dev_link_t structure for one memory window handle,
+ but if the base addresses need to be saved, or if multiple
+ windows are needed, the info should go in the private data
+ structure for this device.
+
+ Note that the memory window base is a physical address, and
+ needs to be mapped to virtual space with ioremap() before it
+ is used.
+ */
+ if ((cfg->mem.nwin > 0) || (dflt.mem.nwin > 0)) {
+ cistpl_mem_t *mem =
+ (cfg->mem.nwin) ? &cfg->mem : &dflt.mem;
+ req.Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
+ req.Attributes |= WIN_ENABLE;
+ req.Base = mem->win[0].host_addr;
+ req.Size = mem->win[0].len;
+/* new in dummy.cs 2001/01/28 MN
+ if (req.Size < 0x1000)
+ req.Size = 0x1000;
+*/
+ req.AccessSpeed = 0;
+ link->win = (window_handle_t)link->handle;
+ CFG_CHECK(RequestWindow, &link->win, &req);
+ map.Page = 0; map.CardOffset = mem->win[0].card_addr;
+ CFG_CHECK(MapMemPage, link->win, &map);
+ }
+ /* If we got this far, we're cool! */
+ break;
+
+ next_entry:
+/* new in dummy.cs 2001/01/28 MN
+ if (link->io.NumPorts1)
+ CardServices(ReleaseIO, link->handle, &link->io);
+*/
+ CS_CHECK(GetNextTuple, handle, &tuple);
+ }
+
+ /*
+ Allocate an interrupt line. Note that this does not assign a
+ handler to the interrupt, unless the 'Handler' member of the
+ irq structure is initialized.
+ */
+ if (link->conf.Attributes & CONF_ENABLE_IRQ)
+ CS_CHECK(RequestIRQ, link->handle, &link->irq);
+
+ /*
+ This actually configures the PCMCIA socket -- setting up
+ the I/O windows and the interrupt mapping, and putting the
+ card and host interface into "Memory and IO" mode.
+ */
+ CS_CHECK(RequestConfiguration, link->handle, &link->conf);
+
+ /*
+ At this point, the dev_node_t structure(s) need to be
+ initialized and arranged in a linked list at link->dev.
+ */
+ sprintf(dev->node.dev_name, "sedlbauer");
+ dev->node.major = dev->node.minor = 0;
+ link->dev = &dev->node;
+
+ /* Finally, report what we've done */
+ printk(KERN_INFO "%s: index 0x%02x: Vcc %d.%d",
+ dev->node.dev_name, link->conf.ConfigIndex,
+ link->conf.Vcc/10, link->conf.Vcc%10);
+ if (link->conf.Vpp1)
+ printk(", Vpp %d.%d", link->conf.Vpp1/10, link->conf.Vpp1%10);
+ if (link->conf.Attributes & CONF_ENABLE_IRQ)
+ printk(", irq %d", link->irq.AssignedIRQ);
+ if (link->io.NumPorts1)
+ printk(", io 0x%04x-0x%04x", link->io.BasePort1,
+ link->io.BasePort1+link->io.NumPorts1-1);
+ if (link->io.NumPorts2)
+ printk(" & 0x%04x-0x%04x", link->io.BasePort2,
+ link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->win)
+ printk(", mem 0x%06lx-0x%06lx", req.Base,
+ req.Base+req.Size-1);
+ printk("\n");
+
+ link->state &= ~DEV_CONFIG_PENDING;
+
+ sedl_init_pcmcia(link->io.BasePort1, link->irq.AssignedIRQ,
+ &(((local_info_t*)link->priv)->stop),
+ protocol);
+
+ return;
+
+cs_failed:
+ cs_error(link->handle, last_fn, last_ret);
+ sedlbauer_release((u_long)link);
+
+} /* sedlbauer_config */
+
+/*======================================================================
+
+ After a card is removed, sedlbauer_release() will unregister the
+ device, and release the PCMCIA configuration. If the device is
+ still open, this will be postponed until it is closed.
+
+======================================================================*/
+
+static void sedlbauer_release(u_long arg)
+{
+ dev_link_t *link = (dev_link_t *)arg;
+
+ DEBUG(0, "sedlbauer_release(0x%p)\n", link);
+
+ /*
+ If the device is currently in use, we won't release until it
+ is actually closed, because until then, we can't be sure that
+ no one will try to access the device or its data structures.
+ */
+ if (link->open) {
+ DEBUG(1, "sedlbauer_cs: release postponed, '%s' still open\n",
+ link->dev->dev_name);
+ link->state |= DEV_STALE_CONFIG;
+ return;
+ }
+
+ /* Unlink the device chain */
+ link->dev = NULL;
+
+ /*
+ In a normal driver, additional code may be needed to release
+ other kernel data structures associated with this device.
+ */
+
+ /* Don't bother checking to see if these succeed or not */
+ if (link->win)
+ CardServices(ReleaseWindow, link->win);
+ CardServices(ReleaseConfiguration, link->handle);
+ if (link->io.NumPorts1)
+ CardServices(ReleaseIO, link->handle, &link->io);
+ if (link->irq.AssignedIRQ)
+ CardServices(ReleaseIRQ, link->handle, &link->irq);
+ link->state &= ~DEV_CONFIG;
+
+ if (link->state & DEV_STALE_LINK)
+ sedlbauer_detach(link);
+
+} /* sedlbauer_release */
+
+/*======================================================================
+
+ The card status event handler. Mostly, this schedules other
+ stuff to run after an event is received.
+
+ When a CARD_REMOVAL event is received, we immediately set a
+ private flag to block future accesses to this device. All the
+ functions that actually access the device should check this flag
+ to make sure the card is still present.
+
+======================================================================*/
+
+static int sedlbauer_event(event_t event, int priority,
+ event_callback_args_t *args)
+{
+ dev_link_t *link = args->client_data;
+ local_info_t *dev = link->priv;
+
+ DEBUG(1, "sedlbauer_event(0x%06x)\n", event);
+
+ switch (event) {
+ case CS_EVENT_CARD_REMOVAL:
+ link->state &= ~DEV_PRESENT;
+ if (link->state & DEV_CONFIG) {
+ ((local_info_t *)link->priv)->stop = 1;
+ mod_timer(&link->release, jiffies + HZ/20);
+ }
+ break;
+ case CS_EVENT_CARD_INSERTION:
+ link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
+ dev->bus = args->bus;
+ sedlbauer_config(link);
+ break;
+ case CS_EVENT_PM_SUSPEND:
+ link->state |= DEV_SUSPEND;
+ /* Fall through... */
+ case CS_EVENT_RESET_PHYSICAL:
+ /* Mark the device as stopped, to block IO until later */
+ dev->stop = 1;
+ if (link->state & DEV_CONFIG)
+ CardServices(ReleaseConfiguration, link->handle);
+ break;
+ case CS_EVENT_PM_RESUME:
+ link->state &= ~DEV_SUSPEND;
+ /* Fall through... */
+ case CS_EVENT_CARD_RESET:
+ if (link->state & DEV_CONFIG)
+ CardServices(RequestConfiguration, link->handle, &link->conf);
+ dev->stop = 0;
+ /*
+ In a normal driver, additional code may go here to restore
+ the device state and restart IO.
+ */
+ break;
+ }
+ return 0;
+} /* sedlbauer_event */
+
+/*====================================================================*/
+
+static int __init init_sedlbauer_cs(void)
+{
+ servinfo_t serv;
+ DEBUG(0, "%s\n", version);
+ CardServices(GetCardServicesInfo, &serv);
+ if (serv.Revision != CS_RELEASE_CODE) {
+ printk(KERN_NOTICE "sedlbauer_cs: Card Services release "
+ "does not match!\n");
+ return -1;
+ }
+ register_pccard_driver(&dev_info, &sedlbauer_attach, &sedlbauer_detach);
+ return 0;
+}
+
+static void __exit exit_sedlbauer_cs(void)
+{
+ DEBUG(0, "sedlbauer_cs: unloading\n");
+ unregister_pccard_driver(&dev_info);
+ while (dev_list != NULL) {
+ del_timer(&dev_list->release);
+ if (dev_list->state & DEV_CONFIG)
+ sedlbauer_release((u_long)dev_list);
+ sedlbauer_detach(dev_list);
+ }
+}
+
+module_init(init_sedlbauer_cs);
+module_exit(exit_sedlbauer_cs);
+
diff --git a/drivers/isdn/hisax/sportster.c b/drivers/isdn/hisax/sportster.c
index b72ff032c..01877caa3 100644
--- a/drivers/isdn/hisax/sportster.c
+++ b/drivers/isdn/hisax/sportster.c
@@ -1,4 +1,4 @@
-/* $Id: sportster.c,v 1.14 2000/11/24 17:05:38 kai Exp $
+/* $Id: sportster.c,v 1.14.6.1 2001/02/16 16:43:29 kai Exp $
*
* sportster.c low level stuff for USR Sportster internal TA
*
@@ -6,7 +6,7 @@
*
* Thanks to Christian "naddy" Weisgerber (3Com, US Robotics) for documentation
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -17,7 +17,7 @@
#include "isdnl1.h"
extern const char *CardType[];
-const char *sportster_revision = "$Revision: 1.14 $";
+const char *sportster_revision = "$Revision: 1.14.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/tei.c b/drivers/isdn/hisax/tei.c
index 41a7446b7..d4bab23fe 100644
--- a/drivers/isdn/hisax/tei.c
+++ b/drivers/isdn/hisax/tei.c
@@ -1,9 +1,9 @@
-/* $Id: tei.c,v 2.17 2000/11/24 17:05:38 kai Exp $
+/* $Id: tei.c,v 2.17.6.1 2001/02/16 16:43:29 kai Exp $
*
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
* For changes and modifications please read
* ../../../Documentation/isdn/HiSax.cert
*
@@ -17,7 +17,7 @@
#include <linux/init.h>
#include <linux/random.h>
-const char *tei_revision = "$Revision: 2.17 $";
+const char *tei_revision = "$Revision: 2.17.6.1 $";
#define ID_REQUEST 1
#define ID_ASSIGNED 2
diff --git a/drivers/isdn/hisax/teleint.c b/drivers/isdn/hisax/teleint.c
index eb65d3c85..dc42b6d5c 100644
--- a/drivers/isdn/hisax/teleint.c
+++ b/drivers/isdn/hisax/teleint.c
@@ -1,10 +1,10 @@
-/* $Id: teleint.c,v 1.14 2000/11/24 17:05:38 kai Exp $
+/* $Id: teleint.c,v 1.14.6.1 2001/02/16 16:43:29 kai Exp $
*
* teleint.c low level stuff for TeleInt isdn cards
*
* Author Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -17,7 +17,7 @@
extern const char *CardType[];
-const char *TeleInt_revision = "$Revision: 1.14 $";
+const char *TeleInt_revision = "$Revision: 1.14.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/teles0.c b/drivers/isdn/hisax/teles0.c
index efbd15266..643790e7a 100644
--- a/drivers/isdn/hisax/teles0.c
+++ b/drivers/isdn/hisax/teles0.c
@@ -1,4 +1,4 @@
-/* $Id: teles0.c,v 2.13 2000/11/24 17:05:38 kai Exp $
+/* $Id: teles0.c,v 2.13.6.1 2001/02/16 16:43:29 kai Exp $
*
* teles0.c low level stuff for Teles Memory IO isdn cards
* based on the teles driver from Jan den Ouden
@@ -9,7 +9,7 @@
* Fritz Elfert
* Beat Doebeli
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -21,7 +21,7 @@
extern const char *CardType[];
-const char *teles0_revision = "$Revision: 2.13 $";
+const char *teles0_revision = "$Revision: 2.13.6.1 $";
#define TELES_IOMEM_SIZE 0x400
#define byteout(addr,val) outb(val,addr)
diff --git a/drivers/isdn/hisax/teles3.c b/drivers/isdn/hisax/teles3.c
index 3fdcfb04d..6686f493b 100644
--- a/drivers/isdn/hisax/teles3.c
+++ b/drivers/isdn/hisax/teles3.c
@@ -1,4 +1,4 @@
-/* $Id: teles3.c,v 2.17 2000/11/24 17:05:38 kai Exp $
+/* $Id: teles3.c,v 2.17.6.1 2001/02/16 16:43:29 kai Exp $
*
* teles3.c low level stuff for Teles 16.3 & PNP isdn cards
*
@@ -10,7 +10,7 @@
* Fritz Elfert
* Beat Doebeli
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -21,7 +21,7 @@
#include "isdnl1.h"
extern const char *CardType[];
-const char *teles3_revision = "$Revision: 2.17 $";
+const char *teles3_revision = "$Revision: 2.17.6.1 $";
#define byteout(addr,val) outb(val,addr)
#define bytein(addr) inb(addr)
diff --git a/drivers/isdn/hisax/telespci.c b/drivers/isdn/hisax/telespci.c
index 83b640f8f..36c165c5f 100644
--- a/drivers/isdn/hisax/telespci.c
+++ b/drivers/isdn/hisax/telespci.c
@@ -1,11 +1,11 @@
-/* $Id: telespci.c,v 2.16.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: telespci.c,v 2.16.6.4 2001/02/16 16:43:29 kai Exp $
*
* telespci.c low level stuff for Teles PCI isdn cards
*
* Author Ton van Rosmalen
* Karsten Keil (keil@isdn4linux.de)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
#define __NO_VERSION__
@@ -18,7 +18,7 @@
#include <linux/pci.h>
extern const char *CardType[];
-const char *telespci_revision = "$Revision: 2.16.6.2 $";
+const char *telespci_revision = "$Revision: 2.16.6.4 $";
#define ZORAN_PO_RQ_PEN 0x02000000
#define ZORAN_PO_WR 0x00800000
diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c
index 9afb73f90..9629efb5f 100644
--- a/drivers/isdn/hisax/w6692.c
+++ b/drivers/isdn/hisax/w6692.c
@@ -1,11 +1,11 @@
-/* $Id: w6692.c,v 1.12.6.2 2000/11/29 16:00:14 kai Exp $
+/* $Id: w6692.c,v 1.12.6.4 2001/02/16 16:43:29 kai Exp $
*
* w6692.c Winbond W6692 specific routines
*
* Author Petr Novak <petr.novak@i.cz>
* (based on HiSax driver by Karsten Keil)
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
@@ -35,7 +35,7 @@ static const PCI_ENTRY id_list[] =
extern const char *CardType[];
-const char *w6692_revision = "$Revision: 1.12.6.2 $";
+const char *w6692_revision = "$Revision: 1.12.6.4 $";
#define DBUSY_TIMER_VALUE 80
diff --git a/drivers/isdn/hisax/w6692.h b/drivers/isdn/hisax/w6692.h
index 5c28d3bac..977ae341d 100644
--- a/drivers/isdn/hisax/w6692.h
+++ b/drivers/isdn/hisax/w6692.h
@@ -1,10 +1,10 @@
-/* $Id: w6692.h,v 1.2 2000/06/26 08:59:15 keil Exp $
+/* $Id: w6692.h,v 1.2.6.1 2001/02/16 16:43:29 kai Exp $
*
* w6692.h Winbond W6692 specific defines
*
* Author Petr Novak <petr.novak@i.cz>
*
- * This file is (c) under GNU PUBLIC LICENSE
+ * This file is (c) under GNU General Public License
*
*/
diff --git a/drivers/isdn/hysdn/boardergo.c b/drivers/isdn/hysdn/boardergo.c
index 92e96ec9b..0e4690e80 100644
--- a/drivers/isdn/hysdn/boardergo.c
+++ b/drivers/isdn/hysdn/boardergo.c
@@ -1,4 +1,4 @@
-/* $Id: boardergo.c,v 1.5.6.1 2000/12/10 22:01:04 kai Exp $
+/* $Id: boardergo.c,v 1.5.6.3 2001/03/13 16:17:09 kai Exp $
* Linux driver for HYSDN cards, specific routines for ergo type boards.
*
@@ -270,7 +270,7 @@ ergo_writebootimg(struct HYSDN_CARD *card, uchar * buf, ulong offs)
return (-ERR_BOOTIMG_FAIL);
}
} /* start_boot_img */
- return (0); /* successfull */
+ return (0); /* successful */
} /* ergo_writebootimg */
/********************************************************************************/
@@ -337,7 +337,7 @@ ergo_writebootseq(struct HYSDN_CARD *card, uchar * buf, int len)
/***********************************************************************************/
/* ergo_waitpofready waits for a maximum of 10 seconds for the completition of the */
-/* boot process. If the process has been successfull 0 is returned otherwise a */
+/* boot process. If the process has been successful 0 is returned otherwise a */
/* negative error code is returned. */
/***********************************************************************************/
static int
@@ -361,7 +361,7 @@ ergo_waitpofready(struct HYSDN_CARD *card)
(dpr->ToPcSize < MIN_RDY_MSG_SIZE) ||
(dpr->ToPcSize > MAX_RDY_MSG_SIZE) ||
((*(ulong *) dpr->ToPcBuf) != RDY_MAGIC))
- break; /* an error occured */
+ break; /* an error occurred */
/* Check for additional data delivered during SysReady */
msg_size = dpr->ToPcSize - RDY_MAGIC_SIZE;
diff --git a/drivers/isdn/hysdn/hycapi.c b/drivers/isdn/hysdn/hycapi.c
index ddc00823f..9ac8e8fe3 100644
--- a/drivers/isdn/hysdn/hycapi.c
+++ b/drivers/isdn/hysdn/hycapi.c
@@ -1,4 +1,4 @@
-/* $Id: hycapi.c,v 1.8 2000/11/22 17:13:13 kai Exp $
+/* $Id: hycapi.c,v 1.8.6.1 2001/02/16 16:43:30 kai Exp $
*
* Linux driver for HYSDN cards, CAPI2.0-Interface.
* written by Ulrich Albrecht (u.albrecht@hypercope.de) for Hypercope GmbH
@@ -41,7 +41,7 @@
#include "hysdn_defs.h"
#include <linux/kernelcapi.h>
-static char hycapi_revision[]="$Revision: 1.8 $";
+static char hycapi_revision[]="$Revision: 1.8.6.1 $";
typedef struct _hycapi_appl {
unsigned int ctrl_mask;
@@ -522,7 +522,7 @@ char *hycapi_procinfo(struct capi_ctr *ctrl)
/******************************************************************
hycapi_rx_capipkt
-Recieve a capi-message.
+Receive a capi-message.
All B3_DATA_IND are converted to 64K-extension compatible format.
New nccis are created if neccessary.
diff --git a/drivers/isdn/hysdn/hysdn_boot.c b/drivers/isdn/hysdn/hysdn_boot.c
index 2218cc982..8c5517e21 100644
--- a/drivers/isdn/hysdn/hysdn_boot.c
+++ b/drivers/isdn/hysdn/hysdn_boot.c
@@ -1,4 +1,4 @@
-/* $Id: hysdn_boot.c,v 1.4 2000/11/13 22:51:47 kai Exp $
+/* $Id: hysdn_boot.c,v 1.4.6.3 2001/03/13 16:17:09 kai Exp $
* Linux driver for HYSDN cards, specific routines for booting and pof handling.
*
@@ -49,7 +49,7 @@ struct boot_data {
uchar pof_state; /* actual state of read handler */
uchar is_crypted; /* card data is crypted */
int BufSize; /* actual number of bytes bufferd */
- int last_error; /* last occured error */
+ int last_error; /* last occurred error */
word pof_recid; /* actual pof recid */
ulong pof_reclen; /* total length of pof record data */
ulong pof_recoffset; /* actual offset inside pof record */
@@ -62,7 +62,7 @@ struct boot_data {
};
/*****************************************************/
-/* start decryption of sucessive POF file chuncks. */
+/* start decryption of successive POF file chuncks. */
/* */
/* to be called at start of POF file reading, */
/* before starting any decryption on any POF record. */
@@ -93,7 +93,7 @@ DecryptBuf(struct boot_data *boot, int cnt)
/********************************************************************************/
/* pof_handle_data executes the required actions dependant on the active record */
-/* id. If successfull 0 is returned, a negative value shows an error. */
+/* id. If successful 0 is returned, a negative value shows an error. */
/********************************************************************************/
static int
pof_handle_data(hysdn_card * card, int datlen)
@@ -182,7 +182,7 @@ pof_handle_data(hysdn_card * card, int datlen)
/* number of data bytes. The number delivered is additionally supplied for */
/* verification. The functions handles the data and returns the needed number */
/* of bytes for the next action. If the returned value is 0 or less an error */
-/* occured and booting must be aborted. */
+/* occurred and booting must be aborted. */
/******************************************************************************/
int
pof_write_buffer(hysdn_card * card, int datlen)
@@ -253,7 +253,7 @@ pof_write_buffer(hysdn_card * card, int datlen)
break;
}
if ((boot->last_error = pof_handle_data(card, datlen)) < 0)
- return (boot->last_error); /* an error occured */
+ return (boot->last_error); /* an error occurred */
boot->pof_recoffset += datlen;
if (boot->pof_recoffset >= boot->pof_reclen) {
boot->pof_state = POF_READ_TAG_HEAD; /* now start with single tags */
@@ -346,7 +346,7 @@ pof_write_close(hysdn_card * card)
/*********************************************************************************/
/* EvalSysrTokData checks additional records delivered with the Sysready Message */
-/* when POF has been booted. A return value of 0 is used if no error occured. */
+/* when POF has been booted. A return value of 0 is used if no error occurred. */
/*********************************************************************************/
int
EvalSysrTokData(hysdn_card * card, uchar * cp, int len)
diff --git a/drivers/isdn/hysdn/hysdn_init.c b/drivers/isdn/hysdn/hysdn_init.c
index 06282b96f..a676bfdd3 100644
--- a/drivers/isdn/hysdn/hysdn_init.c
+++ b/drivers/isdn/hysdn/hysdn_init.c
@@ -1,4 +1,4 @@
-/* $Id: hysdn_init.c,v 1.6.6.1 2000/11/28 12:02:47 kai Exp $
+/* $Id: hysdn_init.c,v 1.6.6.5 2001/02/16 16:43:30 kai Exp $
* Linux driver for HYSDN cards, init functions.
* written by Werner Cornelius (werner@titro.de) for Hypercope GmbH
@@ -32,7 +32,7 @@
#include "hysdn_defs.h"
-static char *hysdn_init_revision = "$Revision: 1.6.6.1 $";
+static char *hysdn_init_revision = "$Revision: 1.6.6.5 $";
int cardmax; /* number of found cards */
hysdn_card *card_root = NULL; /* pointer to first card */
@@ -89,6 +89,7 @@ search_cards(void)
akt_pcidev)) != NULL) {
if (pci_enable_device(akt_pcidev))
continue;
+
if (!(card = kmalloc(sizeof(hysdn_card), GFP_KERNEL))) {
printk(KERN_ERR "HYSDN: unable to alloc device mem \n");
return;
@@ -173,7 +174,6 @@ stop_cards(void)
/* image becomes smaller and the driver code is only loaded when needed. */
/* Additionally newer versions may be activated without rebooting. */
/****************************************************************************/
-#ifdef CONFIG_MODULES
/******************************************************/
/* extract revision number from string for log output */
@@ -197,12 +197,12 @@ hysdn_getrev(const char *revision)
/****************************************************************************/
/* init_module is called once when the module is loaded to do all necessary */
/* things like autodetect... */
-/* If the return value of this function is 0 the init has been successfull */
+/* If the return value of this function is 0 the init has been successful */
/* and the module is added to the list in /proc/modules, otherwise an error */
/* is assumed and the module will not be kept in memory. */
/****************************************************************************/
-int
-init_module(void)
+static int __init
+hysdn_init(void)
{
char tmp[50];
@@ -235,14 +235,14 @@ init_module(void)
/***********************************************************************/
/* cleanup_module is called when the module is released by the kernel. */
-/* The routine is only called if init_module has been successfull and */
+/* The routine is only called if init_module has been successful and */
/* the module counter has a value of 0. Otherwise this function will */
/* not be called. This function must release all resources still allo- */
/* cated as after the return from this function the module code will */
/* be removed from memory. */
/***********************************************************************/
-void
-cleanup_module(void)
+static void __exit
+hysdn_exit(void)
{
#ifdef CONFIG_HYSDN_CAPI
hysdn_card *card;
@@ -261,4 +261,5 @@ cleanup_module(void)
printk(KERN_NOTICE "HYSDN: module unloaded\n");
} /* cleanup_module */
-#endif /* CONFIG_MODULES */
+module_init(hysdn_init);
+module_exit(hysdn_exit);
diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/isdn/hysdn/hysdn_net.c
index cf250e48d..f63407538 100644
--- a/drivers/isdn/hysdn/hysdn_net.c
+++ b/drivers/isdn/hysdn/hysdn_net.c
@@ -1,4 +1,4 @@
-/* $Id: hysdn_net.c,v 1.8 2000/11/13 22:51:47 kai Exp $
+/* $Id: hysdn_net.c,v 1.8.6.1 2001/02/16 16:43:30 kai Exp $
* Linux driver for HYSDN cards, net (ethernet type) handling routines.
*
@@ -38,7 +38,7 @@
#include "hysdn_defs.h"
/* store the actual version for log reporting */
-char *hysdn_net_revision = "$Revision: 1.8 $";
+char *hysdn_net_revision = "$Revision: 1.8.6.1 $";
#define MAX_SKB_BUFFERS 20 /* number of buffers for keeping TX-data */
@@ -350,7 +350,7 @@ hysdn_net_release(hysdn_card * card)
if (card->debug_flags & LOG_NET_INIT)
hysdn_addlog(card, "network device deleted");
- return (0); /* always successfull */
+ return (0); /* always successful */
} /* hysdn_net_release */
/*****************************************************************************/
diff --git a/drivers/isdn/hysdn/hysdn_procconf.c b/drivers/isdn/hysdn/hysdn_procconf.c
index 2200f9906..ac9d77c14 100644
--- a/drivers/isdn/hysdn/hysdn_procconf.c
+++ b/drivers/isdn/hysdn/hysdn_procconf.c
@@ -1,4 +1,4 @@
-/* $Id: hysdn_procconf.c,v 1.8 2000/11/13 22:51:47 kai Exp $
+/* $Id: hysdn_procconf.c,v 1.8.6.1 2001/03/13 16:17:09 kai Exp $
* Linux driver for HYSDN cards, /proc/net filesystem dir and conf functions.
* written by Werner Cornelius (werner@titro.de) for Hypercope GmbH
@@ -31,7 +31,7 @@
#include "hysdn_defs.h"
-static char *hysdn_procconf_revision = "$Revision: 1.8 $";
+static char *hysdn_procconf_revision = "$Revision: 1.8.6.1 $";
#define INFO_OUT_LEN 80 /* length of info line including lf */
@@ -56,7 +56,7 @@ struct conf_writedata {
/***********************************************************************/
/* process_line parses one config line and transfers it to the card if */
/* necessary. */
-/* if the return value is negative an error occured. */
+/* if the return value is negative an error occurred. */
/***********************************************************************/
static int
process_line(struct conf_writedata *cnf)
@@ -130,7 +130,7 @@ hysdn_conf_write(struct file *file, const char *buf, size_t count, loff_t * off)
if (ch == 0x1A) {
/* we detected a pof file */
if ((cnf->needed_size = pof_write_open(cnf->card, &cnf->pof_buffer)) <= 0)
- return (cnf->needed_size); /* an error occured -> exit */
+ return (cnf->needed_size); /* an error occurred -> exit */
cnf->buf_size = 0; /* buffer is empty */
cnf->state = CONF_STATE_POF; /* new state */
} else {
@@ -158,7 +158,7 @@ hysdn_conf_write(struct file *file, const char *buf, size_t count, loff_t * off)
cnf->needed_size = pof_write_buffer(cnf->card, cnf->buf_size); /* write data */
if (cnf->needed_size <= 0) {
cnf->card->state = CARD_STATE_BOOTERR; /* show boot error */
- return (cnf->needed_size); /* an error occured */
+ return (cnf->needed_size); /* an error occurred */
}
cnf->buf_size = 0; /* buffer is empty again */
}
diff --git a/drivers/isdn/hysdn/hysdn_procfs.c b/drivers/isdn/hysdn/hysdn_procfs.c
index 864935625..6375a6537 100644
--- a/drivers/isdn/hysdn/hysdn_procfs.c
+++ b/drivers/isdn/hysdn/hysdn_procfs.c
@@ -139,7 +139,7 @@ hysdn_log_write(struct file *file, const char *buf, size_t count, loff_t * off)
return (-ESPIPE);
if ((retval = pof_boot_write(card, buf, count)) < 0)
- retval = -EFAULT; /* an error occured */
+ retval = -EFAULT; /* an error occurred */
return (retval);
} /* hysdn_log_write */
diff --git a/drivers/isdn/hysdn/hysdn_sched.c b/drivers/isdn/hysdn/hysdn_sched.c
index 276f44d24..1d463898a 100644
--- a/drivers/isdn/hysdn/hysdn_sched.c
+++ b/drivers/isdn/hysdn/hysdn_sched.c
@@ -1,4 +1,4 @@
-/* $Id: hysdn_sched.c,v 1.5 2000/11/22 17:13:13 kai Exp $
+/* $Id: hysdn_sched.c,v 1.5.6.1 2001/03/13 16:17:09 kai Exp $
* Linux driver for HYSDN cards, scheduler routines for handling exchange card <-> pc.
*
@@ -141,7 +141,7 @@ hysdn_sched_tx(hysdn_card * card, uchar * buf, word volatile *len, word volatile
/*****************************************************************************/
-/* send one config line to the card and return 0 if successfull, otherwise a */
+/* send one config line to the card and return 0 if successful, otherwise a */
/* negative error code. */
/* The function works with timeouts perhaps not giving the greatest speed */
/* sending the line, but this should be meaningless beacuse only some lines */
diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
index 180b3711a..af055e2ba 100644
--- a/drivers/isdn/icn/icn.c
+++ b/drivers/isdn/icn/icn.c
@@ -1,4 +1,4 @@
-/* $Id: icn.c,v 1.65 2000/11/13 22:51:48 kai Exp $
+/* $Id: icn.c,v 1.65.6.3 2001/02/16 16:43:31 kai Exp $
* ISDN low-level module for the ICN active ISDN-Card.
*
@@ -21,6 +21,7 @@
*/
#include "icn.h"
+#include <linux/init.h>
/*
* Verbose bootcode- and protocol-downloading.
@@ -33,7 +34,7 @@
#undef MAP_DEBUG
static char
-*revision = "$Revision: 1.65 $";
+*revision = "$Revision: 1.65.6.3 $";
static int icn_addcard(int, char *, char *);
@@ -867,7 +868,7 @@ icn_loadboot(u_char * buffer, icn_card * card)
SLEEP(1);
memcpy_toio(dev.shmem, codebuf, ICN_CODE_STAGE1); /* Copy code */
#ifdef BOOT_DEBUG
- printk(KERN_DEBUG "Bootloader transfered\n");
+ printk(KERN_DEBUG "Bootloader transferred\n");
#endif
if (card->doubleS0) {
SLEEP(1);
@@ -883,7 +884,7 @@ icn_loadboot(u_char * buffer, icn_card * card)
SLEEP(1);
memcpy_toio(dev.shmem, codebuf, ICN_CODE_STAGE1); /* Copy code */
#ifdef BOOT_DEBUG
- printk(KERN_DEBUG "Bootloader transfered\n");
+ printk(KERN_DEBUG "Bootloader transferred\n");
#endif
}
kfree(codebuf);
@@ -1638,10 +1639,7 @@ icn_addcard(int port, char *id1, char *id2)
return 0;
}
-#ifdef MODULE
-#define icn_init init_module
-#else
-#include <linux/init.h>
+#ifndef MODULE
static int __init
icn_setup(char *line)
{
@@ -1667,10 +1665,9 @@ icn_setup(char *line)
return(1);
}
__setup("icn=", icn_setup);
-#endif /* MODULES */
+#endif /* MODULE */
-int
-icn_init(void)
+static int __init icn_init(void)
{
char *p;
char rev[10];
@@ -1681,9 +1678,6 @@ icn_init(void)
dev.mcard = NULL;
dev.firstload = 1;
- /* No symbols to export, hide all symbols */
- EXPORT_NO_SYMBOLS;
-
if ((p = strchr(revision, ':'))) {
strcpy(rev, p + 1);
p = strchr(rev, '$');
@@ -1695,9 +1689,7 @@ icn_init(void)
return (icn_addcard(portbase, icn_id, icn_id2));
}
-#ifdef MODULE
-void
-cleanup_module(void)
+static void __exit icn_exit(void)
{
isdn_ctrl cmd;
icn_card *card = cards;
@@ -1731,4 +1723,6 @@ cleanup_module(void)
release_shmem((ulong) dev.shmem, 0x4000);
printk(KERN_NOTICE "ICN-ISDN-driver unloaded\n");
}
-#endif
+
+module_init(icn_init);
+module_exit(icn_exit);
diff --git a/drivers/isdn/icn/icn.h b/drivers/isdn/icn/icn.h
index fca9dc45d..0e5c4d81e 100644
--- a/drivers/isdn/icn/icn.h
+++ b/drivers/isdn/icn/icn.h
@@ -1,4 +1,4 @@
-/* $Id: icn.h,v 1.30 2000/11/13 22:51:48 kai Exp $
+/* $Id: icn.h,v 1.30.6.2 2001/02/16 16:43:31 kai Exp $
* ISDN lowlevel-module for the ICN active ISDN-Card.
*
@@ -217,9 +217,9 @@ static char *icn_id2 = "\0";
#ifdef MODULE
MODULE_AUTHOR("Fritz Elfert");
MODULE_PARM(portbase, "i");
-MODULE_PARM_DESC(portbase, "Port adress of first card");
+MODULE_PARM_DESC(portbase, "Port address of first card");
MODULE_PARM(membase, "i");
-MODULE_PARM_DESC(membase, "Shared memory adress of all cards");
+MODULE_PARM_DESC(membase, "Shared memory address of all cards");
MODULE_PARM(icn_id, "s");
MODULE_PARM_DESC(icn_id, "ID-String of first card");
MODULE_PARM(icn_id2, "s");
diff --git a/drivers/isdn/isdn_bsdcomp.c b/drivers/isdn/isdn_bsdcomp.c
index 57d99e883..22ec8bdec 100644
--- a/drivers/isdn/isdn_bsdcomp.c
+++ b/drivers/isdn/isdn_bsdcomp.c
@@ -47,12 +47,8 @@
* SUCH DAMAGE.
*/
-#ifndef MODULE
-#error This file must be compiled as a module.
-#endif
-
#include <linux/module.h>
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/types.h>
@@ -919,7 +915,7 @@ static struct isdn_ppp_compressor ippp_bsd_compress = {
* Module support routines
*************************************************************/
-int init_module(void)
+static int __init isdn_bsdcomp_init(void)
{
int answer = isdn_ppp_register_compressor (&ippp_bsd_compress);
if (answer == 0)
@@ -927,7 +923,10 @@ int init_module(void)
return answer;
}
-void cleanup_module(void)
+static void __exit isdn_bsdcomp_exit(void)
{
isdn_ppp_unregister_compressor (&ippp_bsd_compress);
}
+
+module_init(isdn_bsdcomp_init);
+module_exit(isdn_bsdcomp_exit);
diff --git a/drivers/isdn/isdn_cards.c b/drivers/isdn/isdn_cards.c
deleted file mode 100644
index 268711139..000000000
--- a/drivers/isdn/isdn_cards.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* $Id: isdn_cards.c,v 1.14 2000/11/23 20:45:14 kai Exp $
-
- * Linux ISDN subsystem, initialization for non-modularized drivers.
- *
- * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include <linux/config.h>
-
-#ifdef CONFIG_ISDN_DRV_ICN
-extern void icn_init(void);
-#endif
-
-#ifdef CONFIG_ISDN_DRV_HISAX
-extern void HiSax_init(void);
-#endif
-
-#ifdef CONFIG_ISDN_DRV_PCBIT
-extern void pcbit_init(void);
-#endif
-
-#if defined(CONFIG_ISDN_DRV_EICON_OLD) || defined(CONFIG_ISDN_DRV_EICON_DIVAS)
-extern void eicon_init(void);
-#endif
-
-#if CONFIG_ISDN_DRV_ACT2000
-extern void act2000_init(void);
-#endif
-
-void
-isdn_cards_init(void)
-{
-#if CONFIG_ISDN_DRV_ICN
- icn_init();
-#endif
-#ifdef CONFIG_ISDN_DRV_HISAX
- HiSax_init();
-#endif
-#if CONFIG_ISDN_DRV_PCBIT
- pcbit_init();
-#endif
-#if CONFIG_ISDN_DRV_ACT2000
- act2000_init();
-#endif
-#if defined(CONFIG_ISDN_DRV_EICON_OLD) || defined(CONFIG_ISDN_DRV_EICON_DIVAS)
- eicon_init();
-#endif
-}
diff --git a/drivers/isdn/isdn_cards.h b/drivers/isdn/isdn_cards.h
deleted file mode 100644
index 6122ac8c4..000000000
--- a/drivers/isdn/isdn_cards.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* $Id: isdn_cards.h,v 1.4 2000/05/11 22:29:20 kai Exp $
-
- * Linux ISDN subsystem, initialization for non-modularized drivers.
- *
- * Copyright 1994-1999 by Fritz Elfert (fritz@isdn4linux.de)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-extern void isdn_cards_init(void);
diff --git a/drivers/isdn/isdn_common.c b/drivers/isdn/isdn_common.c
index 21d789a82..e8bd98c5d 100644
--- a/drivers/isdn/isdn_common.c
+++ b/drivers/isdn/isdn_common.c
@@ -1,4 +1,4 @@
-/* $Id: isdn_common.c,v 1.114.6.6 2001/02/07 11:31:30 kai Exp $
+/* $Id: isdn_common.c,v 1.114.6.8 2001/02/16 16:43:22 kai Exp $
* Linux ISDN subsystem, common used functions (linklevel).
*
@@ -42,9 +42,8 @@
#endif
#ifdef CONFIG_ISDN_DIVERSION
#include <linux/isdn_divertif.h>
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
#include "isdn_v110.h"
-#include "isdn_cards.h"
#include <linux/devfs_fs_kernel.h>
/* Debugflags */
@@ -52,7 +51,7 @@
isdn_dev *dev;
-static char *isdn_revision = "$Revision: 1.114.6.6 $";
+static char *isdn_revision = "$Revision: 1.114.6.8 $";
extern char *isdn_net_revision;
extern char *isdn_tty_revision;
@@ -70,7 +69,7 @@ extern char *isdn_v110_revision;
#ifdef CONFIG_ISDN_DIVERSION
static isdn_divert_if *divert_if; /* = NULL */
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
static int isdn_writebuf_stub(int, int, const u_char *, int, int);
@@ -520,7 +519,7 @@ isdn_status_callback(isdn_ctrl * c)
if (divert_if)
if ((retval = divert_if->stat_callback(c)))
return(retval); /* processed */
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
if ((!retval) && (dev->drv[di]->flags & DRV_FLAG_REJBUS)) {
/* No tty responding */
cmd.driver = di;
@@ -593,7 +592,7 @@ isdn_status_callback(isdn_ctrl * c)
#ifdef CONFIG_ISDN_DIVERSION
if (divert_if)
divert_if->stat_callback(c);
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
break;
case ISDN_STAT_DISPLAY:
#ifdef ISDN_DEBUG_STATCALLB
@@ -603,7 +602,7 @@ isdn_status_callback(isdn_ctrl * c)
#ifdef CONFIG_ISDN_DIVERSION
if (divert_if)
divert_if->stat_callback(c);
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
break;
case ISDN_STAT_DCONN:
if (i < 0)
@@ -645,7 +644,7 @@ isdn_status_callback(isdn_ctrl * c)
#ifdef CONFIG_ISDN_DIVERSION
if (divert_if)
divert_if->stat_callback(c);
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
break;
break;
case ISDN_STAT_BCONN:
@@ -774,7 +773,7 @@ isdn_status_callback(isdn_ctrl * c)
case ISDN_STAT_REDIR:
if (divert_if)
return(divert_if->stat_callback(c));
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
default:
return -1;
}
@@ -2160,7 +2159,7 @@ int DIVERT_REG_NAME(isdn_divert_if *i_div)
EXPORT_SYMBOL(DIVERT_REG_NAME);
-#endif CONFIG_ISDN_DIVERSION
+#endif /* CONFIG_ISDN_DIVERSION */
EXPORT_SYMBOL(register_isdn);
@@ -2409,7 +2408,6 @@ static int __init isdn_init(void)
printk(" loaded\n");
#else
printk("\n");
- isdn_cards_init();
#endif
isdn_info_update();
return 0;
diff --git a/drivers/isdn/isdn_tty.c b/drivers/isdn/isdn_tty.c
index ccf9ecf35..5dba67d14 100644
--- a/drivers/isdn/isdn_tty.c
+++ b/drivers/isdn/isdn_tty.c
@@ -1,4 +1,4 @@
-/* $Id: isdn_tty.c,v 1.94 2000/11/25 17:00:59 kai Exp $
+/* $Id: isdn_tty.c,v 1.94.6.1 2001/02/16 16:43:22 kai Exp $
* Linux ISDN subsystem, tty functions and AT-command emulator (linklevel).
*
@@ -66,7 +66,7 @@ static int bit2si[8] =
static int si2bit[8] =
{4, 1, 4, 4, 4, 4, 4, 4};
-char *isdn_tty_revision = "$Revision: 1.94 $";
+char *isdn_tty_revision = "$Revision: 1.94.6.1 $";
/* isdn_tty_try_read() is called from within isdn_tty_rcv_skb()
@@ -3773,7 +3773,7 @@ isdn_tty_parse_at(modem_info * info)
sprintf(ds, "\r\n%d", info->emu.charge);
isdn_tty_at_cout(ds, info);
break;
- default:
+ default:;
}
break;
#ifdef DUMMY_HAYES_AT
diff --git a/drivers/isdn/isdn_v110.c b/drivers/isdn/isdn_v110.c
index 74bf85626..bb897f8c0 100644
--- a/drivers/isdn/isdn_v110.c
+++ b/drivers/isdn/isdn_v110.c
@@ -1,4 +1,4 @@
-/* $Id: isdn_v110.c,v 1.5.6.1 2001/01/23 17:45:02 kai Exp $
+/* $Id: isdn_v110.c,v 1.5.6.3 2001/02/16 16:43:23 kai Exp $
* Linux ISDN subsystem, V.110 related functions (linklevel).
*
@@ -30,7 +30,7 @@
#undef ISDN_V110_DEBUG
-char *isdn_v110_revision = "$Revision: 1.5.6.1 $";
+char *isdn_v110_revision = "$Revision: 1.5.6.3 $";
#define V110_38400 255
#define V110_19200 15
@@ -70,7 +70,7 @@ static unsigned char V110_OffMatrix_38400[] =
* FlipBits reorders sequences of keylen bits in one byte.
* E.g. source order 7654321 will be converted to 45670123 when keylen = 4,
* and to 67452301 when keylen = 2. This is necessary because ordering on
- * the isdn line is the the other way.
+ * the isdn line is the other way.
*/
static __inline unsigned char
FlipBits(unsigned char c, int keylen)
@@ -600,7 +600,7 @@ isdn_v110_stat_callback(int idx, isdn_ctrl * c)
case ISDN_PROTO_L2_V11038:
dev->v110[idx] = isdn_v110_open(V110_38400, hdrlen, maxsize);
break;
- default:
+ default:;
}
if ((v = dev->v110[idx])) {
while (v->SyncInit) {
diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c
index f91723bbe..3fb82bfa8 100644
--- a/drivers/isdn/isdnloop/isdnloop.c
+++ b/drivers/isdn/isdnloop/isdnloop.c
@@ -1,4 +1,4 @@
-/* $Id: isdnloop.c,v 1.11 2000/11/13 22:51:50 kai Exp $
+/* $Id: isdnloop.c,v 1.11.6.2 2001/02/16 16:43:32 kai Exp $
* ISDN low-level module implementing a dummy loop driver.
*
@@ -21,10 +21,12 @@
*/
#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/init.h>
#include "isdnloop.h"
static char
-*revision = "$Revision: 1.11 $";
+*revision = "$Revision: 1.11.6.2 $";
static int isdnloop_addcard(char *);
@@ -975,7 +977,7 @@ isdnloop_parse_cmd(isdnloop_card * card)
* user = flag: 1 = called form userlevel, 0 called from kernel.
* card = pointer to card struct.
* Return:
- * number of bytes transfered (currently always equals len).
+ * number of bytes transferred (currently always equals len).
*/
static int
isdnloop_writecmd(const u_char * buf, int len, int user, isdnloop_card * card)
@@ -1534,22 +1536,7 @@ isdnloop_addcard(char *id1)
return 0;
}
-#ifdef MODULE
-#define isdnloop_init init_module
-#else
-void
-isdnloop_setup(char *str, int *ints)
-{
- static char sid[20];
-
- if (strlen(str)) {
- strcpy(sid, str);
- isdnloop_id = sid;
- }
-}
-#endif
-
-int
+static int __init
isdnloop_init(void)
{
char *p;
@@ -1568,9 +1555,8 @@ isdnloop_init(void)
return (isdnloop_addcard(isdnloop_id));
}
-#ifdef MODULE
-void
-cleanup_module(void)
+static void __exit
+isdnloop_exit(void)
{
isdn_ctrl cmd;
isdnloop_card *card = cards;
@@ -1598,4 +1584,6 @@ cleanup_module(void)
}
printk(KERN_NOTICE "isdnloop-ISDN-driver unloaded\n");
}
-#endif
+
+module_init(isdnloop_init);
+module_exit(isdnloop_exit);
diff --git a/drivers/isdn/isdnloop/isdnloop.h b/drivers/isdn/isdnloop/isdnloop.h
index c2b005404..fe8a50110 100644
--- a/drivers/isdn/isdnloop/isdnloop.h
+++ b/drivers/isdn/isdnloop/isdnloop.h
@@ -1,4 +1,4 @@
-/* $Id: isdnloop.h,v 1.5 2000/11/13 22:51:50 kai Exp $
+/* $Id: isdnloop.h,v 1.5.6.1 2001/02/10 14:41:23 kai Exp $
* Loopback lowlevel module for testing of linklevel.
*
diff --git a/drivers/isdn/pcbit/callbacks.c b/drivers/isdn/pcbit/callbacks.c
index ed2ba29d9..ab67ae3f2 100644
--- a/drivers/isdn/pcbit/callbacks.c
+++ b/drivers/isdn/pcbit/callbacks.c
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/callbacks.h b/drivers/isdn/pcbit/callbacks.h
index 62e296dee..559b812e0 100644
--- a/drivers/isdn/pcbit/callbacks.h
+++ b/drivers/isdn/pcbit/callbacks.h
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/capi.c b/drivers/isdn/pcbit/capi.c
index 57b23498f..60057c9bd 100644
--- a/drivers/isdn/pcbit/capi.c
+++ b/drivers/isdn/pcbit/capi.c
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/capi.h b/drivers/isdn/pcbit/capi.h
index 10bb6bf91..0d960f83a 100644
--- a/drivers/isdn/pcbit/capi.h
+++ b/drivers/isdn/pcbit/capi.h
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/drv.c b/drivers/isdn/pcbit/drv.c
index 841a1dd8e..4c3502850 100644
--- a/drivers/isdn/pcbit/drv.c
+++ b/drivers/isdn/pcbit/drv.c
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/edss1.c b/drivers/isdn/pcbit/edss1.c
index 991f430e6..e005341fc 100644
--- a/drivers/isdn/pcbit/edss1.c
+++ b/drivers/isdn/pcbit/edss1.c
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/edss1.h b/drivers/isdn/pcbit/edss1.h
index 1bf554dd5..22befde38 100644
--- a/drivers/isdn/pcbit/edss1.h
+++ b/drivers/isdn/pcbit/edss1.h
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/layer2.c b/drivers/isdn/pcbit/layer2.c
index e80b12faf..e6e8108af 100644
--- a/drivers/isdn/pcbit/layer2.c
+++ b/drivers/isdn/pcbit/layer2.c
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/layer2.h b/drivers/isdn/pcbit/layer2.h
index f8984f990..6d3e6cb3c 100644
--- a/drivers/isdn/pcbit/layer2.h
+++ b/drivers/isdn/pcbit/layer2.h
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/pcbit/module.c b/drivers/isdn/pcbit/module.c
index c85f68688..88226f954 100644
--- a/drivers/isdn/pcbit/module.c
+++ b/drivers/isdn/pcbit/module.c
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
@@ -12,7 +12,7 @@
*/
#include <linux/module.h>
-
+#include <linux/init.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/kernel.h>
@@ -26,21 +26,12 @@ static int mem[MAX_PCBIT_CARDS] = {0, };
static int irq[MAX_PCBIT_CARDS] = {0, };
static int num_boards;
-struct pcbit_dev * dev_pcbit[MAX_PCBIT_CARDS] = {0, 0, 0, 0};
-
-int init_module(void);
-void cleanup_module(void);
+struct pcbit_dev * dev_pcbit[MAX_PCBIT_CARDS] = {0, };
extern void pcbit_terminate(int board);
extern int pcbit_init_dev(int board, int mem_base, int irq);
-#ifdef MODULE
-MODULE_PARM(mem, "1-" __MODULE_STRING(MAX_PCBIT_CARDS) "i");
-MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_PCBIT_CARDS) "i");
-#define pcbit_init init_module
-#endif
-
-int pcbit_init(void)
+static int __init pcbit_init(void)
{
int board;
@@ -83,15 +74,10 @@ int pcbit_init(void)
else
return -EIO;
}
-
- /* No symbols to export, hide all symbols */
- EXPORT_NO_SYMBOLS;
-
return 0;
}
-#ifdef MODULE
-void cleanup_module(void)
+static void __exit pcbit_exit(void)
{
int board;
@@ -101,9 +87,8 @@ void cleanup_module(void)
"PCBIT-D module unloaded\n");
}
-#else
+#ifndef MODULE
#define MAX_PARA (MAX_PCBIT_CARDS * 2)
-#include <linux/init.h>
static int __init pcbit_setup(char *line)
{
int i, j, argc;
@@ -134,5 +119,9 @@ static int __init pcbit_setup(char *line)
__setup("pcbit=", pcbit_setup);
#endif
+MODULE_PARM(mem, "1-" __MODULE_STRING(MAX_PCBIT_CARDS) "i");
+MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_PCBIT_CARDS) "i");
+module_init(pcbit_init);
+module_exit(pcbit_exit);
diff --git a/drivers/isdn/pcbit/pcbit.h b/drivers/isdn/pcbit/pcbit.h
index 99aab08cc..8ce921f07 100644
--- a/drivers/isdn/pcbit/pcbit.h
+++ b/drivers/isdn/pcbit/pcbit.h
@@ -4,7 +4,7 @@
* Written by Pedro Roque Marques (roque@di.fc.ul.pt)
*
* This software may be used and distributed according to the terms of
- * the GNU Public License, incorporated herein by reference.
+ * the GNU General Public License, incorporated herein by reference.
*/
/*
diff --git a/drivers/isdn/sc/init.c b/drivers/isdn/sc/init.c
index e379ae442..df7756435 100644
--- a/drivers/isdn/sc/init.c
+++ b/drivers/isdn/sc/init.c
@@ -1,3 +1,5 @@
+#include <linux/module.h>
+#include <linux/init.h>
#include "includes.h"
#include "hardware.h"
#include "card.h"
@@ -37,23 +39,12 @@ int irq_supported(int irq_x)
return 0;
}
-#ifdef MODULE
MODULE_PARM(io, "1-4i");
MODULE_PARM(irq, "1-4i");
MODULE_PARM(ram, "1-4i");
MODULE_PARM(do_reset, "i");
-#define init_sc init_module
-#else
-/*
-Initialization code for non-module version to be included
-void sc_setup(char *str, int *ints)
-{
-}
-*/
-#endif
-
-int init_sc(void)
+static int __init sc_init(void)
{
int b = -1;
int i, j;
@@ -410,8 +401,7 @@ int init_sc(void)
return status;
}
-#ifdef MODULE
-void cleanup_module(void)
+static void __exit sc_exit(void)
{
int i, j;
@@ -463,7 +453,6 @@ void cleanup_module(void)
}
pr_info("SpellCaster ISA ISDN Adapter Driver Unloaded.\n");
}
-#endif
int identify_board(unsigned long rambase, unsigned int iobase)
{
@@ -579,3 +568,6 @@ int identify_board(unsigned long rambase, unsigned int iobase)
return -1;
}
+
+module_init(sc_init);
+module_exit(sc_exit);
diff --git a/drivers/isdn/sc/interrupt.c b/drivers/isdn/sc/interrupt.c
index 25964752b..60279033c 100644
--- a/drivers/isdn/sc/interrupt.c
+++ b/drivers/isdn/sc/interrupt.c
@@ -1,5 +1,5 @@
/*
- * $Id: interrupt.c,v 1.4 1998/01/31 22:10:52 keil Exp $
+ * $Id: interrupt.c,v 1.4.8.1 2001/03/13 16:17:09 kai Exp $
* Copyright (C) 1996 SpellCaster Telecommunications Inc.
*
* This program is free software; you can redistribute it and/or modify
@@ -141,7 +141,7 @@ void interrupt_handler(int interrupt, void * cardptr, struct pt_regs *regs ) {
}
else if(callid>=0x0000 && callid<=0x7FFF)
{
- pr_debug("%s: Got Incomming Call\n", adapter[card]->devicename);
+ pr_debug("%s: Got Incoming Call\n", adapter[card]->devicename);
strcpy(setup.phone,&(rcvmsg.msg_data.byte_array[4]));
strcpy(setup.eazmsn,adapter[card]->channel[rcvmsg.phy_link_no-1].dn);
setup.si1 = 7;