usb full speed isochronous bug ?
Philip Rakity <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
We have a full speed usb camera attached to an embedded linux solution.
the usb core can support full speed devices without a HS hub even
though it is echi. (note: using a full speed hub did not solve the
problem) We found that when we plugged the camera in we could get one
stream working (video or audio) but not both.
We saw similar problem with usb sound cards -- we could record or play
back but NOT both.
We talked to our IP provider and they gave us a patch (below) that
works. We are NOT usb experts so it is possible there are issues with
the patch but we thought it a good idea to pass it on so.
We needed to make one addition to the patch. the goto next is needed !
regards,
Philip
--- ehci-sched.c 2007-09-26 11:03:01.000000000 -0700
+++ /Users/philipr/Desktop/ehci-sched.2.6.22.9.c 2007-10-08
22:27:06.000000000 -0700
@@ -1265,7 +1265,7 @@
*/
if (!tt_no_collision (ehci, period_uframes << 3,
stream->udev, frame, mask))
- return 0;
+ goto next;
#endif
/* check starts (OUT uses more than one) */
@@ -2078,6 +2078,7 @@
{
unsigned frame, clock, now_uframe, mod;
unsigned modified;
+ u8 uncompleted_td = 0;
mod = ehci->periodic_size << 3;
@@ -2157,8 +2158,10 @@
break;
}
if (uf != 8)
+ {
+ uncompleted_td = 1;
break;
-
+ }
/* this one's ready ... HC won't cache
the
* pointer for much longer, if at all.
*/
@@ -2176,6 +2179,7 @@
hw_p = &q.sitd->hw_next;
type = Q_NEXT_TYPE
(q.sitd->hw_next);
q = *q_p;
+ uncompleted_td = 1;
break;
}
*q_p = q.sitd->sitd_next;
@@ -2207,12 +2211,15 @@
// FIXME: likewise assumes HC doesn't halt mid-scan
+ if((!uncompleted_td) && (HC_IS_RUNNING
(ehci_to_hcd(ehci)->state)))
+ ehci->next_uframe = now_uframe;
+
if (now_uframe == clock) {
unsigned now;
if (!HC_IS_RUNNING (ehci_to_hcd(ehci)->state))
break;
- ehci->next_uframe = now_uframe;
+
now = ehci_readl(ehci,
&ehci->regs->frame_index) % mod;
if (now_uframe == now)
break;
____________________________________________________________________________________
Yahoo! oneSearch: Finally, mobile search
that gives answers, not web links.
http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel