USB: EHCI: fix ITD list order
authorClemens Ladisch <clemens@ladisch.de>
Mon, 1 Mar 2010 08:12:50 +0000 (09:12 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 19 Mar 2010 14:24:05 +0000 (07:24 -0700)
commit92bc3648e6027384479852b770a542722fadee7c
tree9803348ef9fd9186ad375abf89a4e7862e9badc4
parentbf162019b7f5bda9eb3241ae22de831df2126132
USB: EHCI: fix ITD list order

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>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-sched.c