[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Trunk: usbtrans.c - wrong max packet size for bulk transfer
From: |
Aleš Nesrsta |
Subject: |
[PATCH] Trunk: usbtrans.c - wrong max packet size for bulk transfer |
Date: |
Thu, 23 Sep 2010 22:27:27 +0200 |
Hi,
I discovered problem which happens if bulk EP has shorter wMaxPacketSize
value than control (zero) EP.
There was bug in usbtrans.c, see patch.
Another problem happens when bulk EP has wMaxPacketSize <= 16 - in this
case transfer error happens because it is not possible to allocate
sufficient number of TDs.
It can happen - according USB1.1 specification, any bulk EP can have
wMaxPacketSize value equal to 8, 16, 32 or 64 (USB 2.0 capable bulk EP
can have 512).
So I increased number of TDs in UHCI and OHCI driver to 640 - it should
be enough for the worse case wMaxPacketSize=8, with some reserve for
"background" communication.
I successfully tested included patch on UHCI with GARMIN OREGON 300
which has:
EP1 (OUT) wMaxPacketSize = 64
EP3 (IN) wMaxPacketSize = 16
(i.e. this device is related to both problems)
Regards
Ales
usb_maxpacketbulk_100923_0
Description: Text Data