Re: usb full speed isochronous bug ?
Philip Rakity <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
I realized that I did not mention neither the video nor the 2 audio devices that did not work well with our USB controller without the patch. The camera is an ov530 from omnivision corporation. The audio devices are: C-Media USB Headphone Set: Version: 1.00 Bus Power (mA): 500 Speed: Up to 12 Mb/sec Product ID: 0x000c Vendor ID: 0x0d8c AK4571: Version: 1.00 Bus Power (mA): 500 Speed: Up to 12 Mb/sec Manufacturer: AKM Product ID: 0x0004 Vendor ID: 0x0556 --- Philip Rakity <[email protected]> wrote: > 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 > ____________________________________________________________________________________ Check out the hottest 2008 models today at Yahoo! Autos. http://autos.yahoo.com/new_cars.html ------------------------------------------------------------------------- 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