Re: [PATCH] usb bulk transfer: 1024 byte packets



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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Cause of Dropped HS ISO Packets?
    ... I am going to try tomorrow to switch back to ASAP for all scheduling and see if that improves anything. ... because of your restriction to 8packets and not adventuring to ... I have done this in the past and I was actually pretty impressed with how consistently the completion routines were called. ... One thing that did occur to me regarding URB scheduling and so-forth is that scheduling a URB with the HC driver is not the same as actually having it scheduled with the HC. ...
    (microsoft.public.development.device.drivers)
  • Re: bulkusb sample
    ... You can send an URB for virtually any transfer size. ... The host controller will ensure that the packets sent over the wire are not more than the endpoint's MaxPacketSize. ... Now, my guess is that your device is full speed and not high speed, in which case 64 bytes for MaxPacket makes sense. ... The maximum packet size of a pipe is specified in the USB ...
    (microsoft.public.development.device.drivers)
  • Re: [PATCH] usb bulk transfer: 1024 byte packets
    ... byte packets in bulk transfer mode (despite the hard limit of 512 ... created a kernel patch which allows the use of 1024 byte URBs, ... The transfer size in the URB is not limited by the maximum packet size. ... to discuss the specifics of what it mean "devices insisted on 1024". ...
    (Linux-Kernel)
  • Re: [PATCH] usb bulk transfer: 1024 byte packets
    ... The HC driver splits up the transfer as specified by URB into ... the required number of packets. ... no matter what direction. ...
    (Linux-Kernel)