On Monday 13 June 2005 2:22 am, Michael Zapf wrote:
> Hi David,
> 
>  > Send a patch and I'll sign off on it. It'd be a bit annoying to spin
>  >for that long (cpu doing nothing else!) waiting for slow hardware, but
>  >it's clearly more annoying to get those reset errors.  In fact, make it
>  >more like 750 usec, if 600 is that marginal.  This might be a good fix
>  >to put into 2.6.12-final.
> 
> sorry, I don't have any experience with providing a proper patch. 

It's easy, see Documentation/SubmittingPatches.  Here's what I put
together for this one, and I'll forward it in hopes that it can
squeak in before 2.6.12-final.

- Dave

As reported by Michael Zapf <[EMAIL PROTECTED]>, some EHCI
controllers seem to take forever to finish port resets and produce
"port N reset error -110" type errors.  Spinning a bit longer helps.

Signed-off-by: David Brownell <[EMAIL PROTECTED]>

--- g26.orig/drivers/usb/host/ehci-hub.c	2005-06-06 12:25:46.000000000 -0700
+++ g26/drivers/usb/host/ehci-hub.c	2005-06-13 06:58:13.000000000 -0700
@@ -439,9 +439,12 @@ static int ehci_hub_control (
 			/* force reset to complete */
 			writel (temp & ~PORT_RESET,
 					&ehci->regs->port_status [wIndex]);
+			/* REVISIT:  some hardware needs 550+ usec to clear
+			 * this bit; seems too long to spin routinely...
+			 */
 			retval = handshake (
 					&ehci->regs->port_status [wIndex],
-					PORT_RESET, 0, 500);
+					PORT_RESET, 0, 750);
 			if (retval != 0) {
 				ehci_err (ehci, "port %d reset error %d\n",
 					wIndex + 1, retval);

Reply via email to