Hi,

This patch against 2.4.6-pre9 fixes the problem reported on linux-kernel
(and other lists) about "vendor not being defined".  It also fixes 2
other small bug in the driver.

thanks,

greg k-h
diff -Nru a/drivers/usb/serial/usbserial.c b/drivers/usb/serial/usbserial.c
--- a/drivers/usb/serial/usbserial.c    Tue Jul  3 14:42:00 2001
+++ b/drivers/usb/serial/usbserial.c    Tue Jul  3 14:42:00 2001
@@ -15,6 +15,13 @@
  *
  * See Documentation/usb/usb-serial.txt for more information on using this driver
  * 
+ * (07/03/2001) gkh
+ *     Fixed module paramater size.  Thanks to John Brockmeyer for the pointer.
+ *     Fixed vendor and product getting defined through the MODULE_PARM macro
+ *     if the Generic driver wasn't compiled in.
+ *     Fixed problem with generic_shutdown() not being called for drivers that
+ *     don't have a shutdown() function.
+ *
  * (06/06/2001) gkh
  *     added evil hack that is needed for the prolific pl2303 device due to the
  *     crazy way its endpoints are set up.
@@ -296,7 +303,7 @@
 /*
  * Version Information
  */
-#define DRIVER_VERSION "v1.2"
+#define DRIVER_VERSION "v1.3"
 #define DRIVER_AUTHOR "Greg Kroah-Hartman, [EMAIL PROTECTED], 
http://www.kroah.com/linux-usb/";
 #define DRIVER_DESC "USB Serial Driver core"
 
@@ -347,6 +354,7 @@
 static void serial_unthrottle (struct tty_struct * tty);
 static int  serial_ioctl (struct tty_struct *tty, struct file * file, unsigned int 
cmd, unsigned long arg);
 static void serial_set_termios (struct tty_struct *tty, struct termios * old);
+static void serial_shutdown (struct usb_serial *serial);
 
 static void * usb_serial_probe(struct usb_device *dev, unsigned int ifnum,
                               const struct usb_device_id *id);
@@ -736,6 +744,16 @@
 }
 
 
+static void serial_shutdown (struct usb_serial *serial)
+{
+       if (serial->type->shutdown) {
+               serial->type->shutdown(serial);
+       } else {
+               generic_shutdown(serial);
+       }
+}
+
+
 
 /*****************************************************************************
  * generic devices specific driver functions
@@ -1311,8 +1329,7 @@
                                serial->port[i].tty->driver_data = NULL;
                }
 
-               if (serial->type->shutdown)
-                       serial->type->shutdown(serial);
+               serial_shutdown (serial);
 
                for (i = 0; i < serial->num_ports; ++i)
                        serial->port[i].active = 0;
@@ -1426,7 +1443,7 @@
                return -1;
        }
 
-       info(DRIVER_VERSION ":" DRIVER_DESC);
+       info(DRIVER_DESC " " DRIVER_VERSION);
 
        return 0;
 }
@@ -1500,9 +1517,11 @@
 MODULE_PARM(debug, "i");
 MODULE_PARM_DESC(debug, "Debug enabled or not");
 
-MODULE_PARM(vendor, "i");
+#ifdef CONFIG_USB_SERIAL_GENERIC
+MODULE_PARM(vendor, "h");
 MODULE_PARM_DESC(vendor, "User specified USB idVendor");
 
-MODULE_PARM(product, "i");
+MODULE_PARM(product, "h");
 MODULE_PARM_DESC(product, "User specified USB idProduct");
+#endif
 

Reply via email to