summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2011-05-27 13:37:33 +0900
committerYuhao Ding <yding@nvidia.com>2011-06-13 12:09:07 -0700
commit166531c98333cfe635b65dc35c1981dc17cc9dd1 (patch)
treebf6b078e72ece8b03f77deab3dd5dbe89602bc10
parent022f4a7c1f4aa4c26944e59987b522a91901f601 (diff)
usb: gadget: introduce delay when setting address of tegra device
Some windows host drivers require this small delay in order to properly detect the tegra device. This patch ensures correct detection in all cases. Workaround for bug 814907 Change-Id: I3ff294f9cbe3660964b9bd227c233f4e20115e80 Reviewed-on: http://git-master/r/35352 Reviewed-by: Alex Courbot <acourbot@nvidia.com> Tested-by: Alex Courbot <acourbot@nvidia.com> Reviewed-by: David Schalig <dschalig@nvidia.com> Tested-by: David Schalig <dschalig@nvidia.com> Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com>
-rw-r--r--drivers/usb/gadget/fsl_udc_core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index c67230db46eb..82118cd1cbf7 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -1561,6 +1561,11 @@ static void setup_received_irq(struct fsl_udc *udc,
if (setup->bRequestType != (USB_DIR_OUT | USB_TYPE_STANDARD
| USB_RECIP_DEVICE))
break;
+#ifdef CONFIG_ARCH_TEGRA
+ /* This delay is necessary for some windows drivers to
+ * properly recognize the device */
+ mdelay(1);
+#endif
ch9setaddress(udc, wValue, wIndex, wLength);
return;