|
@@ -208,6 +208,7 @@ static int DumpFifoBuffer( char __user *, int);
|
|
|
|
|
|
static void ip2_init_board(int, const struct firmware *);
|
|
|
static unsigned short find_eisa_board(int);
|
|
|
+static int ip2_setup(char *str);
|
|
|
|
|
|
/***************/
|
|
|
/* Static Data */
|
|
@@ -285,7 +286,10 @@ MODULE_AUTHOR("Doug McNash");
|
|
|
MODULE_DESCRIPTION("Computone IntelliPort Plus Driver");
|
|
|
MODULE_LICENSE("GPL");
|
|
|
|
|
|
+#define MAX_CMD_STR 50
|
|
|
+
|
|
|
static int poll_only;
|
|
|
+static char cmd[MAX_CMD_STR];
|
|
|
|
|
|
static int Eisa_irq;
|
|
|
static int Eisa_slot;
|
|
@@ -309,6 +313,8 @@ module_param_array(io, int, NULL, 0);
|
|
|
MODULE_PARM_DESC(io, "I/O ports for IntelliPort Cards");
|
|
|
module_param(poll_only, bool, 0);
|
|
|
MODULE_PARM_DESC(poll_only, "Do not use card interrupts");
|
|
|
+module_param_string(ip2, cmd, MAX_CMD_STR, 0);
|
|
|
+MODULE_PARM_DESC(ip2, "Contains module parameter passed with 'ip2='");
|
|
|
|
|
|
/* for sysfs class support */
|
|
|
static struct class *ip2_class;
|
|
@@ -538,12 +544,19 @@ static int __init ip2_loadmain(void)
|
|
|
i2eBordStrPtr pB = NULL;
|
|
|
int rc = -1;
|
|
|
const struct firmware *fw = NULL;
|
|
|
+ char *str;
|
|
|
+
|
|
|
+ str = cmd;
|
|
|
|
|
|
if (poll_only) {
|
|
|
/* Hard lock the interrupts to zero */
|
|
|
irq[0] = irq[1] = irq[2] = irq[3] = poll_only = 0;
|
|
|
}
|
|
|
|
|
|
+ /* Check module parameter with 'ip2=' has been passed or not */
|
|
|
+ if (!poll_only && (!strncmp(str, "ip2=", 4)))
|
|
|
+ ip2_setup(str);
|
|
|
+
|
|
|
ip2trace(ITRC_NO_PORT, ITRC_INIT, ITRC_ENTER, 0);
|
|
|
|
|
|
/* process command line arguments to modprobe or
|