--- 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
