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);