grub-devel
[Top][All Lists]
Advanced

[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

Attachment: usb_maxpacketbulk_100923_0
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]