ipq9574: USB: Add delay for Get descriptor

Change-Id: I1ca6035fb30f692ec57ecb9f9c90393837c69a76
Signed-off-by: Kavin A <quic_kavia@quicinc.com>
This commit is contained in:
Kavin A 2021-11-16 14:46:53 +05:30 committed by Gerrit - the friendly Code Review server
parent bcf5b57166
commit 4291c86117

View file

@ -46,6 +46,8 @@
#define TRANSCEND_USB_VENDOR_ID 0x8564 #define TRANSCEND_USB_VENDOR_ID 0x8564
#define TRANSCEND_USB_PRODUCT_ID 0x1000 #define TRANSCEND_USB_PRODUCT_ID 0x1000
#define SP_USB_VENDOR_ID 0x058f
#define SP_USB_PRODUCT_ID 0x6387
static int asynch_allowed; static int asynch_allowed;
char usb_started; /* flag for the started/stopped USB status */ char usb_started; /* flag for the started/stopped USB status */
@ -1091,18 +1093,22 @@ int usb_select_config(struct usb_device *dev)
le16_to_cpus(&dev->descriptor.idProduct); le16_to_cpus(&dev->descriptor.idProduct);
le16_to_cpus(&dev->descriptor.bcdDevice); le16_to_cpus(&dev->descriptor.bcdDevice);
/*The Transcend device fails for get configuration length. Adding /*The Transcend and Silicon-power devices fails for get configuration length.
delay about 10 micro secs to fix this.*/ Adding delay about 10 micro secs to fix this.*/
if (dev->descriptor.idVendor == TRANSCEND_USB_VENDOR_ID && if ((dev->descriptor.idVendor == TRANSCEND_USB_VENDOR_ID &&
dev->descriptor.idProduct == TRANSCEND_USB_PRODUCT_ID) dev->descriptor.idProduct == TRANSCEND_USB_PRODUCT_ID) ||
(dev->descriptor.idVendor == SP_USB_VENDOR_ID &&
dev->descriptor.idProduct == SP_USB_PRODUCT_ID))
udelay(10); udelay(10);
/* only support for one config for now */ /* only support for one config for now */
err = usb_get_configuration_len(dev, 0); err = usb_get_configuration_len(dev, 0);
/*The Transcend device fails for get configuration number. Adding /*The Transcend and Silicon-power devices fails for get configuration number.
delay about 10 micro secs to fix this.*/ Adding delay about 10 micro secs to fix this.*/
if (dev->descriptor.idVendor == TRANSCEND_USB_VENDOR_ID && if ((dev->descriptor.idVendor == TRANSCEND_USB_VENDOR_ID &&
dev->descriptor.idProduct == TRANSCEND_USB_PRODUCT_ID) dev->descriptor.idProduct == TRANSCEND_USB_PRODUCT_ID) ||
(dev->descriptor.idVendor == SP_USB_VENDOR_ID &&
dev->descriptor.idProduct == SP_USB_PRODUCT_ID))
udelay(10); udelay(10);
if (err >= 0) { if (err >= 0) {