Hi,
Here's a patch against 2.3.99-pre6-3 that hopefully fixes the problem
with generic devices that don't have any bulk out endpoints (like the
modem that you have). It also moves when the driver prints out the
devices it supports and adds documentation for the ZyXEL ISDN TA
configuration option.
thanks,
greg k-h
greg@(kroah|wirex).com
diff -Naur -X dontdiff linux-2.3.99-pre6-5/Documentation/Configure.help
linux-2.3.99-pre6-5-greg/Documentation/Configure.help
--- linux-2.3.99-pre6-5/Documentation/Configure.help Sun Apr 23 22:24:07 2000
+++ linux-2.3.99-pre6-5-greg/Documentation/Configure.help Sun Apr 23 23:50:38
+2000
@@ -9762,6 +9762,10 @@
Say Y here if you want to use a Keyspan PDA single port USB to
serial converter device.
+USB ZyXEL omni.net LCD Plus Driver
+CONFIG_USB_SERIAL_OMNINET
+ Say Y here if you want to use a ZyXEL omni.net LCD ISDN TA.
+
USB Printer support
CONFIG_USB_PRINTER
Say Y here if you want to connect a USB printer to your computer's
diff -Naur -X dontdiff linux-2.3.99-pre6-5/drivers/usb/serial/usbserial.c
linux-2.3.99-pre6-5-greg/drivers/usb/serial/usbserial.c
--- linux-2.3.99-pre6-5/drivers/usb/serial/usbserial.c Sun Apr 23 22:24:14 2000
+++ linux-2.3.99-pre6-5-greg/drivers/usb/serial/usbserial.c Sun Apr 23 23:52:33
+2000
@@ -14,8 +14,12 @@
*
* See Documentation/usb/usb-serial.txt for more information on using this driver
*
+ * (04/23/2000) gkh
+ * Fixed bug that Randy Dunlap found for Generic devices with no bulk out ports.
+ * Moved when the startup code printed out the devices that are supported.
+ *
* (04/19/2000) gkh
- * Added driver for ZyXEL omni.net lcd plus modem.
+ * Added driver for ZyXEL omni.net lcd plus ISDN TA
* Made startup info message specify which drivers were compiled in.
*
* (04/03/2000) gkh
@@ -1072,9 +1075,14 @@
info("%s converter detected", type->name);
#ifdef CONFIG_USB_SERIAL_GENERIC
- if (type == &generic_device)
+ if (type == &generic_device) {
num_ports = num_bulk_out;
- else
+ if (num_ports == 0) {
+ err("Generic device with no bulk out, not allowed.");
+ MOD_DEC_USE_COUNT;
+ return NULL;
+ }
+ } else
#endif
num_ports = type->num_ports;
@@ -1310,17 +1318,14 @@
{
int i;
int something;
+ int result;
/* Initalize our global data */
for (i = 0; i < SERIAL_TTY_MINORS; ++i) {
serial_table[i] = NULL;
}
- /* register the USB driver */
- if (usb_register(&usb_serial_driver) < 0) {
- return -1;
- }
-
+ /* tell the world what devices this driver currently supports */
something = 0;
for (i = 0; usb_serial_devices[i]; ++i) {
if (!strstr (usb_serial_devices[i]->name, "prerenumeration")) {
@@ -1331,6 +1336,13 @@
if (!something)
info ("USB Serial driver is not configured for any devices!");
+ /* register the USB driver */
+ result = usb_register(&usb_serial_driver);
+ if (result < 0) {
+ err("usb_register failed for the usb-serial driver. Error number %d",
+result);
+ return -1;
+ }
+
return 0;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]