# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.539 -> 1.540 # drivers/usb/serial/keyspan.c 1.25 -> 1.26 # drivers/usb/serial/keyspan.h 1.8 -> 1.9 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/04/22 greg@kroah.com 1.540 # USB keyspan driver # # general cleanups: # - removed commented out function prototypes # - removed duplicate function prototypes # - removed unneeded #include # - added named initializers # - merged lots of the individual device structures into general 1, 2, and 4 port structures. # -------------------------------------------- # diff -Nru a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c --- a/drivers/usb/serial/keyspan.c Mon Apr 22 14:28:14 2002 +++ b/drivers/usb/serial/keyspan.c Mon Apr 22 14:28:14 2002 @@ -175,13 +175,9 @@ static int __init keyspan_init (void) { usb_serial_register (&keyspan_pre_device); - usb_serial_register (&keyspan_usa18x_device); - usb_serial_register (&keyspan_usa19_device); - usb_serial_register (&keyspan_usa28_device); - usb_serial_register (&keyspan_usa28x_device); - usb_serial_register (&keyspan_usa28xa_device); - /* We don't need a separate entry for the usa28xb as it appears as a 28x anyway */ - usb_serial_register (&keyspan_usa49w_device); + usb_serial_register (&keyspan_1port_device); + usb_serial_register (&keyspan_2port_device); + usb_serial_register (&keyspan_4port_device); info(DRIVER_VERSION ":" DRIVER_DESC); @@ -191,13 +187,9 @@ static void __exit keyspan_exit (void) { usb_serial_deregister (&keyspan_pre_device); - usb_serial_deregister (&keyspan_usa18x_device); - usb_serial_deregister (&keyspan_usa19_device); - usb_serial_deregister (&keyspan_usa28_device); - usb_serial_deregister (&keyspan_usa28x_device); - usb_serial_deregister (&keyspan_usa28xa_device); - /* We don't need a separate entry for the usa28xb as it appears as a 28x anyway */ - usb_serial_deregister (&keyspan_usa49w_device); + usb_serial_deregister (&keyspan_1port_device); + usb_serial_deregister (&keyspan_2port_device); + usb_serial_deregister (&keyspan_4port_device); } module_init(keyspan_init); diff -Nru a/drivers/usb/serial/keyspan.h b/drivers/usb/serial/keyspan.h --- a/drivers/usb/serial/keyspan.h Mon Apr 22 14:28:14 2002 +++ b/drivers/usb/serial/keyspan.h Mon Apr 22 14:28:14 2002 @@ -33,9 +33,8 @@ #ifndef __LINUX_USB_SERIAL_KEYSPAN_H #define __LINUX_USB_SERIAL_KEYSPAN_H -#include - /* Function prototypes for Keyspan serial converter */ +/* Function prototypes for Keyspan serial converter */ static int keyspan_open (struct usb_serial_port *port, struct file *filp); static void keyspan_close (struct usb_serial_port *port, @@ -54,12 +53,7 @@ static void keyspan_send_setup (struct usb_serial_port *port, int reset_port); -#if 0 -static void keyspan_write_bulk_callback (struct urb *urb); -#endif -//static void keyspan_usa26_read_int_callback (struct urb *urb); -//static void keyspan_usa28_read_int_callback (struct urb *urb); static int keyspan_chars_in_buffer (struct usb_serial_port *port); static int keyspan_ioctl (struct usb_serial_port *port, struct file *file, @@ -82,7 +76,6 @@ static int keyspan_usa28_calc_baud (u32 baud_rate, u32 baudclk, u8 *rate_hi, u8 *rate_low, u8 *prescaler, int portnum); -//static void keyspan_usa19_setup_urbs (struct usb_serial *serial); static int keyspan_usa28_send_setup (struct usb_serial *serial, struct usb_serial_port *port, @@ -94,82 +87,80 @@ struct usb_serial_port *port, int reset_port); - /* Functions from usbserial.c for ezusb firmware handling */ -extern int ezusb_set_reset (struct usb_serial *serial, unsigned char reset_bit); -extern int ezusb_writememory (struct usb_serial *serial, int address, unsigned char *data, int length, __u8 bRequest); - /* Struct used for firmware - increased size of data section - to allow Keyspan's 'C' firmware struct to be used unmodified */ +/* Struct used for firmware - increased size of data section + to allow Keyspan's 'C' firmware struct to be used unmodified */ struct ezusb_hex_record { __u16 address; __u8 data_size; __u8 data[64]; }; - /* Conditionally include firmware images, if they aren't - included create a null pointer instead. Current - firmware images aren't optimised to remove duplicate - addresses in the image itself. */ + +/* Conditionally include firmware images, if they aren't + included create a null pointer instead. Current + firmware images aren't optimised to remove duplicate + addresses in the image itself. */ #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA28 - #include "keyspan_usa28_fw.h" + #include "keyspan_usa28_fw.h" #else static const struct ezusb_hex_record *keyspan_usa28_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA28X - #include "keyspan_usa28x_fw.h" + #include "keyspan_usa28x_fw.h" #else static const struct ezusb_hex_record *keyspan_usa28x_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA28XA - #include "keyspan_usa28xa_fw.h" + #include "keyspan_usa28xa_fw.h" #else static const struct ezusb_hex_record *keyspan_usa28xa_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA28XB - #include "keyspan_usa28xb_fw.h" + #include "keyspan_usa28xb_fw.h" #else static const struct ezusb_hex_record *keyspan_usa28xb_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA19 - #include "keyspan_usa19_fw.h" + #include "keyspan_usa19_fw.h" #else static const struct ezusb_hex_record *keyspan_usa19_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA19QI - #include "keyspan_usa19qi_fw.h" + #include "keyspan_usa19qi_fw.h" #else static const struct ezusb_hex_record *keyspan_usa19qi_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA19QW - #include "keyspan_usa19qw_fw.h" + #include "keyspan_usa19qw_fw.h" #else static const struct ezusb_hex_record *keyspan_usa19qw_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA18X - #include "keyspan_usa18x_fw.h" + #include "keyspan_usa18x_fw.h" #else static const struct ezusb_hex_record *keyspan_usa18x_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA19W - #include "keyspan_usa19w_fw.h" + #include "keyspan_usa19w_fw.h" #else static const struct ezusb_hex_record *keyspan_usa19w_firmware = NULL; #endif #ifdef CONFIG_USB_SERIAL_KEYSPAN_USA49W - #include "keyspan_usa49w_fw.h" + #include "keyspan_usa49w_fw.h" #else static const struct ezusb_hex_record *keyspan_usa49w_firmware = NULL; #endif - - /* Values used for baud rate calculation - device specific */ + +/* Values used for baud rate calculation - device specific */ #define KEYSPAN_INVALID_BAUD_RATE (-1) #define KEYSPAN_BAUD_RATE_OK (0) #define KEYSPAN_USA18X_BAUDCLK (12000000L) /* a guess */ @@ -179,15 +170,15 @@ #define KEYSPAN_USA28X_BAUDCLK (12000000L) #define KEYSPAN_USA49W_BAUDCLK (48000000L) - /* Some constants used to characterise each device. */ +/* Some constants used to characterise each device. */ #define KEYSPAN_MAX_NUM_PORTS (4) #define KEYSPAN_MAX_FLIPS (2) - - /* Device info for the Keyspan serial converter, used - by the overall usb-serial probe function */ + +/* Device info for the Keyspan serial converter, used + by the overall usb-serial probe function */ #define KEYSPAN_VENDOR_ID (0x06cd) - /* Product IDs for the eight products supported, pre-renumeration */ +/* Product IDs for the products supported, pre-renumeration */ #define keyspan_usa18x_pre_product_id 0x0105 #define keyspan_usa19_pre_product_id 0x0103 #define keyspan_usa19qi_pre_product_id 0x010b @@ -199,9 +190,9 @@ #define keyspan_usa28xb_pre_product_id 0x0113 #define keyspan_usa49w_pre_product_id 0x0109 - /* Product IDs post-renumeration. Note that the 28x and 28xb - have the same id's post-renumeration but behave identically - so it's not an issue. */ +/* Product IDs post-renumeration. Note that the 28x and 28xb + have the same id's post-renumeration but behave identically + so it's not an issue. */ #define keyspan_usa18x_product_id 0x0112 #define keyspan_usa19_product_id 0x0107 #define keyspan_usa19qi_product_id 0x010c @@ -217,7 +208,7 @@ struct keyspan_device_details { /* product ID value */ int product_id; - + enum {msg_usa26, msg_usa28, msg_usa49} msg_format; /* Number of physical ports */ @@ -239,168 +230,168 @@ /* Input acknowledge endpoints */ int inack_endpoints[KEYSPAN_MAX_NUM_PORTS]; - /* Output control endpoints */ + /* Output control endpoints */ int outcont_endpoints[KEYSPAN_MAX_NUM_PORTS]; /* Endpoint used for input status */ int instat_endpoint; /* Endpoint used for global control functions */ - int glocont_endpoint; - + int glocont_endpoint; + int (*calculate_baud_rate) (u32 baud_rate, u32 baudclk, u8 *rate_hi, u8 *rate_low, u8 *prescaler, int portnum); u32 baudclk; }; - /* Now for each device type we setup the device detail - structure with the appropriate information (provided - in Keyspan's documentation) */ +/* Now for each device type we setup the device detail + structure with the appropriate information (provided + in Keyspan's documentation) */ static const struct keyspan_device_details usa18x_device_details = { - keyspan_usa18x_product_id, /* product ID */ - msg_usa26, /* msg type*/ - 1, /* num ports */ - 0, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81}, /* per port indat */ - {0x01}, /* per port outdat */ - {0x85}, /* per port inack */ - {0x05}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa19w_calc_baud, /* calc baud rate */ - KEYSPAN_USA18X_BAUDCLK /* base baud clock */ + product_id: keyspan_usa18x_product_id, + msg_format: msg_usa26, + num_ports: 1, + indat_endp_flip: 0, + outdat_endp_flip: 1, + indat_endpoints: {0x81}, + outdat_endpoints: {0x01}, + inack_endpoints: {0x85}, + outcont_endpoints: {0x05}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa19w_calc_baud, + baudclk: KEYSPAN_USA18X_BAUDCLK, }; static const struct keyspan_device_details usa19_device_details = { - keyspan_usa19_product_id, /* product ID */ - msg_usa28, /* msg type*/ - 1, /* num ports */ - 1, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81}, /* per port indat */ - {0x01}, /* per port outdat */ - {0x83}, /* per port inack */ - {0x03}, /* per port outcont */ - 0x84, /* instat endpoint */ - -1, /* glocont endpoint */ - keyspan_usa19_calc_baud, /* calc baud rate */ - KEYSPAN_USA19_BAUDCLK /* base baud clock */ + product_id: keyspan_usa19_product_id, + msg_format: msg_usa28, + num_ports: 1, + indat_endp_flip: 1, + outdat_endp_flip: 1, + indat_endpoints: {0x81}, + outdat_endpoints: {0x01}, + inack_endpoints: {0x83}, + outcont_endpoints: {0x03}, + instat_endpoint: 0x84, + glocont_endpoint: -1, + calculate_baud_rate: keyspan_usa19_calc_baud, + baudclk: KEYSPAN_USA19_BAUDCLK, }; static const struct keyspan_device_details usa19qi_device_details = { - keyspan_usa19qi_product_id, /* product ID */ - msg_usa28, /* msg type*/ - 1, /* num ports */ - 1, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81}, /* per port indat */ - {0x01}, /* per port outdat */ - {0x83}, /* per port inack */ - {0x03}, /* per port outcont */ - 0x84, /* instat endpoint */ - -1, /* glocont endpoint */ - keyspan_usa28_calc_baud, /* calc baud rate */ - KEYSPAN_USA19_BAUDCLK /* base baud clock */ + product_id: keyspan_usa19qi_product_id, + msg_format: msg_usa28, + num_ports: 1, + indat_endp_flip: 1, + outdat_endp_flip: 1, + indat_endpoints: {0x81}, + outdat_endpoints: {0x01}, + inack_endpoints: {0x83}, + outcont_endpoints: {0x03}, + instat_endpoint: 0x84, + glocont_endpoint: -1, + calculate_baud_rate: keyspan_usa28_calc_baud, + baudclk: KEYSPAN_USA19_BAUDCLK, }; static const struct keyspan_device_details usa19qw_device_details = { - keyspan_usa19qw_product_id, /* product ID */ - msg_usa26, /* msg type*/ - 1, /* num ports */ - 0, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81}, /* per port indat */ - {0x01}, /* per port outdat */ - {0x85}, /* per port inack */ - {0x05}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa19w_calc_baud, /* calc baud rate */ - KEYSPAN_USA19W_BAUDCLK /* base baud clock */ + product_id: keyspan_usa19qw_product_id, + msg_format: msg_usa26, + num_ports: 1, + indat_endp_flip: 0, + outdat_endp_flip: 1, + indat_endpoints: {0x81}, + outdat_endpoints: {0x01}, + inack_endpoints: {0x85}, + outcont_endpoints: {0x05}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa19w_calc_baud, + baudclk: KEYSPAN_USA19W_BAUDCLK, }; static const struct keyspan_device_details usa19w_device_details = { - keyspan_usa19w_product_id, /* product ID */ - msg_usa26, /* msg type*/ - 1, /* num ports */ - 0, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81}, /* per port indat */ - {0x01}, /* per port outdat */ - {0x85}, /* per port inack */ - {0x05}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa19w_calc_baud, /* calc baud rate */ - KEYSPAN_USA19W_BAUDCLK /* base baud clock */ + product_id: keyspan_usa19w_product_id, + msg_format: msg_usa26, + num_ports: 1, + indat_endp_flip: 0, + outdat_endp_flip: 1, + indat_endpoints: {0x81}, + outdat_endpoints: {0x01}, + inack_endpoints: {0x85}, + outcont_endpoints: {0x05}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa19w_calc_baud, + baudclk: KEYSPAN_USA19W_BAUDCLK, }; static const struct keyspan_device_details usa28_device_details = { - keyspan_usa28_product_id, /* product ID */ - msg_usa28, /* msg type*/ - 2, /* num ports */ - 1, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81, 0x83}, /* per port indat */ - {0x01, 0x03}, /* per port outdat */ - {0x85, 0x86}, /* per port inack */ - {0x05, 0x06}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa28_calc_baud, /* calc baud rate */ - KEYSPAN_USA28_BAUDCLK + product_id: keyspan_usa28_product_id, + msg_format: msg_usa28, + num_ports: 2, + indat_endp_flip: 1, + outdat_endp_flip: 1, + indat_endpoints: {0x81, 0x83}, + outdat_endpoints: {0x01, 0x03}, + inack_endpoints: {0x85, 0x86}, + outcont_endpoints: {0x05, 0x06}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa28_calc_baud, + baudclk: KEYSPAN_USA28_BAUDCLK, }; static const struct keyspan_device_details usa28x_device_details = { - keyspan_usa28x_product_id, /* product ID */ - msg_usa26, /* msg type*/ - 2, /* num ports */ - 0, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81, 0x83}, /* per port indat */ - {0x01, 0x03}, /* per port outdat */ - {0x85, 0x86}, /* per port inack */ - {0x05, 0x06}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa19w_calc_baud, /* calc baud rate */ - KEYSPAN_USA28X_BAUDCLK + product_id: keyspan_usa28x_product_id, + msg_format: msg_usa26, + num_ports: 2, + indat_endp_flip: 0, + outdat_endp_flip: 1, + indat_endpoints: {0x81, 0x83}, + outdat_endpoints: {0x01, 0x03}, + inack_endpoints: {0x85, 0x86}, + outcont_endpoints: {0x05, 0x06}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa19w_calc_baud, + baudclk: KEYSPAN_USA28X_BAUDCLK, }; static const struct keyspan_device_details usa28xa_device_details = { - keyspan_usa28xa_product_id, /* product ID */ - msg_usa26, /* msg type*/ - 2, /* num ports */ - 0, /* indat endpoint flip */ - 1, /* outdat endpoint flip */ - {0x81, 0x83}, /* per port indat */ - {0x01, 0x03}, /* per port outdat */ - {0x85, 0x86}, /* per port inack */ - {0x05, 0x06}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa19w_calc_baud, /* calc baud rate */ - KEYSPAN_USA28X_BAUDCLK + product_id: keyspan_usa28xa_product_id, + msg_format: msg_usa26, + num_ports: 2, + indat_endp_flip: 0, + outdat_endp_flip: 1, + indat_endpoints: {0x81, 0x83}, + outdat_endpoints: {0x01, 0x03}, + inack_endpoints: {0x85, 0x86}, + outcont_endpoints: {0x05, 0x06}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa19w_calc_baud, + baudclk: KEYSPAN_USA28X_BAUDCLK, }; - /* We don't need a separate entry for the usa28xb as it appears as a 28x anyway */ +/* We don't need a separate entry for the usa28xb as it appears as a 28x anyway */ static const struct keyspan_device_details usa49w_device_details = { - keyspan_usa49w_product_id, /* product ID */ - msg_usa49, /* msg type*/ - 4, /* num ports */ - 0, /* indat endpoint flip */ - 0, /* outdat endpoint flip */ - { 0x81, 0x82, 0x83, 0x84}, /* per port indat */ - { 0x01, 0x02, 0x03, 0x04}, /* per port outdat */ - {-1, -1, -1, -1}, /* per port inack */ - {-1, -1, -1, -1}, /* per port outcont */ - 0x87, /* instat endpoint */ - 0x07, /* glocont endpoint */ - keyspan_usa19w_calc_baud, /* calc baud rate */ - KEYSPAN_USA49W_BAUDCLK + product_id: keyspan_usa49w_product_id, + msg_format: msg_usa49, + num_ports: 4, + indat_endp_flip: 0, + outdat_endp_flip: 0, + indat_endpoints: {0x81, 0x82, 0x83, 0x84}, + outdat_endpoints: {0x01, 0x02, 0x03, 0x04}, + inack_endpoints: {-1, -1, -1, -1}, + outcont_endpoints: {-1, -1, -1, -1}, + instat_endpoint: 0x87, + glocont_endpoint: 0x07, + calculate_baud_rate: keyspan_usa19w_calc_baud, + baudclk: KEYSPAN_USA49W_BAUDCLK, }; static const struct keyspan_device_details *keyspan_devices[] = { @@ -414,7 +405,7 @@ &usa28xa_device_details, /* 28xb not required as it renumerates as a 28x */ &usa49w_device_details, - NULL + NULL, }; static __devinitdata struct usb_device_id keyspan_ids_combined[] = { @@ -443,10 +434,6 @@ MODULE_DEVICE_TABLE(usb, keyspan_ids_combined); -/* Eventually, we will not need separate id tables for each USB - ID pattern. But, for now, it looks like we need slightly different - behavior for each match. */ - /* usb_device_id table for the pre-firmware download keyspan devices */ static __devinitdata struct usb_device_id keyspan_pre_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa18x_pre_product_id) }, @@ -462,12 +449,8 @@ { } /* Terminating entry */ }; -static __devinitdata struct usb_device_id keyspan_usa18x_ids[] = { +static __devinitdata struct usb_device_id keyspan_1port_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa18x_product_id) }, - { } /* Terminating entry */ -}; - -static __devinitdata struct usb_device_id keyspan_usa19_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa19_product_id) }, { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa19qi_product_id) }, { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa19qw_product_id) }, @@ -475,27 +458,19 @@ { } /* Terminating entry */ }; -static __devinitdata struct usb_device_id keyspan_usa28_ids[] = { +static __devinitdata struct usb_device_id keyspan_2port_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28_product_id) }, - { } /* Terminating entry */ -}; - -static __devinitdata struct usb_device_id keyspan_usa28x_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28x_product_id) }, - { } /* Terminating entry */ -}; - -static __devinitdata struct usb_device_id keyspan_usa28xa_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28xa_product_id) }, { } /* Terminating entry */ }; -static __devinitdata struct usb_device_id keyspan_usa49w_ids[] = { +static __devinitdata struct usb_device_id keyspan_4port_ids[] = { { USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa49w_product_id) }, { } /* Terminating entry */ }; - /* Structs for the devices, pre and post renumeration. */ +/* Structs for the devices, pre and post renumeration. */ static struct usb_serial_device_type keyspan_pre_device = { owner: THIS_MODULE, name: "Keyspan - (without firmware)", @@ -504,36 +479,13 @@ num_bulk_in: NUM_DONT_CARE, num_bulk_out: NUM_DONT_CARE, num_ports: 1, - startup: keyspan_fake_startup -}; - - -static struct usb_serial_device_type keyspan_usa18x_device = { - owner: THIS_MODULE, - name: "Keyspan USA18X", - id_table: keyspan_usa18x_ids, - num_interrupt_in: NUM_DONT_CARE, - num_bulk_in: 3, - num_bulk_out: 4, - num_ports: 1, - open: keyspan_open, - close: keyspan_close, - write: keyspan_write, - write_room: keyspan_write_room, - chars_in_buffer: keyspan_chars_in_buffer, - throttle: keyspan_rx_throttle, - unthrottle: keyspan_rx_unthrottle, - ioctl: keyspan_ioctl, - set_termios: keyspan_set_termios, - break_ctl: keyspan_break_ctl, - startup: keyspan_startup, - shutdown: keyspan_shutdown, + startup: keyspan_fake_startup, }; -static struct usb_serial_device_type keyspan_usa19_device = { +static struct usb_serial_device_type keyspan_1port_device = { owner: THIS_MODULE, - name: "Keyspan USA19", - id_table: keyspan_usa19_ids, + name: "Keyspan 1 port adapter", + id_table: keyspan_1port_ids, num_interrupt_in: NUM_DONT_CARE, num_bulk_in: 3, num_bulk_out: 4, @@ -552,56 +504,10 @@ shutdown: keyspan_shutdown, }; - -static struct usb_serial_device_type keyspan_usa28_device = { - owner: THIS_MODULE, - name: "Keyspan USA28", - id_table: keyspan_usa28_ids, - num_interrupt_in: NUM_DONT_CARE, - num_bulk_in: NUM_DONT_CARE, - num_bulk_out: NUM_DONT_CARE, - num_ports: 2, - open: keyspan_open, - close: keyspan_close, - write: keyspan_write, - write_room: keyspan_write_room, - chars_in_buffer: keyspan_chars_in_buffer, - throttle: keyspan_rx_throttle, - unthrottle: keyspan_rx_unthrottle, - ioctl: keyspan_ioctl, - set_termios: keyspan_set_termios, - startup: keyspan_startup, - shutdown: keyspan_shutdown, -}; - - -static struct usb_serial_device_type keyspan_usa28x_device = { - owner: THIS_MODULE, - name: "Keyspan USA28X/XB", - id_table: keyspan_usa28x_ids, - num_interrupt_in: NUM_DONT_CARE, - num_bulk_in: NUM_DONT_CARE, - num_bulk_out: NUM_DONT_CARE, - num_ports: 2, - open: keyspan_open, - close: keyspan_close, - write: keyspan_write, - write_room: keyspan_write_room, - chars_in_buffer: keyspan_chars_in_buffer, - throttle: keyspan_rx_throttle, - unthrottle: keyspan_rx_unthrottle, - ioctl: keyspan_ioctl, - set_termios: keyspan_set_termios, - break_ctl: keyspan_break_ctl, - startup: keyspan_startup, - shutdown: keyspan_shutdown, - -}; - -static struct usb_serial_device_type keyspan_usa28xa_device = { +static struct usb_serial_device_type keyspan_2port_device = { owner: THIS_MODULE, - name: "Keyspan USA28XA", - id_table: keyspan_usa28xa_ids, + name: "Keyspan 2 port adapter", + id_table: keyspan_2port_ids, num_interrupt_in: NUM_DONT_CARE, num_bulk_in: NUM_DONT_CARE, num_bulk_out: NUM_DONT_CARE, @@ -615,16 +521,14 @@ unthrottle: keyspan_rx_unthrottle, ioctl: keyspan_ioctl, set_termios: keyspan_set_termios, - break_ctl: keyspan_break_ctl, startup: keyspan_startup, shutdown: keyspan_shutdown, - }; -static struct usb_serial_device_type keyspan_usa49w_device = { +static struct usb_serial_device_type keyspan_4port_device = { owner: THIS_MODULE, - name: "Keyspan USA49W", - id_table: keyspan_usa49w_ids, + name: "Keyspan 4 port adapter", + id_table: keyspan_4port_ids, num_interrupt_in: NUM_DONT_CARE, num_bulk_in: 5, num_bulk_out: 5, @@ -642,6 +546,5 @@ startup: keyspan_startup, shutdown: keyspan_shutdown, }; - #endif