Dear Mr Kroah ,

I'm an italian engineer who are working on a usb device that use cdc_acm
usb driver.

The device in question is not a modem.
We configure it as full-speed device(12 Mbps) with bulk transfer (bulk
packet size = 64)

We have slower performance in USB transfer rate(450 Kbps under linux
instead of 7Mbps under windows) performing write operations.

We have see ,with oscilloscope's aid,that the problem is relating to
bulk packet frequency in the URB frame : we have only one packet each
URB frame (multiple in windows).

How can we increase this feature?
Should we choose another transfer/endpoint types?
Should we modify our driver,cdc_acm module,uhci_hcd module or what
else ?

All suggestions are very appreciated.

Best Regards
Alessandro Paolinelli - Genesy s.r.l. Pisa - Italy


Here Oliver Neukum's answer:

Yes,

the acm driver uses a queue of multiple buffers only on the reading path.
If this is the cause, you should see better performance on the read path.
Why do you use acm for a device that is not a modem? It is possible
to change the driver, but I need a legitimate reason.
If you can do so, increasing packet size will help. In fact, change this line:

        acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize);
of cdc-acm.c to acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize) * 4;
and test it.

        Regards
                Oliver

-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to