summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-sched.c
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2013-10-11 17:28:12 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-10-12 01:37:46 +0200
commite24371a6be9c5c00b56607bd425cc409cba75d88 (patch)
tree1983383adb655434cb7014d9bdc8d4b487590e73 /drivers/usb/host/ehci-sched.c
parentUSB: NS_TO_US should round up (diff)
downloadlinux-e24371a6be9c5c00b56607bd425cc409cba75d88.tar.xz
linux-e24371a6be9c5c00b56607bd425cc409cba75d88.zip
USB: EHCI: check the right uframes for CSPLIT
The check_intr_schedule() routine in ehci-hcd looks at the wrong microframes when checking to see if a full-speed or low-speed interrupt endpoint will fit in the periodic schedule. If the Start-Split transaction is scheduled for microframe N then the Complete-Split transactions get scheduled for microframes N+2, N+3, and N+4. However the code considers N+1, N+2, and N+3 instead. This patch fixes the limits on the "for" loop and also improves the use of whitespace. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci-sched.c')
-rw-r--r--drivers/usb/host/ehci-sched.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index dcbaad94d607..34b5945fafa5 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -761,7 +761,7 @@ static int check_intr_schedule (
unsigned i;
/* TODO : this may need FSTN for SSPLIT in uframe 5. */
- for (i=uframe+1; i<8 && i<uframe+4; i++)
+ for (i = uframe+2; i < 8 && i <= uframe+4; i++)
if (!check_period (ehci, frame, i,
qh->period, qh->c_usecs))
goto done;