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