# 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      [EMAIL PROTECTED]  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 <linux/config.h>
 
-       /* 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

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

Reply via email to