> Someone from the Sun's USB group (or a member of the larger opensolaris 
> community, says he, hopelessly) needs to look into this, yes.

And they should probably start by looking at the receive buffer size. 
Here's where we submit rx request:

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/usb/clients/usbser/usbsacm/usbsacm.c#2330

2351    data_len = min(acmp->acm_xfer_sz, acm_port->acm_bulkin_size * 2);

acm_xfer_sz is set earlier via usb_pipe_get_max_bulk_transfer_size() - 
it's a large value, 256K bytes for OHCI.

But acm_bulkin_size is set to:

2070    acm_port->acm_bulkin_size = in_data->ep_descr.wMaxPacketSize;

The 3G cards I've experimented with had wMaxPacketSize of 64 bytes. So 
we'd be receiving in 128 byte chunks. I would guess increasing this size 
would greatly reduce overhead. I think I was using 4096 in my prototype, 
not sure why it was changed.

-Artem

Reply via email to