USB: EHCI: fix ITD list order
commit25f3bec9fc514a21be373817f2306726340e5b5a
authorClemens Ladisch <clemens@ladisch.de>
Mon, 1 Mar 2010 08:12:50 +0000 (1 09:12 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Apr 2010 23:01:36 +0000 (1 16:01 -0700)
tree0c42e43468b3c4c93d55579061b023897086569c
parent55fe2557940e0cd1d88aa89ef580089698a7dac1
USB: EHCI: fix ITD list order

commit 92bc3648e6027384479852b770a542722fadee7c upstream.

When isochronous URBs are shorter than one frame and when more than one
ITD in a frame has been completed before the interrupt can be handled,
scan_periodic() completes the URBs in the order in which they are found
in the descriptor list.  Therefore, the descriptor list must contain the
ITDs in the correct order, i.e., a new ITD must be linked in after any
previous ITDs of the same endpoint.

This should fix garbled capture data in the USB audio drivers.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Reported-by: Colin Fletcher <colin.m.fletcher@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-sched.c