Hedde Bosman wrote:
I've owned a MIDEX8 for some years now and am now attempting a driver for it. [...] it looks a bit like the standard usb midi class, but it requires some periodic (i guess timer) messages on endpoint 0x02
Why "requires"? What happens if you do not send them?
Not all (interrupt) urbs that are submitted will complete (within 25 ms at least).
And why would that be a problem?
Sometimes after sending a few messages, an empty urb shows up in wireshark. However, in code, there's an if-statement that should allow only messages of length > 0 to be submitted (line 568, if (num_read > 0)).
Try adding a check before the actual usb_submit_urb() call, but nothing would protect against your code accidentally changing the transfer_buffer_length of an active URB field later.
Might this have to do with issue 1?
Not unless you have mixed up input and output URBs.
Regards, Clemens