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:
parent
d63c66d2d0
commit
22e186948a
|
@ -2324,9 +2324,13 @@ restart:
|
||||||
* No need to check for activity unless the
|
* No need to check for activity unless the
|
||||||
* frame is current.
|
* frame is current.
|
||||||
*/
|
*/
|
||||||
if (frame == clock_frame && live &&
|
if (((frame == clock_frame) ||
|
||||||
(q.sitd->hw_results &
|
(((frame + 1) % ehci->periodic_size)
|
||||||
SITD_ACTIVE(ehci))) {
|
== clock_frame))
|
||||||
|
&& live
|
||||||
|
&& (q.sitd->hw_results &
|
||||||
|
SITD_ACTIVE(ehci))) {
|
||||||
|
|
||||||
incomplete = true;
|
incomplete = true;
|
||||||
q_p = &q.sitd->sitd_next;
|
q_p = &q.sitd->sitd_next;
|
||||||
hw_p = &q.sitd->hw_next;
|
hw_p = &q.sitd->hw_next;
|
||||||
|
|
Loading…
Reference in New Issue