|
@@ -46,23 +46,20 @@
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/uaccess.h>
|
|
|
|
|
|
-#define MOXA_VERSION "5.1k"
|
|
|
+#define MOXA_VERSION "5.1k"
|
|
|
|
|
|
-#define MOXAMAJOR 172
|
|
|
-#define MOXACUMAJOR 173
|
|
|
+#define MOXAMAJOR 172
|
|
|
+#define MOXACUMAJOR 173
|
|
|
|
|
|
-#define put_to_user(arg1, arg2) put_user(arg1, (unsigned long *)arg2)
|
|
|
-#define get_from_user(arg1, arg2) get_user(arg1, (unsigned int *)arg2)
|
|
|
-
|
|
|
-#define MAX_BOARDS 4 /* Don't change this value */
|
|
|
+#define MAX_BOARDS 4 /* Don't change this value */
|
|
|
#define MAX_PORTS_PER_BOARD 32 /* Don't change this value */
|
|
|
-#define MAX_PORTS 128 /* Don't change this value */
|
|
|
+#define MAX_PORTS (MAX_BOARDS * MAX_PORTS_PER_BOARD)
|
|
|
|
|
|
/*
|
|
|
* Define the Moxa PCI vendor and device IDs.
|
|
|
*/
|
|
|
-#define MOXA_BUS_TYPE_ISA 0
|
|
|
-#define MOXA_BUS_TYPE_PCI 1
|
|
|
+#define MOXA_BUS_TYPE_ISA 0
|
|
|
+#define MOXA_BUS_TYPE_PCI 1
|
|
|
|
|
|
enum {
|
|
|
MOXA_BOARD_C218_PCI = 1,
|
|
@@ -157,13 +154,8 @@ static struct mxser_mstatus GMStatus[MAX_PORTS];
|
|
|
|
|
|
#define SERIAL_DO_RESTART
|
|
|
|
|
|
-
|
|
|
-#define SERIAL_TYPE_NORMAL 1
|
|
|
-
|
|
|
#define WAKEUP_CHARS 256
|
|
|
|
|
|
-#define PORTNO(x) ((x)->index)
|
|
|
-
|
|
|
static int verbose = 0;
|
|
|
static int ttymajor = MOXAMAJOR;
|
|
|
/* Variables for insmod */
|
|
@@ -461,7 +453,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp)
|
|
|
int port;
|
|
|
int retval;
|
|
|
|
|
|
- port = PORTNO(tty);
|
|
|
+ port = tty->index;
|
|
|
if (port == MAX_PORTS) {
|
|
|
return (0);
|
|
|
}
|
|
@@ -499,7 +491,7 @@ static void moxa_close(struct tty_struct *tty, struct file *filp)
|
|
|
struct moxa_str *ch;
|
|
|
int port;
|
|
|
|
|
|
- port = PORTNO(tty);
|
|
|
+ port = tty->index;
|
|
|
if (port == MAX_PORTS) {
|
|
|
return;
|
|
|
}
|
|
@@ -663,7 +655,7 @@ static int moxa_tiocmget(struct tty_struct *tty, struct file *file)
|
|
|
int port;
|
|
|
int flag = 0, dtr, rts;
|
|
|
|
|
|
- port = PORTNO(tty);
|
|
|
+ port = tty->index;
|
|
|
if ((port != MAX_PORTS) && (!ch))
|
|
|
return (-EINVAL);
|
|
|
|
|
@@ -689,7 +681,7 @@ static int moxa_tiocmset(struct tty_struct *tty, struct file *file,
|
|
|
int port;
|
|
|
int dtr, rts;
|
|
|
|
|
|
- port = PORTNO(tty);
|
|
|
+ port = tty->index;
|
|
|
if ((port != MAX_PORTS) && (!ch))
|
|
|
return (-EINVAL);
|
|
|
|
|
@@ -714,7 +706,7 @@ static int moxa_ioctl(struct tty_struct *tty, struct file *file,
|
|
|
void __user *argp = (void __user *)arg;
|
|
|
int retval;
|
|
|
|
|
|
- port = PORTNO(tty);
|
|
|
+ port = tty->index;
|
|
|
if ((port != MAX_PORTS) && (!ch))
|
|
|
return (-EINVAL);
|
|
|
|
|
@@ -1361,9 +1353,6 @@ static void receive_data(struct moxa_str *ch)
|
|
|
/*
|
|
|
* Query
|
|
|
*/
|
|
|
-#define QueryPort MAX_PORTS
|
|
|
-
|
|
|
-
|
|
|
|
|
|
struct mon_str {
|
|
|
int tick;
|
|
@@ -1475,7 +1464,7 @@ int MoxaDriverIoctl(unsigned int cmd, unsigned long arg, int port)
|
|
|
int MoxaPortTxQueue(int), MoxaPortRxQueue(int);
|
|
|
void __user *argp = (void __user *)arg;
|
|
|
|
|
|
- if (port == QueryPort) {
|
|
|
+ if (port == MAX_PORTS) {
|
|
|
if ((cmd != MOXA_GET_CONF) && (cmd != MOXA_INIT_DRIVER) &&
|
|
|
(cmd != MOXA_LOAD_BIOS) && (cmd != MOXA_FIND_BOARD) && (cmd != MOXA_LOAD_C320B) &&
|
|
|
(cmd != MOXA_LOAD_CODE) && (cmd != MOXA_GETDATACOUNT) &&
|