Hi,

Here's a patch against 2.4.15-pre4 that fixes a bug that can occur the
second time a port is opened on the io_edgeport driver.  It also cleans
up the device entries for the driver, and adds a new device to the list
of devices the driver support.

thanks,

greg k-h



diff --minimal -Nru a/drivers/usb/serial/io_edgeport.c 
b/drivers/usb/serial/io_edgeport.c
--- a/drivers/usb/serial/io_edgeport.c  Tue Nov 13 15:36:13 2001
+++ b/drivers/usb/serial/io_edgeport.c  Tue Nov 13 15:36:13 2001
@@ -1018,6 +1018,7 @@
                        /* Like to use FILL_INT_URB, but we don't know wMaxPacketSize 
or bInterval, something to change for 2.5... */
                        edge_serial->interrupt_read_urb->complete = 
edge_interrupt_callback;
                        edge_serial->interrupt_read_urb->context = edge_serial;
+                       edge_serial->interrupt_read_urb->dev = serial->dev;
                        /* FILL_INT_URB(edge_serial->interrupt_read_urb, serial->dev, 
                                     usb_rcvintpipe (serial->dev, 
edge_serial->interrupt_in_endpoint),
                                     edge_serial->interrupt_in_buffer, 
edge_serial->interrupt_in_endpoint.wMaxPacketSize,
@@ -1028,8 +1029,9 @@
                        /* Like to use FILL_BULK_URB, but we don't know wMaxPacketSize 
or bInterval, something to change for 2.5... */
                        edge_serial->read_urb->complete = edge_bulk_in_callback;
                        edge_serial->read_urb->context = edge_serial;
+                       edge_serial->read_urb->dev = serial->dev;
                        /* FILL_BULK_URB(edge_serial->read_urb, serial->dev, 
-                                     usb_rcvbulkpipe (serial->dev, 
edge_serial->bulk_in_endpoint),
+                                     usb_rcvbulkpipe (serial->dev, 
+port->bulk_in_endpointAddress),
                                      edge_serial->bulk_in_buffer, 
edge_serial->bulk_in_endpoint->wMaxPacketSize,
                                      edge_bulk_in_callback, edge_serial);
                        */
@@ -1399,7 +1401,6 @@
        struct urb      *urb;
        unsigned char   *buffer;
        int             status;
-       unsigned long   flags;
        int             count;
        int             bytesleft;
        int             firsthalf;
@@ -1407,13 +1408,9 @@
 
        dbg(__FUNCTION__"(%d)", edge_port->port->number);
 
-       /* find our next free urb */    // ICK!!! FIXME!!!
-       save_flags(flags); cli();
-
        if (edge_port->write_in_progress ||
            !edge_port->open             ||
            (fifo->count == 0)) {
-               restore_flags(flags);
                dbg(__FUNCTION__"(%d) EXIT - fifo %d, PendingWrite = %d", 
edge_port->port->number, fifo->count, edge_port->write_in_progress);
                return;
        }
@@ -1426,14 +1423,12 @@
        //      it's better to wait for more credits so we can do a larger
        //      write.
        if (edge_port->txCredits < 
EDGE_FW_GET_TX_CREDITS_SEND_THRESHOLD(edge_port->maxTxCredits)) {
-               restore_flags(flags);
                dbg(__FUNCTION__"(%d) Not enough credit - fifo %d TxCredit %d", 
edge_port->port->number, fifo->count, edge_port->txCredits );
                return;
        }
 
        // lock this write
        edge_port->write_in_progress = TRUE;
-       restore_flags(flags);
 
        // get a pointer to the write_urb
        urb = edge_port->write_urb;
@@ -1833,7 +1828,6 @@
        struct async_icount cnow;
        struct async_icount cprev;
        struct serial_icounter_struct icount;
-       unsigned long flags;
 
 
        dbg(__FUNCTION__" - port %d, cmd = 0x%x", port->number, cmd);
@@ -1845,14 +1839,6 @@
                        return get_number_bytes_avail(edge_port, (unsigned int *) arg);
                        break;
 
-//             case TCGETS:            
-//                     dbg(__FUNCTION__" (%d) TCGETS",  port->number);
-//                     break;
-
-//             case TCSETS:            
-//                     dbg(__FUNCTION__" (%d) TCSETS",  port->number);
-//                     break;
-
                case TIOCSERGETLSR:
                        dbg(__FUNCTION__" (%d) TIOCSERGETLSR",  port->number);
                        return get_lsr_info(edge_port, (unsigned int *) arg);
@@ -1878,17 +1864,13 @@
 
                case TIOCMIWAIT:
                        dbg(__FUNCTION__" (%d) TIOCMIWAIT",  port->number);
-                       save_flags(flags); cli();
                        cprev = edge_port->icount;
-                       restore_flags(flags);
                        while (1) {
                                interruptible_sleep_on(&edge_port->delta_msr_wait);
                                /* see if a signal did it */
                                if (signal_pending(current))
                                        return -ERESTARTSYS;
-                               save_flags(flags); cli();
-                               cnow = edge_port->icount; /* atomic copy */
-                               restore_flags(flags);
+                               cnow = edge_port->icount;
                                if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr &&
                                    cnow.dcd == cprev.dcd && cnow.cts == cprev.cts)
                                        return -EIO; /* no change => error */
@@ -1904,9 +1886,7 @@
                        break;
 
                case TIOCGICOUNT:
-                       save_flags(flags); cli();
                        cnow = edge_port->icount;
-                       restore_flags(flags);
                        icount.cts = cnow.cts;
                        icount.dsr = cnow.dsr;
                        icount.rng = cnow.rng;
@@ -3054,22 +3034,10 @@
  ****************************************************************************/
 int __init edgeport_init(void)
 {
-       usb_serial_register (&edgeport_4_device);
-       usb_serial_register (&rapidport_4_device);
-       usb_serial_register (&edgeport_4t_device);
-       usb_serial_register (&edgeport_2_device);
-       usb_serial_register (&edgeport_4i_device);
-       usb_serial_register (&edgeport_2i_device);
-       usb_serial_register (&edgeport_prl_device);
-       usb_serial_register (&edgeport_421_device);
-       usb_serial_register (&edgeport_21_device);
-       usb_serial_register (&edgeport_8dual_device);
-       usb_serial_register (&edgeport_8_device);
-       usb_serial_register (&edgeport_2din_device);
-       usb_serial_register (&edgeport_4din_device);
-       usb_serial_register (&edgeport_16dual_device);
-       usb_serial_register (&edgeport_compat_id_device);
-       usb_serial_register (&edgeport_8i_device);
+       usb_serial_register (&edgeport_1port_device);
+       usb_serial_register (&edgeport_2port_device);
+       usb_serial_register (&edgeport_4port_device);
+       usb_serial_register (&edgeport_8port_device);
        info(DRIVER_DESC " " DRIVER_VERSION);
        return 0;
 }
@@ -3082,22 +3050,10 @@
  ****************************************************************************/
 void __exit edgeport_exit (void)
 {
-       usb_serial_deregister (&edgeport_4_device);
-       usb_serial_deregister (&rapidport_4_device);
-       usb_serial_deregister (&edgeport_4t_device);
-       usb_serial_deregister (&edgeport_2_device);
-       usb_serial_deregister (&edgeport_4i_device);
-       usb_serial_deregister (&edgeport_2i_device);
-       usb_serial_deregister (&edgeport_prl_device);
-       usb_serial_deregister (&edgeport_421_device);
-       usb_serial_deregister (&edgeport_21_device);
-       usb_serial_deregister (&edgeport_8dual_device);
-       usb_serial_deregister (&edgeport_8_device);
-       usb_serial_deregister (&edgeport_2din_device);
-       usb_serial_deregister (&edgeport_4din_device);
-       usb_serial_deregister (&edgeport_16dual_device);
-       usb_serial_deregister (&edgeport_compat_id_device);
-       usb_serial_deregister (&edgeport_8i_device);
+       usb_serial_deregister (&edgeport_1port_device);
+       usb_serial_deregister (&edgeport_2port_device);
+       usb_serial_deregister (&edgeport_4port_device);
+       usb_serial_deregister (&edgeport_8port_device);
 }
 
 module_init(edgeport_init);
diff --minimal -Nru a/drivers/usb/serial/io_tables.h b/drivers/usb/serial/io_tables.h
--- a/drivers/usb/serial/io_tables.h    Tue Nov 13 15:36:13 2001
+++ b/drivers/usb/serial/io_tables.h    Tue Nov 13 15:36:13 2001
@@ -11,29 +11,48 @@
  * 
  */
 
-static __devinitdata struct usb_device_id edgeport_4_id_table [] =     {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4)}, {} };
-static __devinitdata struct usb_device_id rapidport_4_id_table [] =    {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) }, {} };
-static __devinitdata struct usb_device_id edgeport_4t_id_table [] =    {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) }, {} };
-static __devinitdata struct usb_device_id edgeport_2_id_table [] =     {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) }, {} };
-static __devinitdata struct usb_device_id edgeport_4i_id_table [] =    {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) }, {} };
-static __devinitdata struct usb_device_id edgeport_2i_id_table [] =    {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) }, {} };
-static __devinitdata struct usb_device_id edgeport_prl_id_table [] =   {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_PARALLEL_PORT) }, {} };
-static __devinitdata struct usb_device_id edgeport_421_id_table [] =   {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) }, {} };
-static __devinitdata struct usb_device_id edgeport_21_id_table [] =    {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) }, {} };
-static __devinitdata struct usb_device_id edgeport_8dual_id_table [] = {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) }, {} };
-static __devinitdata struct usb_device_id edgeport_8_id_table [] =     {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) }, {} };
-static __devinitdata struct usb_device_id edgeport_2din_id_table [] =  {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) }, {} };
-static __devinitdata struct usb_device_id edgeport_4din_id_table [] =  {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) }, {} };
-static __devinitdata struct usb_device_id edgeport_16dual_id_table [] =        {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) }, {} };
-static __devinitdata struct usb_device_id edgeport_compat_id_table [] =        {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) }, {} };
-static __devinitdata struct usb_device_id edgeport_8i_id_table [] =    {{ 
USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) }, {} };
+#ifndef IO_TABLES_H
+#define IO_TABLES_H
 
+static __devinitdata struct usb_device_id edgeport_1port_id_table [] = {
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_PARALLEL_PORT) },
+       { }
+};
+
+static __devinitdata struct usb_device_id edgeport_2port_id_table [] = {
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) },
+       { }
+};
+
+static __devinitdata struct usb_device_id edgeport_4port_id_table [] = {
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) },
+       { }
+};
+
+static __devinitdata struct usb_device_id edgeport_8port_id_table [] = {
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) },
+       { }
+};
 
 /* Devices that this driver supports */
 static __devinitdata struct usb_device_id id_table_combined [] = {
        { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) },
        { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) },
        { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) },
+       { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
        { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) },
        { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) },
        { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) },
@@ -52,155 +71,9 @@
 
 MODULE_DEVICE_TABLE (usb, id_table_combined);
 
-
-/* build up the list of devices that this driver supports */
-struct usb_serial_device_type edgeport_4_device = {
-       name:                   "Edgeport 4",
-       id_table:               edgeport_4_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              4,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type rapidport_4_device = {
-       name:                   "Rapidport 4",
-       id_table:               rapidport_4_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              4,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_4t_device = {
-       name:                   "Edgeport 4t",
-       id_table:               edgeport_4t_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              4,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_2_device = {
-       name:                   "Edgeport 2",
-       id_table:               edgeport_2_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              2,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_4i_device = {
-       name:                   "Edgeport 4i",
-       id_table:               edgeport_4i_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              4,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_2i_device = {
-       name:                   "Edgeport 2i",
-       id_table:               edgeport_2i_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              2,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_prl_device = {
-       name:                   "Edgeport Parallel",
-       id_table:               edgeport_prl_id_table,
+static struct usb_serial_device_type edgeport_1port_device = {
+       name:                   "Edgeport 1 port adapter",
+       id_table:               edgeport_1port_id_table,
        needs_interrupt_in:     MUST_HAVE,
        needs_bulk_in:          MUST_HAVE,
        needs_bulk_out:         MUST_HAVE,
@@ -222,105 +95,9 @@
        break_ctl:              edge_break,
 };
 
-struct usb_serial_device_type edgeport_421_device = {
-       name:                   "Edgeport 421",
-       id_table:               edgeport_421_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              2,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_21_device = {
-       name:                   "Edgeport 21",
-       id_table:               edgeport_21_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              2,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_8dual_device = {
-       name:                   "Edgeport 8 dual cpu",
-       id_table:               edgeport_8dual_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              4,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_8_device = {
-       name:                   "Edgeport 8",
-       id_table:               edgeport_8_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              8,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_2din_device = {
-       name:                   "Edgeport 2din",
-       id_table:               edgeport_2din_id_table,
+static struct usb_serial_device_type edgeport_2port_device = {
+       name:                   "Edgeport 2 port adapter",
+       id_table:               edgeport_2port_id_table,
        needs_interrupt_in:     MUST_HAVE,
        needs_bulk_in:          MUST_HAVE,
        needs_bulk_out:         MUST_HAVE,
@@ -342,57 +119,9 @@
        break_ctl:              edge_break,
 };
 
-struct usb_serial_device_type edgeport_4din_device = {
-       name:                   "Edgeport 4din",
-       id_table:               edgeport_4din_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              4,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_16dual_device = {
-       name:                   "Edgeport 16 dual cpu",
-       id_table:               edgeport_16dual_id_table,
-       needs_interrupt_in:     MUST_HAVE,
-       needs_bulk_in:          MUST_HAVE,
-       needs_bulk_out:         MUST_HAVE,
-       num_interrupt_in:       1,
-       num_bulk_in:            1,
-       num_bulk_out:           1,
-       num_ports:              8,
-       open:                   edge_open,
-       close:                  edge_close,
-       throttle:               edge_throttle,
-       unthrottle:             edge_unthrottle,
-       startup:                edge_startup,
-       shutdown:               edge_shutdown,
-       ioctl:                  edge_ioctl,
-       set_termios:            edge_set_termios,
-       write:                  edge_write,
-       write_room:             edge_write_room,
-       chars_in_buffer:        edge_chars_in_buffer,
-       break_ctl:              edge_break,
-};
-
-struct usb_serial_device_type edgeport_compat_id_device = {
-       name:                   "Edgeport Compatible",
-       id_table:               edgeport_compat_id_table,
+static struct usb_serial_device_type edgeport_4port_device = {
+       name:                   "Edgeport 4 port adapter",
+       id_table:               edgeport_4port_id_table,
        needs_interrupt_in:     MUST_HAVE,
        needs_bulk_in:          MUST_HAVE,
        needs_bulk_out:         MUST_HAVE,
@@ -414,10 +143,9 @@
        break_ctl:              edge_break,
 };
 
-
-struct usb_serial_device_type edgeport_8i_device = {
-       name:                   "Edgeport 8i",
-       id_table:               edgeport_8i_id_table,
+static struct usb_serial_device_type edgeport_8port_device = {
+       name:                   "Edgeport 8 port adapter",
+       id_table:               edgeport_8port_id_table,
        needs_interrupt_in:     MUST_HAVE,
        needs_bulk_in:          MUST_HAVE,
        needs_bulk_out:         MUST_HAVE,
@@ -439,6 +167,5 @@
        break_ctl:              edge_break,
 };
 
-
-
+#endif
 
diff --minimal -Nru a/drivers/usb/serial/io_usbvend.h b/drivers/usb/serial/io_usbvend.h
--- a/drivers/usb/serial/io_usbvend.h   Tue Nov 13 15:36:12 2001
+++ b/drivers/usb/serial/io_usbvend.h   Tue Nov 13 15:36:12 2001
@@ -90,6 +90,7 @@
 #define ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU     0x012   // Half of an Edgeport/16 (the 
kind with 2 EP/8s)
 #define ION_DEVICE_ID_EDGEPORT_COMPATIBLE      0x013   // Edgeport Compatible, for 
NCR, Axiohm etc. testing
 #define ION_DEVICE_ID_EDGEPORT_8I              0x014   // Edgeport/8 RS422 
(single-CPU)
+#define ION_DEVICE_ID_MT4X56USB                        0x1403  // OEM device
 
 // These IDs are used by the Edgeport.exe program for uninstalling.
 // 

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to