Hi,
Here's a patch against 2.5.3-pre1 for the USB serial keyspan driver. It
removes lots of unneeded usb_serial_device_type structures for devices
that do not yet have the firmware downloaded to them yet.
thanks,
greg k-h
diff -Nru a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c
--- a/drivers/usb/serial/keyspan.c Wed Jan 16 09:57:46 2002
+++ b/drivers/usb/serial/keyspan.c Wed Jan 16 09:57:46 2002
@@ -178,15 +178,7 @@
/* Functions used by new usb-serial code. */
static int __init keyspan_init (void)
{
- usb_serial_register (&keyspan_usa18x_pre_device);
- usb_serial_register (&keyspan_usa19_pre_device);
- usb_serial_register (&keyspan_usa19w_pre_device);
- usb_serial_register (&keyspan_usa28_pre_device);
- usb_serial_register (&keyspan_usa28x_pre_device);
- usb_serial_register (&keyspan_usa28xa_pre_device);
- usb_serial_register (&keyspan_usa28xb_pre_device);
- usb_serial_register (&keyspan_usa49w_pre_device);
-
+ usb_serial_register (&keyspan_pre_device);
usb_serial_register (&keyspan_usa18x_device);
usb_serial_register (&keyspan_usa19_device);
usb_serial_register (&keyspan_usa19w_device);
@@ -203,15 +195,7 @@
static void __exit keyspan_exit (void)
{
- usb_serial_deregister (&keyspan_usa18x_pre_device);
- usb_serial_deregister (&keyspan_usa19_pre_device);
- usb_serial_deregister (&keyspan_usa19w_pre_device);
- usb_serial_deregister (&keyspan_usa28_pre_device);
- usb_serial_deregister (&keyspan_usa28x_pre_device);
- usb_serial_deregister (&keyspan_usa28xa_pre_device);
- usb_serial_deregister (&keyspan_usa28xb_pre_device);
- usb_serial_deregister (&keyspan_usa49w_pre_device);
-
+ usb_serial_deregister (&keyspan_pre_device);
usb_serial_deregister (&keyspan_usa18x_device);
usb_serial_deregister (&keyspan_usa19_device);
usb_serial_deregister (&keyspan_usa19w_device);
diff -Nru a/drivers/usb/serial/keyspan.h b/drivers/usb/serial/keyspan.h
--- a/drivers/usb/serial/keyspan.h Wed Jan 16 09:57:45 2002
+++ b/drivers/usb/serial/keyspan.h Wed Jan 16 09:57:45 2002
@@ -372,42 +372,15 @@
ID pattern. But, for now, it looks like we need slightly different
behavior for each match. */
-static __devinitdata struct usb_device_id keyspan_usa18x_pre_ids[] = {
+/* 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) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa19_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa19_pre_product_id) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa19w_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa19w_pre_product_id) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa28_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28_pre_product_id) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa28x_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28x_pre_product_id) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa28xa_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28xa_pre_product_id) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa28xb_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa28xb_pre_product_id) },
- { } /* Terminating entry */
-};
-
-static __devinitdata struct usb_device_id keyspan_usa49w_pre_ids[] = {
{ USB_DEVICE(KEYSPAN_VENDOR_ID, keyspan_usa49w_pre_product_id) },
{ } /* Terminating entry */
};
@@ -448,10 +421,10 @@
};
/* Structs for the devices, pre and post renumeration. */
-static struct usb_serial_device_type keyspan_usa18x_pre_device = {
+static struct usb_serial_device_type keyspan_pre_device = {
owner: THIS_MODULE,
- name: "Keyspan USA18X - (without firmware)",
- id_table: keyspan_usa18x_pre_ids,
+ name: "Keyspan - (without firmware)",
+ id_table: keyspan_pre_ids,
num_interrupt_in: NUM_DONT_CARE,
num_bulk_in: NUM_DONT_CARE,
num_bulk_out: NUM_DONT_CARE,
@@ -459,84 +432,6 @@
startup: keyspan_fake_startup
};
-static struct usb_serial_device_type keyspan_usa19_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA19 - (without firmware)",
- id_table: keyspan_usa19_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- 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_usa19w_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA19W - (without firmware)",
- id_table: keyspan_usa19w_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- 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_usa28_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA28 - (without firmware)",
- id_table: keyspan_usa28_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- num_bulk_in: NUM_DONT_CARE,
- num_bulk_out: NUM_DONT_CARE,
- num_ports: 2,
- startup: keyspan_fake_startup
-};
-
-static struct usb_serial_device_type keyspan_usa28x_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA28X - (without firmware)",
- id_table: keyspan_usa28x_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- num_bulk_in: NUM_DONT_CARE,
- num_bulk_out: NUM_DONT_CARE,
- num_ports: 2,
- startup: keyspan_fake_startup
-};
-
-static struct usb_serial_device_type keyspan_usa28xa_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA28XA - (without firmware)",
- id_table: keyspan_usa28xa_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- num_bulk_in: NUM_DONT_CARE,
- num_bulk_out: NUM_DONT_CARE,
- num_ports: 2,
- startup: keyspan_fake_startup
-};
-
-static struct usb_serial_device_type keyspan_usa28xb_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA28XB - (without firmware)",
- id_table: keyspan_usa28xb_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- num_bulk_in: NUM_DONT_CARE,
- num_bulk_out: NUM_DONT_CARE,
- num_ports: 2,
- startup: keyspan_fake_startup
-};
-
-static struct usb_serial_device_type keyspan_usa49w_pre_device = {
- owner: THIS_MODULE,
- name: "Keyspan USA49W - (without firmware)",
- id_table: keyspan_usa49w_pre_ids,
- num_interrupt_in: NUM_DONT_CARE,
- num_bulk_in: NUM_DONT_CARE,
- num_bulk_out: NUM_DONT_CARE,
- num_ports: 4,
- startup: keyspan_fake_startup
-};
static struct usb_serial_device_type keyspan_usa18x_device = {
owner: THIS_MODULE,
@@ -550,8 +445,6 @@
close: keyspan_close,
write: keyspan_write,
write_room: keyspan_write_room,
- //write_bulk_callback: Not used - we define our own herbs
- //read_int_callback: keyspan_usa26_read_int_callback,
chars_in_buffer: keyspan_chars_in_buffer,
throttle: keyspan_rx_throttle,
unthrottle: keyspan_rx_unthrottle,
@@ -574,8 +467,6 @@
close: keyspan_close,
write: keyspan_write,
write_room: keyspan_write_room,
-// write_bulk_callback: keyspan_write_bulk_callback,
-// read_int_callback: keyspan_usa28_read_int_callback,
chars_in_buffer: keyspan_chars_in_buffer,
throttle: keyspan_rx_throttle,
unthrottle: keyspan_rx_unthrottle,
@@ -599,8 +490,6 @@
close: keyspan_close,
write: keyspan_write,
write_room: keyspan_write_room,
- //write_bulk_callback: Not used - we define our own herbs
- //read_int_callback: keyspan_usa26_read_int_callback,
chars_in_buffer: keyspan_chars_in_buffer,
throttle: keyspan_rx_throttle,
unthrottle: keyspan_rx_unthrottle,
@@ -640,8 +529,6 @@
close: keyspan_close,
write: keyspan_write,
write_room: keyspan_write_room,
-// write_bulk_callback: keyspan_write_bulk_callback,
-// read_int_callback: keyspan_usa26_read_int_callback,
chars_in_buffer: keyspan_chars_in_buffer,
throttle: keyspan_rx_throttle,
unthrottle: keyspan_rx_unthrottle,
@@ -665,8 +552,6 @@
close: keyspan_close,
write: keyspan_write,
write_room: keyspan_write_room,
-// write_bulk_callback: keyspan_write_bulk_callback,
-// read_int_callback: keyspan_usa26_read_int_callback,
chars_in_buffer: keyspan_chars_in_buffer,
throttle: keyspan_rx_throttle,
unthrottle: keyspan_rx_unthrottle,
@@ -690,8 +575,6 @@
close: keyspan_close,
write: keyspan_write,
write_room: keyspan_write_room,
- //write_bulk_callback: Not used - we define our own herbs
- //read_int_callback: keyspan_usa26_read_int_callback,
chars_in_buffer: keyspan_chars_in_buffer,
throttle: keyspan_rx_throttle,
unthrottle: keyspan_rx_unthrottle,
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel