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