From 47245230b70eb575ec0e40e7f796e375901c8bfd Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 5 Feb 2013 14:21:09 -0800 Subject: [PATCH] 3.0-stable patches added patches: usb-ehci-fix-bug-in-scheduling-periodic-split-transfers.patch --- queue-3.0/series | 1 + ...-scheduling-periodic-split-transfers.patch | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 queue-3.0/usb-ehci-fix-bug-in-scheduling-periodic-split-transfers.patch diff --git a/queue-3.0/series b/queue-3.0/series index 330aa2843f2..a659cce20c4 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -9,3 +9,4 @@ usb-ftdi_sio-add-pid-vid-entries-for-elv-ws-300-pc-ii.patch usb-option-add-support-for-telit-le920.patch usb-option-add-changhong-ch690.patch usb-qcserial-add-telit-gobi-qdl-device.patch +usb-ehci-fix-bug-in-scheduling-periodic-split-transfers.patch diff --git a/queue-3.0/usb-ehci-fix-bug-in-scheduling-periodic-split-transfers.patch b/queue-3.0/usb-ehci-fix-bug-in-scheduling-periodic-split-transfers.patch new file mode 100644 index 00000000000..b749f480ad5 --- /dev/null +++ b/queue-3.0/usb-ehci-fix-bug-in-scheduling-periodic-split-transfers.patch @@ -0,0 +1,38 @@ +From 3e619d04159be54b3daa0b7036b0ce9e067f4b5d Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Wed, 30 Jan 2013 16:36:40 -0500 +Subject: USB: EHCI: fix bug in scheduling periodic split transfers + +From: Alan Stern + +commit 3e619d04159be54b3daa0b7036b0ce9e067f4b5d upstream. + +This patch (as1654) fixes a very old bug in ehci-hcd, connected with +scheduling of periodic split transfers. The calculations for +full/low-speed bus usage are all carried out after the correction for +bit-stuffing has been applied, but the values in the max_tt_usecs +array assume it hasn't been. The array should allow for allocation of +up to 90% of the bus capacity, which is 900 us, not 780 us. + +The symptom caused by this bug is that any isochronous transfer to a +full-speed device with a maxpacket size larger than about 980 bytes is +always rejected with a -ENOSPC error. + +Signed-off-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/ehci-sched.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/host/ehci-sched.c ++++ b/drivers/usb/host/ehci-sched.c +@@ -236,7 +236,7 @@ static inline unsigned char tt_start_ufr + } + + static const unsigned char +-max_tt_usecs[] = { 125, 125, 125, 125, 125, 125, 30, 0 }; ++max_tt_usecs[] = { 125, 125, 125, 125, 125, 125, 125, 25 }; + + /* carryover low/fullspeed bandwidth that crosses uframe boundries */ + static inline void carryover_tt_bandwidth(unsigned short tt_usecs[8]) -- 2.47.3