diff options
| -rw-r--r-- | drivers/usb/serial/ipaq.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c index c021905f0637..65beea6e54d1 100644 --- a/drivers/usb/serial/ipaq.c +++ b/drivers/usb/serial/ipaq.c | |||
| @@ -70,6 +70,8 @@ | |||
| 70 | 70 | ||
| 71 | static __u16 product, vendor; | 71 | static __u16 product, vendor; |
| 72 | static int debug; | 72 | static int debug; |
| 73 | static int connect_retries = KP_RETRIES; | ||
| 74 | static int initial_wait; | ||
| 73 | 75 | ||
| 74 | /* Function prototypes for an ipaq */ | 76 | /* Function prototypes for an ipaq */ |
| 75 | static int ipaq_open (struct usb_serial_port *port, struct file *filp); | 77 | static int ipaq_open (struct usb_serial_port *port, struct file *filp); |
| @@ -582,7 +584,7 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp) | |||
| 582 | struct ipaq_private *priv; | 584 | struct ipaq_private *priv; |
| 583 | struct ipaq_packet *pkt; | 585 | struct ipaq_packet *pkt; |
| 584 | int i, result = 0; | 586 | int i, result = 0; |
| 585 | int retries = KP_RETRIES; | 587 | int retries = connect_retries; |
| 586 | 588 | ||
| 587 | dbg("%s - port %d", __FUNCTION__, port->number); | 589 | dbg("%s - port %d", __FUNCTION__, port->number); |
| 588 | 590 | ||
| @@ -646,6 +648,7 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp) | |||
| 646 | port->read_urb->transfer_buffer_length = URBDATA_SIZE; | 648 | port->read_urb->transfer_buffer_length = URBDATA_SIZE; |
| 647 | port->bulk_out_size = port->write_urb->transfer_buffer_length = URBDATA_SIZE; | 649 | port->bulk_out_size = port->write_urb->transfer_buffer_length = URBDATA_SIZE; |
| 648 | 650 | ||
| 651 | msleep(1000*initial_wait); | ||
| 649 | /* Start reading from the device */ | 652 | /* Start reading from the device */ |
| 650 | usb_fill_bulk_urb(port->read_urb, serial->dev, | 653 | usb_fill_bulk_urb(port->read_urb, serial->dev, |
| 651 | usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), | 654 | usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), |
| @@ -672,6 +675,7 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp) | |||
| 672 | } | 675 | } |
| 673 | return 0; | 676 | return 0; |
| 674 | } | 677 | } |
| 678 | msleep(1000); | ||
| 675 | } | 679 | } |
| 676 | err("%s - failed doing control urb, error %d", __FUNCTION__, result); | 680 | err("%s - failed doing control urb, error %d", __FUNCTION__, result); |
| 677 | goto error; | 681 | goto error; |
| @@ -967,3 +971,9 @@ MODULE_PARM_DESC(vendor, "User specified USB idVendor"); | |||
| 967 | 971 | ||
| 968 | module_param(product, ushort, 0); | 972 | module_param(product, ushort, 0); |
| 969 | MODULE_PARM_DESC(product, "User specified USB idProduct"); | 973 | MODULE_PARM_DESC(product, "User specified USB idProduct"); |
| 974 | |||
| 975 | module_param(connect_retries, int, S_IRUGO|S_IWUSR); | ||
| 976 | MODULE_PARM_DESC(connect_retries, "Maximum number of connect retries (one second each)"); | ||
| 977 | |||
| 978 | module_param(initial_wait, int, S_IRUGO|S_IWUSR); | ||
| 979 | MODULE_PARM_DESC(initial_wait, "Time to wait before attempting a connection (in seconds)"); | ||
