--- Alan Stern <[EMAIL PROTECTED]> wrote:

> On Sun, 12 Sep 2004, Manoj Bhatta wrote:
> 
> > > As for why the transfers take 600 ms instead of
> 200
> > > ms...  I don't know.
> > 
> > When i debugs , i find my each URB status is still
> in
> > progress (-EINPROGRESS) , in
> > <Documentataion/usb/error-codes> i found if urb
> status
> > is stille in progress and driver sees this there
> is a
> > bug . So where is bug ?
> 
> It sounds like the bug is in your driver.  If
> urb->status is -EINPROGRESS
> then urb->complete() hasn't been called yet.  After
> usb_submit_urb()  
> returns successfully, your URB is owned by the USB
> core, not by your
> driver.  You shouldn't touch it again until
> urb->complete() runs.
> 
> > And for getting data i always call
> > interruptible_sleep_on() and all URB get
> > interruptible_sleep_on() so it consumes my all
> time
> > here . How can i avoid this ?
> 
> I'm not sure what you are asking.  Do you want to
> know how you can avoid 
> calling interruptible_sleep_on()?  That's easy --
> call wait_event() 
> or wait_event_interruptible() instead.
> 
> > > You can learn more by printing out the
> > > urb->start_frame values for each 
> > > URB you submit, and compare those values to the
> > > result of calling
> > > urb->dev->bus->op->get_frame_number().
> > > 
> > > Also, it would be a good idea for you to upgrade
> to
> > > 2.6.8.1 or 
> > > 2.6.9-current.
> > i upgraded to 2.6.8-1 , still it gives same for me
> . 
> 
> I notice however that you didn't try following my
> suggestion of checking 
> urb->start_frame.  Why not?
> 

Sorry for late reply . let me remind you about my
driver . This is USB 1.1 device with isoc endpoint of
840 bytes. i am trying to read through isoc by
submitting 5 frames per URB . each frame of 840 bytes
. i am submitting 56 URBs . Testing at 2.6.4 as well
as 2.6.8-1 kernel .

  i try to get urb->start_frame and
usb_get_current_frame_number()  values .

i found like this (not all kernel messages only the
above)

urb->start_frame = 211  
usb_get_current_frame_number()= 960

So for each URB submit urb->start_frame  increases
5(since i am using 5 frames per URB) , but
usb_get_current_frame_number() does not increase
always 5 , fisrt time for some (for 45 URBs) it is
same , after that it increases 5 in interval .
But at one point it(usb_get_current_frame_number)
increases to 10 .  some unpredictable like increases
50  frames .
And sometimes kernel messges "usb bandwidth would have
FAILED" . 

Is there any problem in bandwidth synchronization
inbetween my device driver and UHCI driver?

Thanks 
Manoj



> Alan Stern
> 
> 
> 
>
-------------------------------------------------------
> This SF.Net email is sponsored by: YOU BE THE JUDGE.
> Be one of 170
> Project Admins to receive an Apple iPod Mini FREE
> for your judgement on
> who ports your project to Linux PPC the best.
> Sponsored by IBM. 
> Deadline: Sept. 13. Go here:
> http://sf.net/ppc_contest.php
> _______________________________________________
> [EMAIL PROTECTED]
> To unsubscribe, use the last form field at:
>
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
> 



                
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to