USB: EHCI: use hrtimer for interrupt QH unlink
commitdf2022553dd8d34d49e16c19d851ea619438f0ef
authorAlan Stern <stern@rowland.harvard.edu>
Wed, 11 Jul 2012 15:22:26 +0000 (11 11:22 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Jul 2012 23:54:25 +0000 (16 16:54 -0700)
tree9850c967e0fbee1cb99e900c2e60a0ad50b528da
parent314466101c6ae14f6f5db8a86eda1509ba2c02a8
USB: EHCI: use hrtimer for interrupt QH unlink

This patch (as1577) adds hrtimer support for unlinking interrupt QHs
in ehci-hcd.  The current code relies on a fixed delay of either 2 or
55 us, which is not always adequate and in any case is totally bogus.
Thanks to internal caching, the EHCI hardware may continue to access
an interrupt QH for more than a millisecond after it has been unlinked.

In fact, the EHCI spec doesn't say how long to wait before using an
unlinked interrupt QH.  The patch sets the delay to 9 microframes
minimum, which ought to be adequate.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ehci-hub.c
drivers/usb/host/ehci-sched.c
drivers/usb/host/ehci-timer.c
drivers/usb/host/ehci.h