[U-Boot] DWC2 driver issues

Kishon Vijay Abraham I
2015-03-02T14:04:59Z

On Monday 02 March 2015 05:08 PM, Marek Vasut wrote:
> On Friday, February 20, 2015 at 04:22:58 AM, Stephen Warren wrote:
>
> Hi!
>
> [...]
>
>>>> Existing code that invokes USB transfers will call (a) once. (a) will
>>>> call (b) as many times as needed to break up the packet into small
>>>> chunks. (b) will either send the transaction to the HW (HS devices or
>>>> directly attached LS/FS devices), or perform the split transaction
>>>> handling (remotely attached LS/FS devices).
>>>>
>>>> Does that sound like a reasonable approach?
>>>>
>>>> I can start looking into getting split transactions going; I just
>>>> couldn't motivate myself last Friday night.
>>>
>>> Do you plan to do this on the USB stack level or USB controller driver
>>> level please ?
>>
>> I expect I'd put at least the split transaction stuff into the USB
>> controller driver. While I'm not that familiar with anything other than
>> standard EHCI, I'd guess the need to manually manage split transaction
>> was unique to DWC2?
>
> Looks that way. +CC Kishon , what about DWC3 ?

SPLIT transaction is specific to host controller and the DWC3 work I did is
gadget driver. So I'd assume it should be handled by xhci driver.
>
>> The split of transfers into max-packet-sized transfers could plausibly
>> be useful in the core, but again my guess is that the need to do this is
>> DWC2-specific?
>
> Kishon ?

AFAIK dwc3 requires max-packet "aligned" request sizes and we manage it by
using bounce buffer and chained TRBs. The hw itself takes care of sending
max-packet-sized transfers. But again I'm talking w.r.t gadget driver.

Cheers
Kishon