2 * Copyright (C) 1996 Universidade de Lisboa
4 * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
6 * This software may be used and distributed according to the terms of
7 * the GNU Public License, incorporated herein by reference.
11 * PCBIT-D module support
14 #include <linux/module.h>
16 #include <linux/sched.h>
17 #include <linux/string.h>
18 #include <linux/kernel.h>
19 #include <linux/tqueue.h>
20 #include <linux/skbuff.h>
22 #include <linux/isdnif.h>
25 static int mem
[MAX_PCBIT_CARDS
] = {0, };
26 static int irq
[MAX_PCBIT_CARDS
] = {0, };
28 static int num_boards
;
29 struct pcbit_dev
* dev_pcbit
[MAX_PCBIT_CARDS
] = {0, 0, 0, 0};
31 int init_module(void);
32 void cleanup_module(void);
34 extern void pcbit_terminate(int board
);
35 extern int pcbit_init_dev(int board
, int mem_base
, int irq
);
38 MODULE_PARM(mem
, "1-" __MODULE_STRING(MAX_PCBIT_CARDS
) "i");
39 MODULE_PARM(irq
, "1-" __MODULE_STRING(MAX_PCBIT_CARDS
) "i");
40 #define pcbit_init init_module
50 "PCBIT-D device driver v 0.5 - "
51 "Copyright (C) 1996 Universidade de Lisboa\n");
55 for (board
=0; board
< MAX_PCBIT_CARDS
&& mem
[board
] && irq
[board
]; board
++)
62 if (pcbit_init_dev(board
, mem
[board
], irq
[board
]) == 0)
68 "pcbit_init failed for dev %d",
75 /* Hardcoded default settings detection */
80 "Trying to detect board using default settings\n");
81 if (pcbit_init_dev(0, 0xD0000, 5) == 0)
87 /* No symbols to export, hide all symbols */
94 void cleanup_module(void)
98 for (board
= 0; board
< num_boards
; board
++)
99 pcbit_terminate(board
);
101 "PCBIT-D module unloaded\n");
105 #ifdef COMPAT_HAS_NEW_SETUP
106 #define MAX_PARA (MAX_PCBIT_CARDS * 2)
107 #include <linux/init.h>
108 static int __init
pcbit_setup(char *line
)
112 int ints
[MAX_PARA
+1];
114 str
= get_options(line
, MAX_PARA
, ints
);
116 void pcbit_setup(char *str
, int *ints
)
124 while (argc
&& (i
<MAX_PCBIT_CARDS
)) {
138 #ifdef COMPAT_HAS_NEW_SETUP
141 __setup("pcbit=", pcbit_setup
);