Hi,

yfw <nh26...@gmail.com> writes:
> On 2016/9/26 16:12, Felipe Balbi wrote:
>> In case of High-Speed, High-Bandwidth endpoints, we
>> need to tell DWC3 that we have more than one packet
>> per interval. We do that by setting PCM1 field of
>> Isochronous-First TRB.
>>
>> Signed-off-by: Felipe Balbi <felipe.ba...@linux.intel.com>
>> ---
>>  drivers/usb/dwc3/gadget.c | 14 ++++++++++++--
>>  1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
>> index 997e82dcc55e..5f7e39407892 100644
>> --- a/drivers/usb/dwc3/gadget.c
>> +++ b/drivers/usb/dwc3/gadget.c
>> @@ -793,6 +793,9 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
>>              unsigned length, unsigned chain, unsigned node)
>>  {
>>      struct dwc3_trb         *trb;
>> +    struct dwc3             *dwc = dep->dwc;
>> +    struct usb_gadget       *gadget = &dwc->gadget;
>> +    enum usb_device_speed   speed = gadget->speed;
>>
>>      dwc3_trace(trace_dwc3_gadget, "%s: req %p dma %08llx length %d%s",
>>                      dep->name, req, (unsigned long long) dma,
>> @@ -819,10 +822,17 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
>>              break;
>>
>>      case USB_ENDPOINT_XFER_ISOC:
>> -            if (!node)
>> +            if (!node) {
>>                      trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS_FIRST;
>> -            else
>> +
>> +                    if (speed == USB_SPEED_HIGH) {
>> +                            struct usb_ep *ep = &dep->endpoint;
>> +                            u8 pkts = usb_endpoint_isoc_maxp_mult(ep->desc);
>> +                            trb->size |= DWC3_TRB_SIZE_PCM1(pkts - 1);
>> +                    }
>> +            } else {
>>                      trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS;
>> +            }
>>
>>              /* always enable Interrupt on Missed ISOC */
>>              trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI;
>>
>
> Looks good to me. You could add
>     Reviewed-by: Fengwei Yin <nh26...@gmail.com>

looking at the wrong thread, please have a look at this one:

https://marc.info/?l=linux-usb&m=147506797611366&w=2

-- 
balbi

Attachment: signature.asc
Description: PGP signature

Reply via email to