The driver I'm writing requires me to periodically send a stream of
control messages to the device. (Multiple packets asking for different
types of status - a heartbeat per se.) The event that drives the sending
of this stream is a kernel timer. I can't use usb_control_msg 'cause it
can't be called from an interrupt context. So, I'm currently using
usb_submit_urb. However, many of my submits fail with ENXIO 'cause
there's already an URB happening on the control pipe. Is there a way to
queue CTRL URBs like already happens for BULK URBs? If not, anybody have
any suggestions on the best way to handle this?

Another point ... I tried implementing a solution whereby I don't send a
new CTRL URB until I get the callback for the last one. However, I would
occassionally get ENXIO errors about there already being an URB, even
though the "burb" reported in the ENXIO was the urb that just finished.
Anybody know of a timing issue with removing CTRL URBs?

Thanks,
-Chris

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to