USB: ehci: fix audio record functionality for some Full speed sound blaster devices

This patch fix audio record functionality for some Full speed sound blaster devices.
Issue: Sometimes transaction complete indication is coming from HW one frame later.
Solution: If scan_periodic process now frame or previous frame now-1 and sitd transaction
is not finished yet, exit scan_periodic function and check the same transaction in the next frame.

Signed-off-by: Dimitry Epshtein <dima@marvell.com>
Signed-off-by: Saeed Bishara <saeed@marvell.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Dmitri Epshtein 2009-12-14 17:17:34 +02:00 committed by Greg Kroah-Hartman
parent d63c66d2d0
commit 22e186948a
1 changed files with 7 additions and 3 deletions

View File

@ -2324,9 +2324,13 @@ restart:
* No need to check for activity unless the
* frame is current.
*/
if (frame == clock_frame && live &&
(q.sitd->hw_results &
SITD_ACTIVE(ehci))) {
if (((frame == clock_frame) ||
(((frame + 1) % ehci->periodic_size)
== clock_frame))
&& live
&& (q.sitd->hw_results &
SITD_ACTIVE(ehci))) {
incomplete = true;
q_p = &q.sitd->sitd_next;
hw_p = &q.sitd->hw_next;