Re: Gadget driver & virtual hub

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> writes:
>> 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.
>
> No, there isn't, sadly. I've confirmed with the HW vendor. I might
> still enable SG with a fallback to bounce buffering to a pre-allocated
> packet buffer if I hit such a situation... It shouldn't be common for
> mass storage (though do we use sglists for the mass storage gadget ?),

UASP does use it ;-)

> it might be more with networking if our network function does
> fragmented sends, I haven't checked.

Well, even networking gadget is using a linear buffer. Nobody
implemented support for sg lists yet.

>> > 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.
>
> Yup, that was indeed my assumption. Thanks for confirming.

np

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux