Commit e1944017 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman

USB: fix latency in uhci-hcd and ohci-hcd

Commits c44b2250 (UHCI: implement new
semantics for URB_ISO_ASAP) and
6a41b4d3 (OHCI: implement new
semantics for URB_ISO_ASAP) increased the latency for isochronous URBs
in uhci-hcd and ohci-hcd respectively to 2 milliseconds, in an
attempt to avoid underruns.  It turns out that not only was this
unnecessary -- 1-ms latency works okay -- it also causes problems with
certain application loads such as real-time audio.

This patch changes the latency for both drivers back to 1 ms.

This should be applied to -stable kernels going back to 3.8.
Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: default avatarJoe Rayhawk <jrayhawk@fairlystable.org>
CC: Clemens Ladisch <clemens@ladisch.de>
CC: <stable@vger.kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 997ff893
...@@ -233,7 +233,7 @@ static int ohci_urb_enqueue ( ...@@ -233,7 +233,7 @@ static int ohci_urb_enqueue (
urb->start_frame = frame; urb->start_frame = frame;
} }
} else if (ed->type == PIPE_ISOCHRONOUS) { } else if (ed->type == PIPE_ISOCHRONOUS) {
u16 next = ohci_frame_no(ohci) + 2; u16 next = ohci_frame_no(ohci) + 1;
u16 frame = ed->last_iso + ed->interval; u16 frame = ed->last_iso + ed->interval;
/* Behind the scheduling threshold? */ /* Behind the scheduling threshold? */
......
...@@ -1287,7 +1287,7 @@ static int uhci_submit_isochronous(struct uhci_hcd *uhci, struct urb *urb, ...@@ -1287,7 +1287,7 @@ static int uhci_submit_isochronous(struct uhci_hcd *uhci, struct urb *urb,
return -EINVAL; /* Can't change the period */ return -EINVAL; /* Can't change the period */
} else { } else {
next = uhci->frame_number + 2; next = uhci->frame_number + 1;
/* Find the next unused frame */ /* Find the next unused frame */
if (list_empty(&qh->queue)) { if (list_empty(&qh->queue)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment