OHCI: implement new semantics for URB_ISO_ASAP
This patch (as1614) updates the isochronous scheduling in ohci-hcd to match the new semantics for URB_ISO_ASAP. Testing revealed a hardware bug in the way my OHCI controller handles expired isochronous TDs; consequently the patch tries hard to avoid creating them (unlike the ehci-hcd and uhci-hcd drivers). Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
c44b225077
commit
6a41b4d3fe
@@ -596,7 +596,6 @@ static void td_submit_urb (
|
||||
urb_priv->ed->hwHeadP &= ~cpu_to_hc32 (ohci, ED_C);
|
||||
}
|
||||
|
||||
urb_priv->td_cnt = 0;
|
||||
list_add (&urb_priv->pending, &ohci->pending);
|
||||
|
||||
if (data_len)
|
||||
@@ -672,7 +671,8 @@ static void td_submit_urb (
|
||||
* we could often reduce the number of TDs here.
|
||||
*/
|
||||
case PIPE_ISOCHRONOUS:
|
||||
for (cnt = 0; cnt < urb->number_of_packets; cnt++) {
|
||||
for (cnt = urb_priv->td_cnt; cnt < urb->number_of_packets;
|
||||
cnt++) {
|
||||
int frame = urb->start_frame;
|
||||
|
||||
// FIXME scheduling should handle frame counter
|
||||
|
Reference in New Issue
Block a user