Daniel Drake
2007-12-01 18:06:42 UTC
Hi,
Can someone explain the purpose of MAX_USBFS_BUFFER_SIZE?
It is defined in drivers/usb/core/devio.c:
#define MAX_USBFS_BUFFER_SIZE 16384
It is checked in proc_do_submiturb() (i.e. async urb submissions) for
control, bulk, and interrupt transfers.
If you want to do a bulk transfer of larger size, no problem: split your
request into a few smaller URBs and everything will work.
If you want to do an interrupt transfer of larger size, no problem: same
solution as bulk
But the real problem:
If you want to do a control transfer of larger size, you're out of luck!
You can't divide up control messages like that, since the setup packet
header for each URB is interpreted by the device.
It looks like the only way to submit control URBs larger than 16kb using
usbfs is to use the synchronous USBDEVFS_CONTROL ioctl -- there is no
async way.
Any comments/thoughts on that?
Thanks,
Daniel
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Can someone explain the purpose of MAX_USBFS_BUFFER_SIZE?
It is defined in drivers/usb/core/devio.c:
#define MAX_USBFS_BUFFER_SIZE 16384
It is checked in proc_do_submiturb() (i.e. async urb submissions) for
control, bulk, and interrupt transfers.
If you want to do a bulk transfer of larger size, no problem: split your
request into a few smaller URBs and everything will work.
If you want to do an interrupt transfer of larger size, no problem: same
solution as bulk
But the real problem:
If you want to do a control transfer of larger size, you're out of luck!
You can't divide up control messages like that, since the setup packet
header for each URB is interpreted by the device.
It looks like the only way to submit control URBs larger than 16kb using
usbfs is to use the synchronous USBDEVFS_CONTROL ioctl -- there is no
async way.
Any comments/thoughts on that?
Thanks,
Daniel
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel