libpayload: Adjust timeout in EHCI driver

Tested with a bunch of usb flash sticks. The slowest non-TUR (test
unit ready) turn around took about 1.3s, so this commit increases the
timeout to 2s.

Change-Id: Iec64b5cc48d51912b2bdeeebb5885399a71311b2
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: http://review.coreboot.org/1120
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Nico Huber
2012-06-01 08:54:29 +02:00
parent dab6bfe97d
commit cef86927e8

View File

@ -169,11 +169,15 @@ static int wait_for_tds(qtd_t *head)
if (0) dump_td(virt_to_phys(cur)); if (0) dump_td(virt_to_phys(cur));
/* wait for results */ /* wait for results */
/* TOTEST: how long to wait? /* how long to wait?
* tested with some USB2.0 flash sticks: * tested with some USB2.0 flash sticks:
* slowest took around 180ms * TUR turn around took
* about 2s for the slowest (14cd:121c)
* max. 250ms for the others
* slowest non-TUR turn around took about 1.3s
* try 2s for now as a failed TUR is not fatal
*/ */
int timeout = 10000; /* time out after 10000 * 50us == 500ms */ int timeout = 40000; /* time out after 40000 * 50us == 2s */
while ((cur->token & QTD_ACTIVE) && !(cur->token & QTD_HALTED) while ((cur->token & QTD_ACTIVE) && !(cur->token & QTD_HALTED)
&& timeout--) && timeout--)
udelay(50); udelay(50);