Dear Mr Neukum,
thanks again for your fast answer.
We have try your solution and the performance are increasing very much.
We have choose a packet size of 2Kb (acm->writesize =
le16_to_cpu(epwrite->wMaxPacketSize) * 32;)
and our baudrate is coming up from 450 Kbps to 5 Mbps.
I hope my email were not so boring...
Best regards
Alessandro Paolinelli
acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize) * 4;
Am Mittwoch, 12. Dezember 2007 16:11:46 schrieb Alessandro Paolinelli:
Dear Mr Neukum,
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).
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