aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/hub.c
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2008-10-10 10:24:45 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-10-17 17:41:04 -0400
commitfd7c519dd40a0d561280bb797386143fb2026949 (patch)
tree2ccb79aceee02dc862060e67046cc50c0767a423 /drivers/usb/core/hub.c
parent49e7cc84a86784ef2ab4e651f1824093be8f5b2b (diff)
USB: hub.c: Add initial_descriptor_timeout module parameter for usbcore
This patch adds initial_descriptor_timeout module parameter for usbcore.ko to allow modify initial 64-byte USB_REQ_GET_DESCRIPTOR timeout for non-standard devices. For example, the SATA8000 device from DATAST0R Technology Corp requires about 10 seconds to send reply (probably it waits until inserted disk is ready for operation). Also, this patch adds missing usbcore parameters to Documentation/kernel-parameters.txt. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/core/hub.c')
-rw-r--r--drivers/usb/core/hub.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index b97110ca352..d73ce262c36 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -101,6 +101,15 @@ module_param (blinkenlights, bool, S_IRUGO);
101MODULE_PARM_DESC (blinkenlights, "true to cycle leds on hubs"); 101MODULE_PARM_DESC (blinkenlights, "true to cycle leds on hubs");
102 102
103/* 103/*
104 * Device SATA8000 FW1.0 from DATAST0R Technology Corp requires about
105 * 10 seconds to send reply for the initial 64-byte descriptor request.
106 */
107/* define initial 64-byte descriptor request timeout in milliseconds */
108static int initial_descriptor_timeout = USB_CTRL_GET_TIMEOUT;
109module_param(initial_descriptor_timeout, int, S_IRUGO|S_IWUSR);
110MODULE_PARM_DESC(initial_descriptor_timeout, "initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds)");
111
112/*
104 * As of 2.6.10 we introduce a new USB device initialization scheme which 113 * As of 2.6.10 we introduce a new USB device initialization scheme which
105 * closely resembles the way Windows works. Hopefully it will be compatible 114 * closely resembles the way Windows works. Hopefully it will be compatible
106 * with a wider range of devices than the old scheme. However some previously 115 * with a wider range of devices than the old scheme. However some previously
@@ -2538,7 +2547,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
2538 USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, 2547 USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
2539 USB_DT_DEVICE << 8, 0, 2548 USB_DT_DEVICE << 8, 0,
2540 buf, GET_DESCRIPTOR_BUFSIZE, 2549 buf, GET_DESCRIPTOR_BUFSIZE,
2541 USB_CTRL_GET_TIMEOUT); 2550 initial_descriptor_timeout);
2542 switch (buf->bMaxPacketSize0) { 2551 switch (buf->bMaxPacketSize0) {
2543 case 8: case 16: case 32: case 64: case 255: 2552 case 8: case 16: case 32: case 64: case 255:
2544 if (buf->bDescriptorType == 2553 if (buf->bDescriptorType ==