Ted Huntington wrote:
Just submit a bunch at once ... they line up in a neat queue
as you submit them.  Your job is to make sure there's always
an urb at the head of the queue.


I tried doing this, but the copy_to_user functions did not work then.  They only
work when I wait for the bulk_isr() to resubmit 1 URB at a time.  I must be doing
something wrong in the bulk_isr function (I basically just copy_to_user in this
function), even with the QUEUE_BULK flag.  Do I need to use the QUEUE_BULK flag?
The queueing definately works in the latest stable version in MDK 9.2?

I don't know what you mean by "bulk_isr()". If you mean the completion callback, then it's illegal to call copy_to_user() in such a context -- they can't block, as needed to page in memory.

For an IN transfer the completion handler must
hand the buffer off to something else that can
copy_to_user().  And resubmit that urb using
some other kernel buffer.

I don't use Mandrake, but I don't know any recent
kernel where the bulk queueing doesn't work.
QUEUE_BULK is entirely optional except for UHCI.


And the reads shouldn't block while you're waiting for the
writes to complete ...


So, basically make threads for both read and write?

Whatever it takes, you're the one designing the software.




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to