USB: EHCI: fix ITD list order
commit5fe90f08a129e9fd8bda0e0c54746eb7b5297768
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 22:58:32 +0000 (1 15:58 -0700)
treebc909e087cf12edf84c2270c4fcccb7beb7375fd
parent3863f0615c1c6417a4db65b8bfa32aa49cc0c35e
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