With USB2.0 the max isochronous size can be 3x1024 byte every 125us
With USB3.0 the max isochronous size can be 1x1024 byte * Mult *
bMaxBurst every 125us
super speed companion descriptor. bMaxBurst (0~15 allowed, 1~16 packets)
super speed companion descriptor. bmAttributes (bit 1:0, mult 0~2)
Maximum number of packtes = (bMaxBurst + 1) x (Mult + 1)
if Mult=3 and bMaxBurst=1 (6 packets x 1024), libusb can allocate and
submit a isocronous,
with bMaxBurst=2 (9 packets x 1024), and more the fuction
libusb_submit_transfer() return a errors, because:
in the file of kernel 3.8 and 3.9
drivers/usb/core/devio.c:
...
for (totlen = u = 0; u < uurb->number_of_packets; u++) {
/* arbitrary limit,
* sufficient for USB 2.0 high-bandwidth iso */
if (isopkt[u].length > 8192) {
ret = -EINVAL;
goto error;
}
totlen += isopkt[u].length;
}
...
Now with USB 3.0 this arbitrary limit need to increment at not less of
1024 * 3 * 16 byte
What do you think?
Fede
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html