Messages in this thread | | | Date | Sat, 14 Apr 2007 09:14:25 -0400 (EDT) | Subject | Re: [PATCH] usb bulk transfer: 1024 byte packets | From | "Jeremy C. Andrus" <> |
| |
On Fri, April 13, 2007 22:16, Pete Zaitcev wrote: > > The transfer size in the URB is not limited by the maximum packet > size. The HC driver splits up the transfer as specified by URB into > the required number of packets.
The problem was not in the transfer from PC -> Device, but from Device -> PC. If I remember correctly, the 512 limit (in the urb->transfer_flags) is used to setup the DMA. When the device sent packets which were 1024 bytes in size, the urb came back with a status set to -EOVERFLOW.
The only place this could happen (in the EHCI) is in qtd_copy_status() where the hardware has reported a "can't proceed" error (via QTD_STS_HALT) and then the QTD_STS_BABBLE bit is set (which I interpret to mean that the device on the other end is "babbling").
[snip] > I presume the devices didn't show up on your doorstep with baseball > bats to have a little chat.
In a sense they did when there was no way for me to do BULK transfers without slamming me with 1024 byte packets :-).
-Jeremy
-- ----------------------- Jeremy C. Andrus http://www.jeremya.com/ -----------------------
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |