Hi, Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> writes: > So another question :-) > > Is it legal to break down a bulk (or ISO) IN request into packets that > are *smaller* than the Max EP size ? it depends if they are *supposed* to be two smaller packets or should be two parts of a single one. > For example, I have a max EP size of 512 bytes and the gadget gives me > an SG list where that's broken up into two segments (for example 2x256 > bytes). > > Now, I'm still trying to confirm with the vendor what happens here, but > I *suspect* that if I create 2 descriptors, the HW will break it down > into 2 packets smaller than the max EP size on the wire. If that's the case, then your HW can't handle SG lists. I suspect there will be some "chain" bit somewhere in the DMA descriptor which you can use to tell DMA that these two segments are part of a single transfer. > I do have vague memories of seeing "client" drivers in the past with > make assumptions that some "replies" are fully contained in a single > packet, so I'm tempted to say that this won't work, and thus should > bounce such packets through a linear buffer but I'd like confirmation. yeah, USB makes that assumption. If host side requests 512 bytes and you end up breaking that into two packets, host will receive only the first 256 bytes, as short packets terminate transfers. -- balbi
Attachment:
signature.asc
Description: PGP signature