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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.