You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I've tested on Raspberry PI 4 and BeagleBone Black (using the usb-proxy project) and on both there seems to be an issue with data from host to device.
It seems that when we get data from the host, it could contain more than just one packet (up to info.eps[i].limits.maxpacket_limit) which aside from the weird behavior on the actual device, it may also get lost when sent back to the device.
Any chance this can be tuned to only process one message at a time?
On Raspberry PI 4 the behavior is worse as it transfers 1024 bytes at a time most of the time and sometimes it gets blocked for a second with no transfer at all but the Raspberry PI is somewhat known to exhibit USB issues (I see 11 packets of 1024 bytes transferred in a timeframe of 2 seconds and no packets are going the other way which blocks the use of the device).
The transfers from device to host don't show any issue and they respect the expected message size.
Thanks in advance for any feedback
The text was updated successfully, but these errors were encountered:
One USB_RAW_IOCTL_EP_READ call queues one request via usb_ep_queue(). However, the request might be filled with multiple packets. See the comment for usb_ep_queue() and its implementation for net2280 (as an example).
I don't think we need any changes in Raw Gadget. However, USB proxy needs to be aware of this behavior.
Thanks, I adapted the USB proxy implementation to process one packet at a time based on endpoint wMaxPacketSize and it works as expected. The flow fails on Rapsberry PI4 after a while and I was hoping there was something that could be done on the kernel driver side but couldn't find anything useful so far.
Hi, I've tested on Raspberry PI 4 and BeagleBone Black (using the usb-proxy project) and on both there seems to be an issue with data from host to device.
It seems that when we get data from the host, it could contain more than just one packet (up to info.eps[i].limits.maxpacket_limit) which aside from the weird behavior on the actual device, it may also get lost when sent back to the device.
Any chance this can be tuned to only process one message at a time?
On Raspberry PI 4 the behavior is worse as it transfers 1024 bytes at a time most of the time and sometimes it gets blocked for a second with no transfer at all but the Raspberry PI is somewhat known to exhibit USB issues (I see 11 packets of 1024 bytes transferred in a timeframe of 2 seconds and no packets are going the other way which blocks the use of the device).
The transfers from device to host don't show any issue and they respect the expected message size.
Thanks in advance for any feedback
The text was updated successfully, but these errors were encountered: