Skip to contentSkip to conversation

usb: increase delay after port reset

PATCH New Ilya Yanok 4 participants 7 messages Nov 10, 2011 – Apr 3, 2012

lore
Share & tools
lore

Ilya Yanok

author
#0 lore raw

PATCH 1/1 usb: increase delay after port reset

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Increasing the delay after port reset from 200ms to 260ms solves this problem.

---
 common/usb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
common/usb.c +1 -1
index bed5116..5e282c6 100644
@@ -1147,7 +1147,7 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
 		return;
 	}
 
-	wait_ms(200);
+	wait_ms(260);
 
 	/* Allocate a new device struct for it */
 	usb = usb_alloc_new_device();
Signature · 1 line
1.7.6.4
#1 lore raw

PATCH 1/1 usb: increase delay after port reset

Quoted 7 lines · On Wednesday 09 November 2011 19:03:58 Ilya Yanok wrote:

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Increasing the delay after port reset from 200ms to 260ms solves this problem.

ugh. this doesn't sound like the right way to fix things. looks like Linux has added a dynamic polling state that automatically deals with broken devices. look at its hub_port_debounce. seems like we should implement something like that instead of delaying longer and longer and making the situation needlessly worse for most systems.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20111109/d8433847/attachment.pgp

author
#2 lore raw

PATCH 1/1 usb: increase delay after port reset

Hi Mike,

Quoted 6 lines · Mike Frysinger
Quoted 5 lines · On Wednesday 09 November 2011 19:03:58 Ilya Yanok wrote:

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Quoted 8 lines
Quoted 2 lines

Increasing the delay after port reset from 200ms to 260ms solves this problem.

ugh. this doesn't sound like the right way to fix things. looks like Linux has added a dynamic polling state that automatically deals with broken devices. look at its hub_port_debounce. seems like we should implement something like that instead of delaying longer and longer and making the situation needlessly worse for most systems.

Thanks for the pointer. Unfortunately I don't have time to look into this deeper and we will go with a workaround for now.

Maybe we will return to this later.

Regards, Ilya.

#3 lore raw

PATCH 1/1 usb: increase delay after port reset

In reply to Ilya Yanok

Dear Ilya Yanok,

Quoted 7 lines

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Increasing the delay after port reset from 200ms to 260ms solves this problem.

Do we still have this problem?

Quoted 10 lines
---
 common/usb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
common/usb.c +0 -0
index bed5116..5e282c6 100644

common/usb.c void usb_hub_port_connect_change(struct usb_device · line 1153

Quoted 8 lines
common/usb.c +1 -1
@@ -1147,7 +1147,7 @@ void usb_hub_port_connect_change(struct usb_device
 *dev, int port) return;
 	}
 
-	wait_ms(200);
+	wait_ms(260);
 
 	/* Allocate a new device struct for it */
 	usb = usb_alloc_new_device();

Best regards,
Marek Vasut

author
#4 lore raw

PATCH 1/1 usb: increase delay after port reset

Hi Marek, Stefano,

Quoted 9 lines · Marek Vasut
Quoted 7 lines

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Increasing the delay after port reset from 200ms to 260ms solves this problem.

Do we still have this problem?

Sorry, I'm not working with this board any more. I'm ccing Stefano, probably he can answer.

Regards, Ilya.

#5 lore raw

PATCH 1/1 usb: increase delay after port reset

Quoted 1 line · Ilya Yanok

Hi Marek, Stefano,

Hi Marek,

Quoted 7 lines · Marek Vasut
Quoted 5 lines
Quoted 5 lines

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

Increasing the delay after port reset from 200ms to 260ms solves this problem.

Do we still have this problem?

Sorry, I'm not working with this board any more. I'm ccing Stefano, probably he can answer.

USB seems not working on this board, but the patch does not help. No peripheral are found after bus scan, even if the delay is increased by the patch. I will suggest to not apply this patch for the release and I will try to investigate what is gone wrong on this board.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#6 lore raw

PATCH 1/1 usb: increase delay after port reset

Dear Stefano Babic,

Quoted 19 lines · Ilya Yanok
Quoted 1 line

Hi Marek, Stefano,

Hi Marek,

Quoted 6 lines · Marek Vasut
Quoted 5 lines
Quoted 5 lines

In our setup (OMAP3 EHCI host, keyboard, mouse mass storage and BT dongle devices connected via several hubs) keyboard fails to initialize during the bus scan (stalled endpoint while get_descriptor/64) and after that keyboard is unusable (even in Linux) until power off/on.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

Increasing the delay after port reset from 200ms to 260ms solves this problem.

Do we still have this problem?

Sorry, I'm not working with this board any more. I'm ccing Stefano, probably he can answer.

Quoted 7 lines

USB seems not working on this board, but the patch does not help. No peripheral are found after bus scan, even if the delay is increased by the patch. I will suggest to not apply this patch for the release and I will try to investigate what is gone wrong on this board.

Best regards,
Stefano Babic

Ok, discarding from patchwork. Thanks!

Best regards,
Marek Vasut