2019-01-21 09:48:03

by Zengtao (B)

[permalink] [raw]
Subject: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC endpoint

For ISOC transfers, if there is no available data for a period, we need
to stop the transfer by issue a stop command, otherwise, all the
upcoming transfers will started by update transfer command, and will be
dropped with MISS ISOC errors.

Signed-off-by: Zeng Tao <[email protected]>
---
drivers/usb/dwc3/gadget.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index e18c2a2..58e71ba 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2500,6 +2500,10 @@ static void dwc3_gadget_endpoint_transfer_in_progress(struct dwc3_ep *dep,
stop = true;
}

+ if (list_empty(&dep->started_list) &&
+ (usb_endpoint_xfer_isoc(dep->endpoint.desc)))
+ stop = true;
+
dwc3_gadget_ep_cleanup_completed_requests(dep, event, status);

if (stop) {
--
2.7.4



2019-01-21 08:19:13

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC endpoint


Hi,

Zeng Tao <[email protected]> writes:
> For ISOC transfers, if there is no available data for a period, we need
> to stop the transfer by issue a stop command, otherwise, all the
> upcoming transfers will started by update transfer command, and will be
> dropped with MISS ISOC errors.

We, actually, have code to handle missed isoc errors now. Have you
tested with that applied? Which kernel are you using? Can you share
tracepoints captured with v5.0-rc3?

--
balbi


Attachments:
signature.asc (847.00 B)

2019-01-21 08:53:48

by Zengtao (B)

[permalink] [raw]
Subject: RE: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC endpoint

Hi balbi:

>-----Original Message-----
>From: Felipe Balbi [mailto:[email protected]]
>Sent: Monday, January 21, 2019 4:17 PM
>To: Zengtao (B) <[email protected]>
>Cc: Zengtao (B) <[email protected]>; Greg Kroah-Hartman
><[email protected]>; [email protected];
>[email protected]
>Subject: Re: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC
>endpoint
>
>* PGP Signed by an unknown key
>
>
>Hi,
>
>Zeng Tao <[email protected]> writes:
>> For ISOC transfers, if there is no available data for a period, we
>> need to stop the transfer by issue a stop command, otherwise, all the
>> upcoming transfers will started by update transfer command, and will
>> be dropped with MISS ISOC errors.
>
>We, actually, have code to handle missed isoc errors now. Have you tested
>with that applied? Which kernel are you using? Can you share tracepoints
>captured with v5.0-rc3?
>

Not v5.0-rc3, but I tested it based on 4.9 with backported dwc3 driver. And with
UVC application, it's very easy to reproduce it.

>--
>balbi
>
>* Unknown Key
>* 0xE11A9906

2019-01-21 08:57:51

by Felipe Balbi

[permalink] [raw]
Subject: RE: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC endpoint


Hi,

"Zengtao (B)" <[email protected]> writes:
>>-----Original Message-----
>>From: Felipe Balbi [mailto:[email protected]]
>>Sent: Monday, January 21, 2019 4:17 PM
>>To: Zengtao (B) <[email protected]>
>>Cc: Zengtao (B) <[email protected]>; Greg Kroah-Hartman
>><[email protected]>; [email protected];
>>[email protected]
>>Subject: Re: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC
>>endpoint
>>
>>* PGP Signed by an unknown key
>>
>>
>>Hi,
>>
>>Zeng Tao <[email protected]> writes:
>>> For ISOC transfers, if there is no available data for a period, we
>>> need to stop the transfer by issue a stop command, otherwise, all the
>>> upcoming transfers will started by update transfer command, and will
>>> be dropped with MISS ISOC errors.
>>
>>We, actually, have code to handle missed isoc errors now. Have you tested
>>with that applied? Which kernel are you using? Can you share tracepoints
>>captured with v5.0-rc3?
>>
>
> Not v5.0-rc3, but I tested it based on 4.9 with backported dwc3 driver. And with
> UVC application, it's very easy to reproduce it.

Ok, so it could be that you missed patches while backporting, right? How
can I reproduce this? What do I need? Care to give detailed
instructions?

--
balbi


Attachments:
signature.asc (847.00 B)

2019-02-23 09:26:54

by Zengtao (B)

[permalink] [raw]
Subject: RE: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC endpoint

Hi balbi:

I got this issue in the UVC application, and I think this issue still exist in the
latest dwc3 driver.

And we should issue an stop command and the queue is empty when it's
ISOC transfer, otherwise we will end up with MISS ISOC error for all the
upcoming transfers.

So I think you can test the UVC application with the latest driver.

Regards
Zengtao

>-----Original Message-----
>From: Felipe Balbi [mailto:[email protected]]
>Sent: Monday, January 21, 2019 4:56 PM
>To: Zengtao (B) <[email protected]>
>Cc: Greg Kroah-Hartman <[email protected]>;
>[email protected]; [email protected]; Laurent
>Pinchart <[email protected]>
>Subject: RE: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC
>endpoint
>
>* PGP Signed by an unknown key
>
>
>Hi,
>
>"Zengtao (B)" <[email protected]> writes:
>>>-----Original Message-----
>>>From: Felipe Balbi [mailto:[email protected]]
>>>Sent: Monday, January 21, 2019 4:17 PM
>>>To: Zengtao (B) <[email protected]>
>>>Cc: Zengtao (B) <[email protected]>; Greg Kroah-Hartman
>>><[email protected]>; [email protected];
>>>[email protected]
>>>Subject: Re: [PATCH] usb: dwc3: gadget: issue a stop command for
>ISOC
>>>endpoint
>>>
>>>> Old Signed by an unknown key
>>>
>>>
>>>Hi,
>>>
>>>Zeng Tao <[email protected]> writes:
>>>> For ISOC transfers, if there is no available data for a period, we
>>>> need to stop the transfer by issue a stop command, otherwise, all
>>>> the upcoming transfers will started by update transfer command,
>and
>>>> will be dropped with MISS ISOC errors.
>>>
>>>We, actually, have code to handle missed isoc errors now. Have you
>>>tested with that applied? Which kernel are you using? Can you share
>>>tracepoints captured with v5.0-rc3?
>>>
>>
>> Not v5.0-rc3, but I tested it based on 4.9 with backported dwc3
>> driver. And with UVC application, it's very easy to reproduce it.
>
>Ok, so it could be that you missed patches while backporting, right?
>How can I reproduce this? What do I need? Care to give detailed
>instructions?
>
>--
>balbi
>
>* Unknown Key
>* 0xE11A9906

2019-04-25 14:12:37

by Felipe Balbi

[permalink] [raw]
Subject: RE: [PATCH] usb: dwc3: gadget: issue a stop command for ISOC endpoint


(please, avoid top-posting)

Hi,

"Zengtao (B)" <[email protected]> writes:

> Hi balbi:
>
> I got this issue in the UVC application, and I think this issue still exist in the
> latest dwc3 driver.
>
> And we should issue an stop command and the queue is empty when it's
> ISOC transfer, otherwise we will end up with MISS ISOC error for all the
> upcoming transfers.
>
> So I think you can test the UVC application with the latest driver.

right. Then what do I do? How do you load the driver, how do you start
the application? When do you plug the cable?

Please, provide exact steps so I can try to replicate the problem.

--
balbi


Attachments:
signature.asc (847.00 B)