Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c22fa3ac authored by David Brownell's avatar David Brownell Committed by Linus Torvalds
Browse files

[PATCH] spin longer for ehci port reset completion



This makes the EHCI driver spin a bit longer before concluding that the
port reset failed.  "Obviously safe."

It allows some devices to enumerate that previously didn't.  We've seen
a bunch of these problem reports recently, this will make some go away.

As reported by Michael Zapf <Michael.Zapf@uni-kassel.de>, 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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent c0105338
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);