[U-Boot] [PATCH] usb: Add delay to fix USB 2.0 stick enumeration failure on LS208xA

Force delay 10ms between each control messages to fix Transcend and Kingston DT 101 G2 USB2.0 stick fail to be enumerated by LS208xA.
Signed-off-by: Ran Wang ran.wang_1@nxp.com --- common/usb.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/usb.c b/common/usb.c index 0904259757..eeacc80b9e 100644 --- a/common/usb.c +++ b/common/usb.c @@ -223,6 +223,9 @@ int usb_control_msg(struct usb_device *dev, unsigned int pipe, return -EINVAL; }
+ /* Add delay to support more devices' enumeration */ + mdelay(10); + /* set setup command */ setup_packet->requesttype = requesttype; setup_packet->request = request;

On 11/13/2017 10:00 AM, Ran Wang wrote:
Force delay 10ms between each control messages to fix Transcend and Kingston DT 101 G2 USB2.0 stick fail to be enumerated by LS208xA.
That means everyone else also suffers this burden, even though it's a problem specific to LS208x ? What is the real problem here ?
Signed-off-by: Ran Wang ran.wang_1@nxp.com
common/usb.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/usb.c b/common/usb.c index 0904259757..eeacc80b9e 100644 --- a/common/usb.c +++ b/common/usb.c @@ -223,6 +223,9 @@ int usb_control_msg(struct usb_device *dev, unsigned int pipe, return -EINVAL; }
- /* Add delay to support more devices' enumeration */
- mdelay(10);
- /* set setup command */ setup_packet->requesttype = requesttype; setup_packet->request = request;

Hi Marek,
-----Original Message----- From: Marek Vasut [mailto:marex@denx.de] Sent: Monday, November 13, 2017 5:34 PM To: Ran Wang ran.wang_1@nxp.com; Bin Meng bmeng.cn@gmail.com; Heiko Schocher hs@denx.de Cc: u-boot@lists.denx.de Subject: Re: [PATCH] usb: Add delay to fix USB 2.0 stick enumeration failure on LS208xA
On 11/13/2017 10:00 AM, Ran Wang wrote:
Force delay 10ms between each control messages to fix Transcend and Kingston DT 101 G2 USB2.0 stick fail to be enumerated by LS208xA.
That means everyone else also suffers this burden, even though it's a problem specific to LS208x ?
Actually I want to add a macro/flag to restrict the scope of effect but don't know how. Could you give me some example to let it take effect on specific boards?
What is the real problem here ?
So far the root cause is not clear yet due to lack of debugging method. Suspect there are some (HW) compatibility issue here.
Best Regards Ran
Signed-off-by: Ran Wang ran.wang_1@nxp.com
common/usb.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/usb.c b/common/usb.c index 0904259757..eeacc80b9e 100644 --- a/common/usb.c +++ b/common/usb.c @@ -223,6 +223,9 @@ int usb_control_msg(struct usb_device *dev,
unsigned int pipe,
return -EINVAL;
}
- /* Add delay to support more devices' enumeration */
- mdelay(10);
- /* set setup command */ setup_packet->requesttype = requesttype; setup_packet->request = request;
-- Best regards, Marek Vasut

On 11/13/2017 10:43 AM, Ran Wang wrote:
Hi Marek,
-----Original Message----- From: Marek Vasut [mailto:marex@denx.de] Sent: Monday, November 13, 2017 5:34 PM To: Ran Wang ran.wang_1@nxp.com; Bin Meng bmeng.cn@gmail.com; Heiko Schocher hs@denx.de Cc: u-boot@lists.denx.de Subject: Re: [PATCH] usb: Add delay to fix USB 2.0 stick enumeration failure on LS208xA
On 11/13/2017 10:00 AM, Ran Wang wrote:
Force delay 10ms between each control messages to fix Transcend and Kingston DT 101 G2 USB2.0 stick fail to be enumerated by LS208xA.
That means everyone else also suffers this burden, even though it's a problem specific to LS208x ?
Actually I want to add a macro/flag to restrict the scope of effect but don't know how. Could you give me some example to let it take effect on specific boards?
What is the real problem here ?
So far the root cause is not clear yet due to lack of debugging method. Suspect there are some (HW) compatibility issue here.
I think you should first figure out what the problem is.
Best Regards Ran
Signed-off-by: Ran Wang ran.wang_1@nxp.com
common/usb.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/usb.c b/common/usb.c index 0904259757..eeacc80b9e 100644 --- a/common/usb.c +++ b/common/usb.c @@ -223,6 +223,9 @@ int usb_control_msg(struct usb_device *dev,
unsigned int pipe,
return -EINVAL;
}
- /* Add delay to support more devices' enumeration */
- mdelay(10);
- /* set setup command */ setup_packet->requesttype = requesttype; setup_packet->request = request;
-- Best regards, Marek Vasut
participants (2)
-
Marek Vasut
-
Ran Wang