Hi there,
I'm using a system that packs an ARM CPU. The usb controller should be an Inventra HDRC USB Controller so I'm using the MUSB OTG driver and I'm trying to use it with a device that uses isochronous transfer (about 20-30 MB/s). I patched the /driver/usb/musb/musb_host.h/c and musb_core.h/c with: http://www.mail-archive.com/linux-omap@vger.kernel.org/msg03991.html but after some packet transfers there is a massive packet loss as you can see:
.....
Creating EP 81 transfer #14
Creating EP 81 transfer #15
.....
Write Reg 0x0005 <= 0x00
Control cmd=0003 tag=0000 len=0004: 12
Control reply: 12
[stram 70] Invalid magic ffff
....
[stream 70] Not synced yet...
..
[stream 70] Lost 8 packets
[Stream 70] Lost too many packets, resyncing...
...
[Stream 70] Invalid magic c458
[Stream 70] Invalid magic af39
...
[stream 70] Lost 8 packets
[Stream 70] Lost too many packets, resyncing...
The packets are of big dimension: 1760 and 1920 bytes. Some people has my same problem and they think that the problem is in this kernel driver.
They said that It seems that the USB stack is forwarding packets with some sort of offset and that the packets are prone to be forwarded non-ordered.
Any idea of the possible cause of this behavior?
Cheers