diff mbox series

[v2,1/2] usb: dwc3: Not set DWC3_EP_END_TRANSFER_PENDING in ep cmd fails

Message ID 1644836933-141376-2-git-send-email-dh10.jung@samsung.com
State Superseded
Headers show
Series Fix ep command fail issue in dequeue | expand

Commit Message

Jung Daehwan Feb. 14, 2022, 11:08 a.m. UTC
It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
skipping clear stall commmand or giveback from dequeue. We fix to set it
only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
for next trb to start transfer not update transfer.

Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
---
 drivers/usb/dwc3/gadget.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Thinh Nguyen Feb. 14, 2022, 6:44 p.m. UTC | #1
Hi,

Daehwan Jung wrote:
> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like

How does it fail? Timed out?

> skipping clear stall commmand or giveback from dequeue. We fix to set it
> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
> for next trb to start transfer not update transfer.

We shouldn't do this. Things will be out of sync. It may work for 1
scenario, but it won't work for others.

Please help me understand a few things:

1) What is the scenario that triggers this? Is it random?

2) Are there other traffics pending while issuing the End Transfer
command? If so, what transfer type(s)?

3) Have you tried increasing the timeout?

BR,
Thinh


> 
> Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
> ---
>  drivers/usb/dwc3/gadget.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 183b90923f51..3ad3bc5813ca 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -2044,6 +2044,12 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
>  				dwc3_gadget_move_cancelled_request(r,
>  						DWC3_REQUEST_STATUS_DEQUEUED);
>  
> +			/* If ep cmd fails, then force to giveback cancelled requests here */
> +			if (!(dep->flags & DWC3_EP_END_TRANSFER_PENDING)) {
> +				dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
> +				dwc3_gadget_ep_cleanup_cancelled_requests(dep);
> +			}
> +
>  			dep->flags &= ~DWC3_EP_WAIT_TRANSFER_COMPLETE;
>  
>  			goto out;
> @@ -3645,7 +3651,7 @@ static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
>  
>  	if (!interrupt)
>  		dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
> -	else
> +	else if (!ret)
>  		dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
>  }
>
Jung Daehwan Feb. 15, 2022, 6:39 a.m. UTC | #2
Hi Thinh,

On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
> Hi,
> 
> Daehwan Jung wrote:
> > It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
> > even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
> 
> How does it fail? Timed out?

Yes, timed out.
> 
> > skipping clear stall commmand or giveback from dequeue. We fix to set it
> > only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
> > for next trb to start transfer not update transfer.
> 
> We shouldn't do this. Things will be out of sync. It may work for 1
> scenario, but it won't work for others.
> 
> Please help me understand a few things:
> 
> 1) What is the scenario that triggers this? Is it random?
> 
ep cmd timeout occurs on dequeue request from user side. End Transfer command
would be sent in dwc3_stop_active transfer.

> 2) Are there other traffics pending while issuing the End Transfer
> command? If so, what transfer type(s)?
> 
I haven't checked it yet. 

> 3) Have you tried increasing the timeout?
> 
No, I haven't.
> BR,
> Thinh
> 

This issue occurs very rarely on customer. I only have restricted
information. That's why I've been trying to reproduce it.

Wesley may have run into same issue and you can see this issue in detail.
https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https%3A%2F%2Flore.kernel.org%2Flinux-usb%2F20220203080017.27339-1-quic_wcheng%40quicinc.com%2F

Best Regards,
Jung Daehwan
> 
> > 
> > Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
> > ---
> >  drivers/usb/dwc3/gadget.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> > index 183b90923f51..3ad3bc5813ca 100644
> > --- a/drivers/usb/dwc3/gadget.c
> > +++ b/drivers/usb/dwc3/gadget.c
> > @@ -2044,6 +2044,12 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
> >  				dwc3_gadget_move_cancelled_request(r,
> >  						DWC3_REQUEST_STATUS_DEQUEUED);
> >  
> > +			/* If ep cmd fails, then force to giveback cancelled requests here */
> > +			if (!(dep->flags & DWC3_EP_END_TRANSFER_PENDING)) {
> > +				dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
> > +				dwc3_gadget_ep_cleanup_cancelled_requests(dep);
> > +			}
> > +
> >  			dep->flags &= ~DWC3_EP_WAIT_TRANSFER_COMPLETE;
> >  
> >  			goto out;
> > @@ -3645,7 +3651,7 @@ static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
> >  
> >  	if (!interrupt)
> >  		dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
> > -	else
> > +	else if (!ret)
> >  		dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
> >  }
> >  
>
Jung Daehwan Feb. 15, 2022, 6:58 a.m. UTC | #3
On Mon, Feb 14, 2022 at 12:29:49PM +0100, Greg Kroah-Hartman wrote:
> On Mon, Feb 14, 2022 at 08:08:52PM +0900, Daehwan Jung wrote:
> > It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
> > even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
> > skipping clear stall commmand or giveback from dequeue. We fix to set it
> > only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
> > for next trb to start transfer not update transfer.
> 
> So is this two different changes?
> 
> > 
> > Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
> 
> What commit id does this fix?
> 
> thanks,
> 
> greg k-h
> 

Hi greg,

Below is commit id to fix.

commit c58d8bfc77a2c7f6ff6339b58c9fca7ae6f57e70
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 18 18:14:44 2019 -0800

    usb: dwc3: gadget: Check END_TRANSFER completion

    While the END_TRANSFER command is sent but not completed, any request
    dequeue during this time will cause the driver to issue the END_TRANSFER
    command. The driver needs to submit the command only once to stop the
    controller from processing further. The controller may take more time to
    process the same command multiple times unnecessarily. Let's add a flag
    DWC3_EP_END_TRANSFER_PENDING to check for this condition.

    Fixes: 3aec99154db3 ("usb: dwc3: gadget: remove DWC3_EP_END_TRANSFER_PENDING")
    Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Wesley may have run into same issue and I think it's better for us to discuss.

https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https%3A%2F%2Flore.kernel.org%2Flinux-usb%2F20220203080017.27339-1-quic_wcheng%40quicinc.com%2F

Best Regards,
Jung Daehwan
Greg KH Feb. 15, 2022, 7:37 a.m. UTC | #4
On Tue, Feb 15, 2022 at 03:58:26PM +0900, Jung Daehwan wrote:
> On Mon, Feb 14, 2022 at 12:29:49PM +0100, Greg Kroah-Hartman wrote:
> > On Mon, Feb 14, 2022 at 08:08:52PM +0900, Daehwan Jung wrote:
> > > It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
> > > even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
> > > skipping clear stall commmand or giveback from dequeue. We fix to set it
> > > only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
> > > for next trb to start transfer not update transfer.
> > 
> > So is this two different changes?
> > 
> > > 
> > > Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
> > 
> > What commit id does this fix?
> > 
> > thanks,
> > 
> > greg k-h
> > 
> 
> Hi greg,
> 
> Below is commit id to fix.
> 
> commit c58d8bfc77a2c7f6ff6339b58c9fca7ae6f57e70
> Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
> Date:   Wed Dec 18 18:14:44 2019 -0800

<snip>

Then please properly put that as a "Fixes:" tag in the signed-off-by
area when you resubmit this.

thanks,

greg k-h
Jung Daehwan Feb. 15, 2022, 8:20 a.m. UTC | #5
On Tue, Feb 15, 2022 at 08:37:11AM +0100, Greg Kroah-Hartman wrote:
> On Tue, Feb 15, 2022 at 03:58:26PM +0900, Jung Daehwan wrote:
> > On Mon, Feb 14, 2022 at 12:29:49PM +0100, Greg Kroah-Hartman wrote:
> > > On Mon, Feb 14, 2022 at 08:08:52PM +0900, Daehwan Jung wrote:
> > > > It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
> > > > even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
> > > > skipping clear stall commmand or giveback from dequeue. We fix to set it
> > > > only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
> > > > for next trb to start transfer not update transfer.
> > > 
> > > So is this two different changes?
> > > 
> > > > 
> > > > Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
> > > 
> > > What commit id does this fix?
> > > 
> > > thanks,
> > > 
> > > greg k-h
> > > 
> > 
> > Hi greg,
> > 
> > Below is commit id to fix.
> > 
> > commit c58d8bfc77a2c7f6ff6339b58c9fca7ae6f57e70
> > Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
> > Date:   Wed Dec 18 18:14:44 2019 -0800
> 
> <snip>
> 
> Then please properly put that as a "Fixes:" tag in the signed-off-by
> area when you resubmit this.
> 
> thanks,
> 
> greg k-h
> 

I got it. Thanks.

Best Regards,
Jung Daehwan
Thinh Nguyen Feb. 15, 2022, 5:14 p.m. UTC | #6
Jung Daehwan wrote:
> Hi Thinh,
> 
> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>> Hi,
>>
>> Daehwan Jung wrote:
>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>
>> How does it fail? Timed out?
> 
> Yes, timed out.
>>
>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>> for next trb to start transfer not update transfer.
>>
>> We shouldn't do this. Things will be out of sync. It may work for 1
>> scenario, but it won't work for others.
>>
>> Please help me understand a few things:
>>
>> 1) What is the scenario that triggers this? Is it random?
>>
> ep cmd timeout occurs on dequeue request from user side. End Transfer command
> would be sent in dwc3_stop_active transfer.

At the high level, what's triggering the request dequeue? Is it from a
disconnect, change of interface, or simply function driver protocol that
changes it.

What application was used to trigger this?

> 
>> 2) Are there other traffics pending while issuing the End Transfer
>> command? If so, what transfer type(s)?
>>
> I haven't checked it yet. 

Can you check?

> 
>> 3) Have you tried increasing the timeout?
>>
> No, I haven't.

Can you try up to 10 seconds (just for experiment)

>> BR,
>> Thinh
>>
> 
> This issue occurs very rarely on customer. I only have restricted
> information. That's why I've been trying to reproduce it.

How did you test your fix if you can't reproduce it?

> 
> Wesley may have run into same issue and you can see this issue in detail.
> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https*3A*2F*2Flore.kernel.org*2Flinux-usb*2F20220203080017.27339-1-quic_wcheng*40quicinc.com*2F__;JSUlJSUlJQ!!A4F2R9G_pg!JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E$ 
> 

I can take a look, but please provide the tracepoints of the failure if
you can reproduce it.

Thanks,
Thinh
Wesley Cheng Feb. 17, 2022, 8:05 p.m. UTC | #7
Hi Thinh,

On 2/15/2022 9:14 AM, Thinh Nguyen wrote:
> Jung Daehwan wrote:
>> Hi Thinh,
>>
>> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>>> Hi,
>>>
>>> Daehwan Jung wrote:
>>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>>
>>> How does it fail? Timed out?
>>
>> Yes, timed out.
>>>
>>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>>> for next trb to start transfer not update transfer.
>>>
>>> We shouldn't do this. Things will be out of sync. It may work for 1
>>> scenario, but it won't work for others.
>>>
>>> Please help me understand a few things:
>>>
>>> 1) What is the scenario that triggers this? Is it random?
>>>
>> ep cmd timeout occurs on dequeue request from user side. End Transfer command
>> would be sent in dwc3_stop_active transfer.
> 
> At the high level, what's triggering the request dequeue? Is it from a
> disconnect, change of interface, or simply function driver protocol that
> changes it.
> 
> What application was used to trigger this?
> 
Sorry for jumping in here, but looks like Daehwan is running into a
similar issue I am seeing as well.

At least in my scenario, the dequeue is coming from a function driver
which exposes a device to userspace.  Once that device is closed, it
will issue a dequeue on all pending/submitted requests.

>>
>>> 2) Are there other traffics pending while issuing the End Transfer
>>> command? If so, what transfer type(s)?
>>>
>> I haven't checked it yet. 
> 
> Can you check?
> 
For the cases where we've collected a crash log, we can see that during
the END transfer timeouts there was always a pending EP0 transaction.
We had reached out to our internal HW folks to get some inputs on what
could be causing this kind of issue, and we were able to get some
recommendations from their Synopsis POCs.

It was mentioned that if there was an active EP0 transfer, an end
transfer command on a non-control EP can fail w/ timed out.

>>
>>> 3) Have you tried increasing the timeout?
>>>
>> No, I haven't.
> 
> Can you try up to 10 seconds (just for experiment)
> 
I've tried this too, and it did not help.

>>> BR,
>>> Thinh
>>>
>>
>> This issue occurs very rarely on customer. I only have restricted
>> information. That's why I've been trying to reproduce it.
> 
> How did you test your fix if you can't reproduce it?
> 
>>
>> Wesley may have run into same issue and you can see this issue in detail.
>> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https*3A*2F*2Flore.kernel.org*2Flinux-usb*2F20220203080017.27339-1-quic_wcheng*40quicinc.com*2F__;JSUlJSUlJQ!!A4F2R9G_pg!JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E$ 
>>
> 
> I can take a look, but please provide the tracepoints of the failure if
> you can reproduce it.
> 
Let me see if I have any previous traces I can share.  If not, I have a
pretty reliable repro set up I can collect a trace for you.  For now, I
will focus on just getting the endxfer timeout seen during ep dequeue.
As mentioned on my patchset, this can happen during device-initiated
disconnect as well.

Thanks
Wesley Cheng
Thinh Nguyen Feb. 17, 2022, 11:43 p.m. UTC | #8
Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/15/2022 9:14 AM, Thinh Nguyen wrote:
>> Jung Daehwan wrote:
>>> Hi Thinh,
>>>
>>> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>>>> Hi,
>>>>
>>>> Daehwan Jung wrote:
>>>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>>>
>>>> How does it fail? Timed out?
>>>
>>> Yes, timed out.
>>>>
>>>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>>>> for next trb to start transfer not update transfer.
>>>>
>>>> We shouldn't do this. Things will be out of sync. It may work for 1
>>>> scenario, but it won't work for others.
>>>>
>>>> Please help me understand a few things:
>>>>
>>>> 1) What is the scenario that triggers this? Is it random?
>>>>
>>> ep cmd timeout occurs on dequeue request from user side. End Transfer command
>>> would be sent in dwc3_stop_active transfer.
>>
>> At the high level, what's triggering the request dequeue? Is it from a
>> disconnect, change of interface, or simply function driver protocol that
>> changes it.
>>
>> What application was used to trigger this?
>>
> Sorry for jumping in here, but looks like Daehwan is running into a
> similar issue I am seeing as well.
> 
> At least in my scenario, the dequeue is coming from a function driver
> which exposes a device to userspace.  Once that device is closed, it
> will issue a dequeue on all pending/submitted requests.

Dequeuing request is coming from the function driver, but what causes
the dequeue. For example, the End Transfer command due to a disconnect
may give a different clues than a dequeue from a change of interface.

> 
>>>
>>>> 2) Are there other traffics pending while issuing the End Transfer
>>>> command? If so, what transfer type(s)?
>>>>
>>> I haven't checked it yet. 
>>
>> Can you check?
>>
> For the cases where we've collected a crash log, we can see that during
> the END transfer timeouts there was always a pending EP0 transaction.
> We had reached out to our internal HW folks to get some inputs on what
> could be causing this kind of issue, and we were able to get some
> recommendations from their Synopsis POCs.

It's "Synopsys" :)

> 
> It was mentioned that if there was an active EP0 transfer, an end
> transfer command on a non-control EP can fail w/ timed out.
> 

What controller version are you using? And what version is Jung using?
Do you have the STAR number of the issue. If you're using a different
version than Jung's, then it may not be the same issue.

>>>
>>>> 3) Have you tried increasing the timeout?
>>>>
>>> No, I haven't.
>>
>> Can you try up to 10 seconds (just for experiment)
>>
> I've tried this too, and it did not help.
> 
>>>> BR,
>>>> Thinh
>>>>
>>>
>>> This issue occurs very rarely on customer. I only have restricted
>>> information. That's why I've been trying to reproduce it.
>>
>> How did you test your fix if you can't reproduce it?
>>
>>>
>>> Wesley may have run into same issue and you can see this issue in detail.
>>> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https*3A*2F*2Flore.kernel.org*2Flinux-usb*2F20220203080017.27339-1-quic_wcheng*40quicinc.com*2F__;JSUlJSUlJQ!!A4F2R9G_pg!JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E$ 
>>>
>>
>> I can take a look, but please provide the tracepoints of the failure if
>> you can reproduce it.
>>
> Let me see if I have any previous traces I can share.  If not, I have a
> pretty reliable repro set up I can collect a trace for you.  For now, I
> will focus on just getting the endxfer timeout seen during ep dequeue.
> As mentioned on my patchset, this can happen during device-initiated
> disconnect as well.
> 

Your patch set is still on my todo list. I haven't reviewed it. There's
some concern looking at it from a first glance, I'll check it out more
thoroughly later.

Can you provide the tracepoints?

Thanks,
Thinh
Jung Daehwan Feb. 18, 2022, 4:44 a.m. UTC | #9
On Tue, Feb 15, 2022 at 05:14:50PM +0000, Thinh Nguyen wrote:
> Jung Daehwan wrote:
> > Hi Thinh,
> > 
> > On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
> >> Hi,
> >>
> >> Daehwan Jung wrote:
> >>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
> >>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
> >>
> >> How does it fail? Timed out?
> > 
> > Yes, timed out.
> >>
> >>> skipping clear stall commmand or giveback from dequeue. We fix to set it
> >>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
> >>> for next trb to start transfer not update transfer.
> >>
> >> We shouldn't do this. Things will be out of sync. It may work for 1
> >> scenario, but it won't work for others.
> >>
> >> Please help me understand a few things:
> >>
> >> 1) What is the scenario that triggers this? Is it random?
> >>
> > ep cmd timeout occurs on dequeue request from user side. End Transfer command
> > would be sent in dwc3_stop_active transfer.
> 
> At the high level, what's triggering the request dequeue? Is it from a
> disconnect, change of interface, or simply function driver protocol that
> changes it.
> 
> What application was used to trigger this?
> 
Removing function driver requests dequeue.
> > 
> >> 2) Are there other traffics pending while issuing the End Transfer
> >> command? If so, what transfer type(s)?
> >>
> > I haven't checked it yet. 
> 
> Can you check?
> 
It seems there's no pending traffic.
> > 
> >> 3) Have you tried increasing the timeout?
> >>
> > No, I haven't.
> 
> Can you try up to 10 seconds (just for experiment)
> 
Yes, it's reproduced on 10 secs.
> >> BR,
> >> Thinh
> >>
> > 
> > This issue occurs very rarely on customer. I only have restricted
> > information. That's why I've been trying to reproduce it.
> 
> How did you test your fix if you can't reproduce it?
> 

I sent patches to my client and he said this issue would not occur after
applying them. In fact, They are not totally equal with those we are
discussing. I've refactor-ed and pushed them here.

> > 
> > Wesley may have run into same issue and you can see this issue in detail.
> > https://protect2.fireeye.com/v1/url?k=39bd3e50-66260725-39bcb51f-0cc47a31ce4e-bf000d5a697ead66&q=1&e=b04500ad-43d0-4ee7-b5f0-a7283d8fc0da&u=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fprotect2.fireeye.com%2Fv1%2Furl%3Fk%3D9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d%26q%3D1%26e%3D20b4d9f5-2599-4f57-8b6a-7c4ec167d228%26u%3Dhttps%2A3A%2A2F%2A2Flore.kernel.org%2A2Flinux-usb%2A2F20220203080017.27339-1-quic_wcheng%2A40quicinc.com%2A2F__%3BJSUlJSUlJQ%21%21A4F2R9G_pg%21JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E%24 
> > 
> 
> I can take a look, but please provide the tracepoints of the failure if
> you can reproduce it.
> 

Thanks to client's help, I could reproduce it in my envrionment.

1. Trace

MtpServer-2484    [003] d..2   114.376829: dwc3_ep_queue: ep1out: req 0000000055561867 length 0/512 zsI ==> -115
MtpServer-2484    [003] d..2   114.376838: dwc3_prepare_trb: ep1out: trb 0000000074078a95 (E23:D22) buf 0000000954845600 size 512 ctrl 0000001d (HlCS:sc:normal)
MtpServer-2484    [003] d..2   114.376844: dwc3_prepare_trb: ep1out: trb 0000000095f503e7 (E24:D22) buf 00000000e1303000 size 512 ctrl 00000819 (HlcS:sC:normal)
MtpServer-2484    [003] d..2   114.376867: dwc3_gadget_ep_cmd: ep1out: cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status: Successful
ksoftirqd/2-23      [002] d.s2   190.428752: dwc3_ep_dequeue: ep2out: req 00000000732c0f69 length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns3   190.447625: dwc3_gadget_ep_cmd: ep2out: cmd 'End Transfer' [40d08] params 00000000 00000000 00000000 --> status: Timed Out
ksoftirqd/2-23      [002] dns2   190.450596: dwc3_ep_dequeue: ep2out: req 00000000be3434d4 length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns2   190.450618: dwc3_ep_dequeue: ep2out: req 0000000033655f2e length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns2   190.450625: dwc3_ep_dequeue: ep2out: req 00000000dc0ff635 length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns2   190.450633: dwc3_ep_dequeue: ep2out: req 0000000023ffb8e8 length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns2   190.450641: dwc3_ep_dequeue: ep2out: req 000000005fab61aa length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns2   190.450648: dwc3_ep_dequeue: ep2out: req 000000001f618cd8 length 0/16384 zsI ==> -115
ksoftirqd/2-23      [002] dns2   190.450654: dwc3_ep_dequeue: ep2out: req 00000000da0ea1b1 length 0/16384 zsI ==> -115
##### CPU 6 buffer started ####
HwBinder:636_1-658     [006] d..1   190.735324: dwc3_gadget_ep_disable: ep0out: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:>
HwBinder:636_1-658     [006] d..1   190.735327: dwc3_gadget_ep_disable: ep0in: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:<
HwBinder:636_1-658     [003] dn.1   214.206652: dwc3_gadget_ep_disable: ep0out: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:>
HwBinder:636_1-658     [003] dn.1   214.206677: dwc3_gadget_ep_disable: ep0in: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:<

2. Kernel log

[  190.447711]I[2:    ksoftirqd/2:   23] ------------[ cut here ]------------
[  190.447777]I[2:    ksoftirqd/2:   23] WARNING: CPU: 2 PID: 23 at drivers/usb/dwc3/gadget.c:3632 dwc3_gadget_ep_dequeue+0x228/0x234
[  190.449587]I[2:    ksoftirqd/2:   23] pc : dwc3_gadget_ep_dequeue+0x228/0x234
[  190.449610]I[2:    ksoftirqd/2:   23] lr : dwc3_gadget_ep_dequeue+0x124/0x234
[  190.449629]I[2:    ksoftirqd/2:   23] sp : ffffffc01294bad0
[  190.449647]I[2:    ksoftirqd/2:   23] x29: ffffffc01294baf0 x28: 0000000000000000 
[  190.449679]I[2:    ksoftirqd/2:   23] x27: ffffffc0121e4000 x26: ffffff88208c9dc0 
[  190.449711]I[2:    ksoftirqd/2:   23] x25: ffffff893dd5c570 x24: ffffff893dd22080 
[  190.449742]I[2:    ksoftirqd/2:   23] x23: ffffff88a4f8a168 x22: ffffff88a4f8a100 
[  190.449773]I[2:    ksoftirqd/2:   23] x21: ffffff893dd5c500 x20: 0000000000000080 
[  190.449803]I[2:    ksoftirqd/2:   23] x19: ffffff893dd22238 x18: ffffffc01291d068 
[  190.449834]I[2:    ksoftirqd/2:   23] x17: 0000000000004000 x16: ffffff88bb0cc000 
[  190.449864]I[2:    ksoftirqd/2:   23] x15: 0000000000000200 x14: ffffff88208d4d00 
[  190.449895]I[2:    ksoftirqd/2:   23] x13: ffffff88208d4d00 x12: 00000000000001b5 
[  190.449926]I[2:    ksoftirqd/2:   23] x11: ffffff88208c9dc0 x10: 0000000100000103 
[  190.449958]I[2:    ksoftirqd/2:   23] x9 : ffffff88208c9dc0 x8 : 0000000000000008 
[  190.449989]I[2:    ksoftirqd/2:   23] x7 : fefefefefefefefe x6 : 0000000000008080 
[  190.450020]I[2:    ksoftirqd/2:   23] x5 : 0000000000000000 x4 : 0000000000000103 
[  190.450050]I[2:    ksoftirqd/2:   23] x3 : 0000000000000080 x2 : ffffff88208ac900 
[  190.450081]I[2:    ksoftirqd/2:   23] x1 : ffffff88208ac900 x0 : 00000000ffffff92 
[  190.450120]I[2:    ksoftirqd/2:   23] Call trace:
[  190.450153]I[2:    ksoftirqd/2:   23]  dwc3_gadget_ep_dequeue+0x228/0x234
[  190.450187]I[2:    ksoftirqd/2:   23]  usb_ep_dequeue+0x4c/0xa0
[  190.450219]I[2:    ksoftirqd/2:   23]  ffs_aio_cancel+0x4c/0x84
[  190.450247]I[2:    ksoftirqd/2:   23]  free_ioctx_users+0x80/0x110
[  190.450281]I[2:    ksoftirqd/2:   23]  percpu_ref_put_many+0xf0/0x164
[  190.450310]I[2:    ksoftirqd/2:   23]  percpu_ref_switch_to_atomic_rcu+0x13c/0x1dc
[  190.450339]I[2:    ksoftirqd/2:   23]  rcu_do_batch+0x208/0x5b4
[  190.450360]I[2:    ksoftirqd/2:   23]  rcu_core+0x22c/0x43c
[  190.450384]I[2:    ksoftirqd/2:   23]  rcu_core_si+0x14/0x24
[  190.450409]I[2:    ksoftirqd/2:   23]  efi_header_end+0x134/0x350
[  190.450437]I[2:    ksoftirqd/2:   23]  run_ksoftirqd+0x34/0x74

The point is there would be some requests pending without giveback-ed.
They're from removing function driver(ffs_aio_cancel). It could cause
the function driver would wait for dequeue requests completed.

Best Regards,
Jung Daehwan

> Thanks,
> Thinh
Wesley Cheng Feb. 22, 2022, 6:08 p.m. UTC | #10
Hi Thinh,

On 2/17/2022 3:43 PM, Thinh Nguyen wrote:
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 2/15/2022 9:14 AM, Thinh Nguyen wrote:
>>> Jung Daehwan wrote:
>>>> Hi Thinh,
>>>>
>>>> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>>>>> Hi,
>>>>>
>>>>> Daehwan Jung wrote:
>>>>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>>>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>>>>
>>>>> How does it fail? Timed out?
>>>>
>>>> Yes, timed out.
>>>>>
>>>>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>>>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>>>>> for next trb to start transfer not update transfer.
>>>>>
>>>>> We shouldn't do this. Things will be out of sync. It may work for 1
>>>>> scenario, but it won't work for others.
>>>>>
>>>>> Please help me understand a few things:
>>>>>
>>>>> 1) What is the scenario that triggers this? Is it random?
>>>>>
>>>> ep cmd timeout occurs on dequeue request from user side. End Transfer command
>>>> would be sent in dwc3_stop_active transfer.
>>>
>>> At the high level, what's triggering the request dequeue? Is it from a
>>> disconnect, change of interface, or simply function driver protocol that
>>> changes it.
>>>
>>> What application was used to trigger this?
>>>
>> Sorry for jumping in here, but looks like Daehwan is running into a
>> similar issue I am seeing as well.
>>
>> At least in my scenario, the dequeue is coming from a function driver
>> which exposes a device to userspace.  Once that device is closed, it
>> will issue a dequeue on all pending/submitted requests.
> 
> Dequeuing request is coming from the function driver, but what causes
> the dequeue. For example, the End Transfer command due to a disconnect
> may give a different clues than a dequeue from a change of interface.
> 
For us, once the application exits, the corresponding userspace
device/port is closed.  This triggers the function driver to clean up
any pending/queued USB requests.  It doesn't have any association w/ any
USB cable disconnect, or interface change in this case, it is controlled
solely on the application exiting/stopped.
>>
>>>>
>>>>> 2) Are there other traffics pending while issuing the End Transfer
>>>>> command? If so, what transfer type(s)?
>>>>>
>>>> I haven't checked it yet. 
>>>
>>> Can you check?
>>>
>> For the cases where we've collected a crash log, we can see that during
>> the END transfer timeouts there was always a pending EP0 transaction.
>> We had reached out to our internal HW folks to get some inputs on what
>> could be causing this kind of issue, and we were able to get some
>> recommendations from their Synopsis POCs.
> 
> It's "Synopsys" :)
> 
Sorry! :)
>>
>> It was mentioned that if there was an active EP0 transfer, an end
>> transfer command on a non-control EP can fail w/ timed out.
>>
> 
> What controller version are you using? And what version is Jung using?
> Do you have the STAR number of the issue. If you're using a different
> version than Jung's, then it may not be the same issue.
> 
We're using 1.90a.

>>>>
>>>>> 3) Have you tried increasing the timeout?
>>>>>
>>>> No, I haven't.
>>>
>>> Can you try up to 10 seconds (just for experiment)
>>>
>> I've tried this too, and it did not help.
>>
>>>>> BR,
>>>>> Thinh
>>>>>
>>>>
>>>> This issue occurs very rarely on customer. I only have restricted
>>>> information. That's why I've been trying to reproduce it.
>>>
>>> How did you test your fix if you can't reproduce it?
>>>
>>>>
>>>> Wesley may have run into same issue and you can see this issue in detail.
>>>> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https*3A*2F*2Flore.kernel.org*2Flinux-usb*2F20220203080017.27339-1-quic_wcheng*40quicinc.com*2F__;JSUlJSUlJQ!!A4F2R9G_pg!JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E$ 
>>>>
>>>
>>> I can take a look, but please provide the tracepoints of the failure if
>>> you can reproduce it.
>>>
>> Let me see if I have any previous traces I can share.  If not, I have a
>> pretty reliable repro set up I can collect a trace for you.  For now, I
>> will focus on just getting the endxfer timeout seen during ep dequeue.
>> As mentioned on my patchset, this can happen during device-initiated
>> disconnect as well.
>>
> 
> Your patch set is still on my todo list. I haven't reviewed it. There's
> some concern looking at it from a first glance, I'll check it out more
> thoroughly later.
> 
> Can you provide the tracepoints?
> 
I can provide the full trace if you need it, just let me know.  However
here is a quick snippet:

[ 1865.070397670       0x8724e2f18]   dbg_send_ep_cmd: ep2in: cmd
'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
Successful
[ 1865.070449389       0x8724e32fa]   dbg_ep_queue: ep2in: req
ffffff87a36bd300 length 0/65536 zsI ==> -115
[ 1865.070480222       0x8724e3549]   dbg_send_ep_cmd: ep2in: cmd
'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
Successful
[ 1865.070529962       0x8724e3904]   dbg_ep_queue: ep2in: req
ffffff88708dfc00 length 0/65536 zsI ==> -115
[ 1865.070559545       0x8724e3b3c]   dbg_send_ep_cmd: ep2in: cmd
'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
Successful
[ 1865.070610639       0x8724e3f11]   dbg_ep_queue: ep2in: req
ffffff8042a98200 length 0/65536 zsI ==> -115
[ 1865.070640691       0x8724e4152]   dbg_send_ep_cmd: ep2in: cmd
'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
Successful
[ 1865.070692983       0x8724e453e]   dbg_ep_queue: ep2in: req
ffffff8042a98900 length 0/65536 zsI ==> -115
[ 1865.070728972       0x8724e47f1]   dbg_send_ep_cmd: ep2in: cmd
'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
Successful

//EP halt setup packet is received from the PC
[ 1865.166579233       0x8726a5cb7]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep6in)
[ 1865.166716785       0x8726a6708]   dbg_send_ep_cmd: ep6in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful

//This should be the EP0 status phase, as it is on ep0in
[ 1865.166849598       0x8726a70fd]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1865.173668817       0x8726c706e]   dbg_ep_dequeue: ep2in: req
ffffff885f293f00 length 0/62848 zsI ==> -115

//Dequeue timeout occurs here
[ 1865.192420900       0x87271eed6]   dbg_send_ep_cmd: ep2in: cmd 'End
Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out

Thanks
Wesley Cheng
Thinh Nguyen Feb. 23, 2022, 2:11 a.m. UTC | #11
Hi Jung,

Jung Daehwan wrote:
> On Tue, Feb 15, 2022 at 05:14:50PM +0000, Thinh Nguyen wrote:
>> Jung Daehwan wrote:
>>> Hi Thinh,
>>>
>>> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>>>> Hi,
>>>>
>>>> Daehwan Jung wrote:
>>>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>>>
>>>> How does it fail? Timed out?
>>>
>>> Yes, timed out.
>>>>
>>>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>>>> for next trb to start transfer not update transfer.
>>>>
>>>> We shouldn't do this. Things will be out of sync. It may work for 1
>>>> scenario, but it won't work for others.
>>>>
>>>> Please help me understand a few things:
>>>>
>>>> 1) What is the scenario that triggers this? Is it random?
>>>>
>>> ep cmd timeout occurs on dequeue request from user side. End Transfer command
>>> would be sent in dwc3_stop_active transfer.
>>
>> At the high level, what's triggering the request dequeue? Is it from a
>> disconnect, change of interface, or simply function driver protocol that
>> changes it.
>>
>> What application was used to trigger this?
>>
> Removing function driver requests dequeue.

Removing function driver? Did it go through function unbind?

>>>
>>>> 2) Are there other traffics pending while issuing the End Transfer
>>>> command? If so, what transfer type(s)?
>>>>
>>> I haven't checked it yet. 
>>
>> Can you check?
>>
> It seems there's no pending traffic.

If this is the case, then it's different than the scenario Wesley's
described.

>>>
>>>> 3) Have you tried increasing the timeout?
>>>>
>>> No, I haven't.
>>
>> Can you try up to 10 seconds (just for experiment)
>>
> Yes, it's reproduced on 10 secs.
>>>> BR,
>>>> Thinh
>>>>
>>>
>>> This issue occurs very rarely on customer. I only have restricted
>>> information. That's why I've been trying to reproduce it.
>>
>> How did you test your fix if you can't reproduce it?
>>
> 
> I sent patches to my client and he said this issue would not occur after
> applying them. In fact, They are not totally equal with those we are
> discussing. I've refactor-ed and pushed them here.
> 
>>>
>>> Wesley may have run into same issue and you can see this issue in detail.
>>> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=39bd3e50-66260725-39bcb51f-0cc47a31ce4e-bf000d5a697ead66&q=1&e=b04500ad-43d0-4ee7-b5f0-a7283d8fc0da&u=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Fprotect2.fireeye.com*2Fv1*2Furl*3Fk*3D9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d*26q*3D1*26e*3D20b4d9f5-2599-4f57-8b6a-7c4ec167d228*26u*3Dhttps*2A3A*2A2F*2A2Flore.kernel.org*2A2Flinux-usb*2A2F20220203080017.27339-1-quic_wcheng*2A40quicinc.com*2A2F__*3BJSUlJSUlJQ*21*21A4F2R9G_pg*21JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E*24__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!A4F2R9G_pg!LWmQ6CLKb5iIfxy33uvPDJ8HDhcXoveyl0bcBxj_tzZJN1gem7JWFAcD_r8v6riBYkH1$  
>>>
>>
>> I can take a look, but please provide the tracepoints of the failure if
>> you can reproduce it.
>>
> 
> Thanks to client's help, I could reproduce it in my envrionment.
> 
> 1. Trace
> 
> MtpServer-2484    [003] d..2   114.376829: dwc3_ep_queue: ep1out: req 0000000055561867 length 0/512 zsI ==> -115
> MtpServer-2484    [003] d..2   114.376838: dwc3_prepare_trb: ep1out: trb 0000000074078a95 (E23:D22) buf 0000000954845600 size 512 ctrl 0000001d (HlCS:sc:normal)
> MtpServer-2484    [003] d..2   114.376844: dwc3_prepare_trb: ep1out: trb 0000000095f503e7 (E24:D22) buf 00000000e1303000 size 512 ctrl 00000819 (HlcS:sC:normal)
> MtpServer-2484    [003] d..2   114.376867: dwc3_gadget_ep_cmd: ep1out: cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status: Successful

Is there any activity here? Seems like there's 70+ seconds of inactivity?

> ksoftirqd/2-23      [002] d.s2   190.428752: dwc3_ep_dequeue: ep2out: req 00000000732c0f69 length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns3   190.447625: dwc3_gadget_ep_cmd: ep2out: cmd 'End Transfer' [40d08] params 00000000 00000000 00000000 --> status: Timed Out
> ksoftirqd/2-23      [002] dns2   190.450596: dwc3_ep_dequeue: ep2out: req 00000000be3434d4 length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns2   190.450618: dwc3_ep_dequeue: ep2out: req 0000000033655f2e length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns2   190.450625: dwc3_ep_dequeue: ep2out: req 00000000dc0ff635 length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns2   190.450633: dwc3_ep_dequeue: ep2out: req 0000000023ffb8e8 length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns2   190.450641: dwc3_ep_dequeue: ep2out: req 000000005fab61aa length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns2   190.450648: dwc3_ep_dequeue: ep2out: req 000000001f618cd8 length 0/16384 zsI ==> -115
> ksoftirqd/2-23      [002] dns2   190.450654: dwc3_ep_dequeue: ep2out: req 00000000da0ea1b1 length 0/16384 zsI ==> -115
> ##### CPU 6 buffer started ####

Some traces were lost?

> HwBinder:636_1-658     [006] d..1   190.735324: dwc3_gadget_ep_disable: ep0out: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:>
> HwBinder:636_1-658     [006] d..1   190.735327: dwc3_gadget_ep_disable: ep0in: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:<
> HwBinder:636_1-658     [003] dn.1   214.206652: dwc3_gadget_ep_disable: ep0out: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:>
> HwBinder:636_1-658     [003] dn.1   214.206677: dwc3_gadget_ep_disable: ep0in: mps 512/512 streams 0 burst 1 ring 0/0 flags e:swbp:<
> 
> 2. Kernel log
> 
> [  190.447711]I[2:    ksoftirqd/2:   23] ------------[ cut here ]------------
> [  190.447777]I[2:    ksoftirqd/2:   23] WARNING: CPU: 2 PID: 23 at drivers/usb/dwc3/gadget.c:3632 dwc3_gadget_ep_dequeue+0x228/0x234
> [  190.449587]I[2:    ksoftirqd/2:   23] pc : dwc3_gadget_ep_dequeue+0x228/0x234
> [  190.449610]I[2:    ksoftirqd/2:   23] lr : dwc3_gadget_ep_dequeue+0x124/0x234
> [  190.449629]I[2:    ksoftirqd/2:   23] sp : ffffffc01294bad0
> [  190.449647]I[2:    ksoftirqd/2:   23] x29: ffffffc01294baf0 x28: 0000000000000000 
> [  190.449679]I[2:    ksoftirqd/2:   23] x27: ffffffc0121e4000 x26: ffffff88208c9dc0 
> [  190.449711]I[2:    ksoftirqd/2:   23] x25: ffffff893dd5c570 x24: ffffff893dd22080 
> [  190.449742]I[2:    ksoftirqd/2:   23] x23: ffffff88a4f8a168 x22: ffffff88a4f8a100 
> [  190.449773]I[2:    ksoftirqd/2:   23] x21: ffffff893dd5c500 x20: 0000000000000080 
> [  190.449803]I[2:    ksoftirqd/2:   23] x19: ffffff893dd22238 x18: ffffffc01291d068 
> [  190.449834]I[2:    ksoftirqd/2:   23] x17: 0000000000004000 x16: ffffff88bb0cc000 
> [  190.449864]I[2:    ksoftirqd/2:   23] x15: 0000000000000200 x14: ffffff88208d4d00 
> [  190.449895]I[2:    ksoftirqd/2:   23] x13: ffffff88208d4d00 x12: 00000000000001b5 
> [  190.449926]I[2:    ksoftirqd/2:   23] x11: ffffff88208c9dc0 x10: 0000000100000103 
> [  190.449958]I[2:    ksoftirqd/2:   23] x9 : ffffff88208c9dc0 x8 : 0000000000000008 
> [  190.449989]I[2:    ksoftirqd/2:   23] x7 : fefefefefefefefe x6 : 0000000000008080 
> [  190.450020]I[2:    ksoftirqd/2:   23] x5 : 0000000000000000 x4 : 0000000000000103 
> [  190.450050]I[2:    ksoftirqd/2:   23] x3 : 0000000000000080 x2 : ffffff88208ac900 
> [  190.450081]I[2:    ksoftirqd/2:   23] x1 : ffffff88208ac900 x0 : 00000000ffffff92 
> [  190.450120]I[2:    ksoftirqd/2:   23] Call trace:
> [  190.450153]I[2:    ksoftirqd/2:   23]  dwc3_gadget_ep_dequeue+0x228/0x234
> [  190.450187]I[2:    ksoftirqd/2:   23]  usb_ep_dequeue+0x4c/0xa0
> [  190.450219]I[2:    ksoftirqd/2:   23]  ffs_aio_cancel+0x4c/0x84
> [  190.450247]I[2:    ksoftirqd/2:   23]  free_ioctx_users+0x80/0x110
> [  190.450281]I[2:    ksoftirqd/2:   23]  percpu_ref_put_many+0xf0/0x164
> [  190.450310]I[2:    ksoftirqd/2:   23]  percpu_ref_switch_to_atomic_rcu+0x13c/0x1dc
> [  190.450339]I[2:    ksoftirqd/2:   23]  rcu_do_batch+0x208/0x5b4
> [  190.450360]I[2:    ksoftirqd/2:   23]  rcu_core+0x22c/0x43c
> [  190.450384]I[2:    ksoftirqd/2:   23]  rcu_core_si+0x14/0x24
> [  190.450409]I[2:    ksoftirqd/2:   23]  efi_header_end+0x134/0x350
> [  190.450437]I[2:    ksoftirqd/2:   23]  run_ksoftirqd+0x34/0x74
> 
> The point is there would be some requests pending without giveback-ed.
> They're from removing function driver(ffs_aio_cancel). It could cause
> the function driver would wait for dequeue requests completed.
> 

I may misunderstand the description, or something doesn't match up. If
"removing function driver" means function unbind, then this will trigger
disabling the endpoints and dwc3_remove_requests(). If
dwc3_remove_requests() was called, then the dwc3 driver would give back
the requests regardless whether the End Transfer command was completed.

If this is not the full log, can you send the full driver log. That
would give more clues.

Thanks,
Thinh
Thinh Nguyen Feb. 23, 2022, 2:59 a.m. UTC | #12
Hi Wesley,

Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/17/2022 3:43 PM, Thinh Nguyen wrote:
>> Wesley Cheng wrote:
>>> Hi Thinh,
>>>
>>> On 2/15/2022 9:14 AM, Thinh Nguyen wrote:
>>>> Jung Daehwan wrote:
>>>>> Hi Thinh,
>>>>>
>>>>> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Daehwan Jung wrote:
>>>>>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>>>>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>>>>>
>>>>>> How does it fail? Timed out?
>>>>>
>>>>> Yes, timed out.
>>>>>>
>>>>>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>>>>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>>>>>> for next trb to start transfer not update transfer.
>>>>>>
>>>>>> We shouldn't do this. Things will be out of sync. It may work for 1
>>>>>> scenario, but it won't work for others.
>>>>>>
>>>>>> Please help me understand a few things:
>>>>>>
>>>>>> 1) What is the scenario that triggers this? Is it random?
>>>>>>
>>>>> ep cmd timeout occurs on dequeue request from user side. End Transfer command
>>>>> would be sent in dwc3_stop_active transfer.
>>>>
>>>> At the high level, what's triggering the request dequeue? Is it from a
>>>> disconnect, change of interface, or simply function driver protocol that
>>>> changes it.
>>>>
>>>> What application was used to trigger this?
>>>>
>>> Sorry for jumping in here, but looks like Daehwan is running into a
>>> similar issue I am seeing as well.
>>>
>>> At least in my scenario, the dequeue is coming from a function driver
>>> which exposes a device to userspace.  Once that device is closed, it
>>> will issue a dequeue on all pending/submitted requests.
>>
>> Dequeuing request is coming from the function driver, but what causes
>> the dequeue. For example, the End Transfer command due to a disconnect
>> may give a different clues than a dequeue from a change of interface.
>>
> For us, once the application exits, the corresponding userspace
> device/port is closed.  This triggers the function driver to clean up
> any pending/queued USB requests.  It doesn't have any association w/ any
> USB cable disconnect, or interface change in this case, it is controlled
> solely on the application exiting/stopped.
>>>
>>>>>
>>>>>> 2) Are there other traffics pending while issuing the End Transfer
>>>>>> command? If so, what transfer type(s)?
>>>>>>
>>>>> I haven't checked it yet. 
>>>>
>>>> Can you check?
>>>>
>>> For the cases where we've collected a crash log, we can see that during
>>> the END transfer timeouts there was always a pending EP0 transaction.
>>> We had reached out to our internal HW folks to get some inputs on what
>>> could be causing this kind of issue, and we were able to get some
>>> recommendations from their Synopsis POCs.
>>
>> It's "Synopsys" :)
>>
> Sorry! :)
>>>
>>> It was mentioned that if there was an active EP0 transfer, an end
>>> transfer command on a non-control EP can fail w/ timed out.
>>>
>>
>> What controller version are you using? And what version is Jung using?
>> Do you have the STAR number of the issue. If you're using a different
>> version than Jung's, then it may not be the same issue.
>>
> We're using 1.90a.
> 
>>>>>
>>>>>> 3) Have you tried increasing the timeout?
>>>>>>
>>>>> No, I haven't.
>>>>
>>>> Can you try up to 10 seconds (just for experiment)
>>>>
>>> I've tried this too, and it did not help.
>>>
>>>>>> BR,
>>>>>> Thinh
>>>>>>
>>>>>
>>>>> This issue occurs very rarely on customer. I only have restricted
>>>>> information. That's why I've been trying to reproduce it.
>>>>
>>>> How did you test your fix if you can't reproduce it?
>>>>
>>>>>
>>>>> Wesley may have run into same issue and you can see this issue in detail.
>>>>> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https*3A*2F*2Flore.kernel.org*2Flinux-usb*2F20220203080017.27339-1-quic_wcheng*40quicinc.com*2F__;JSUlJSUlJQ!!A4F2R9G_pg!JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E$ 
>>>>>
>>>>
>>>> I can take a look, but please provide the tracepoints of the failure if
>>>> you can reproduce it.
>>>>
>>> Let me see if I have any previous traces I can share.  If not, I have a
>>> pretty reliable repro set up I can collect a trace for you.  For now, I
>>> will focus on just getting the endxfer timeout seen during ep dequeue.
>>> As mentioned on my patchset, this can happen during device-initiated
>>> disconnect as well.
>>>
>>
>> Your patch set is still on my todo list. I haven't reviewed it. There's
>> some concern looking at it from a first glance, I'll check it out more
>> thoroughly later.
>>
>> Can you provide the tracepoints?
>>
> I can provide the full trace if you need it, just let me know.  However
> here is a quick snippet:
> 
> [ 1865.070397670       0x8724e2f18]   dbg_send_ep_cmd: ep2in: cmd
> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
> Successful
> [ 1865.070449389       0x8724e32fa]   dbg_ep_queue: ep2in: req
> ffffff87a36bd300 length 0/65536 zsI ==> -115
> [ 1865.070480222       0x8724e3549]   dbg_send_ep_cmd: ep2in: cmd
> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
> Successful
> [ 1865.070529962       0x8724e3904]   dbg_ep_queue: ep2in: req
> ffffff88708dfc00 length 0/65536 zsI ==> -115
> [ 1865.070559545       0x8724e3b3c]   dbg_send_ep_cmd: ep2in: cmd
> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
> Successful
> [ 1865.070610639       0x8724e3f11]   dbg_ep_queue: ep2in: req
> ffffff8042a98200 length 0/65536 zsI ==> -115
> [ 1865.070640691       0x8724e4152]   dbg_send_ep_cmd: ep2in: cmd
> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
> Successful
> [ 1865.070692983       0x8724e453e]   dbg_ep_queue: ep2in: req
> ffffff8042a98900 length 0/65536 zsI ==> -115
> [ 1865.070728972       0x8724e47f1]   dbg_send_ep_cmd: ep2in: cmd
> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
> Successful
> 
> //EP halt setup packet is received from the PC
> [ 1865.166579233       0x8726a5cb7]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep6in)
> [ 1865.166716785       0x8726a6708]   dbg_send_ep_cmd: ep6in: cmd 'Clear
> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
> 
> //This should be the EP0 status phase, as it is on ep0in
> [ 1865.166849598       0x8726a70fd]   dbg_send_ep_cmd: ep0in: cmd 'Start
> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 1865.173668817       0x8726c706e]   dbg_ep_dequeue: ep2in: req
> ffffff885f293f00 length 0/62848 zsI ==> -115
> 
> //Dequeue timeout occurs here
> [ 1865.192420900       0x87271eed6]   dbg_send_ep_cmd: ep2in: cmd 'End
> Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
> 

Can you provide a full trace?

Btw, when you experiment with increasing the timeout to 10 seconds, did
you use the mdelay() in each loop? The delta time for End Transfer
timeout here seems very small.

Note: The End Transfer command should _only_ gets stuck if the DMA for a
the Setup packet isn’t completed, which should be a short time. It
doesn't look like the case here. (Hopefully the full driver tracepoint
give more clues).

Thanks,
Thinh
Wesley Cheng Feb. 24, 2022, 9:45 p.m. UTC | #13
Hi Thinh,

On 2/22/2022 6:59 PM, Thinh Nguyen wrote:
> Hi Wesley,
> 
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 2/17/2022 3:43 PM, Thinh Nguyen wrote:
>>> Wesley Cheng wrote:
>>>> Hi Thinh,
>>>>
>>>> On 2/15/2022 9:14 AM, Thinh Nguyen wrote:
>>>>> Jung Daehwan wrote:
>>>>>> Hi Thinh,
>>>>>>
>>>>>> On Mon, Feb 14, 2022 at 06:44:33PM +0000, Thinh Nguyen wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> Daehwan Jung wrote:
>>>>>>>> It always sets DWC3_EP_END_TRANSFER_PENDING in dwc3_stop_active_transfer
>>>>>>>> even if dwc3_send_gadget_ep_cmd fails. It can cause some problems like
>>>>>>>
>>>>>>> How does it fail? Timed out?
>>>>>>
>>>>>> Yes, timed out.
>>>>>>>
>>>>>>>> skipping clear stall commmand or giveback from dequeue. We fix to set it
>>>>>>>> only when ep cmd success. Additionally, We clear DWC3_EP_TRANSFER_STARTED
>>>>>>>> for next trb to start transfer not update transfer.
>>>>>>>
>>>>>>> We shouldn't do this. Things will be out of sync. It may work for 1
>>>>>>> scenario, but it won't work for others.
>>>>>>>
>>>>>>> Please help me understand a few things:
>>>>>>>
>>>>>>> 1) What is the scenario that triggers this? Is it random?
>>>>>>>
>>>>>> ep cmd timeout occurs on dequeue request from user side. End Transfer command
>>>>>> would be sent in dwc3_stop_active transfer.
>>>>>
>>>>> At the high level, what's triggering the request dequeue? Is it from a
>>>>> disconnect, change of interface, or simply function driver protocol that
>>>>> changes it.
>>>>>
>>>>> What application was used to trigger this?
>>>>>
>>>> Sorry for jumping in here, but looks like Daehwan is running into a
>>>> similar issue I am seeing as well.
>>>>
>>>> At least in my scenario, the dequeue is coming from a function driver
>>>> which exposes a device to userspace.  Once that device is closed, it
>>>> will issue a dequeue on all pending/submitted requests.
>>>
>>> Dequeuing request is coming from the function driver, but what causes
>>> the dequeue. For example, the End Transfer command due to a disconnect
>>> may give a different clues than a dequeue from a change of interface.
>>>
>> For us, once the application exits, the corresponding userspace
>> device/port is closed.  This triggers the function driver to clean up
>> any pending/queued USB requests.  It doesn't have any association w/ any
>> USB cable disconnect, or interface change in this case, it is controlled
>> solely on the application exiting/stopped.
>>>>
>>>>>>
>>>>>>> 2) Are there other traffics pending while issuing the End Transfer
>>>>>>> command? If so, what transfer type(s)?
>>>>>>>
>>>>>> I haven't checked it yet. 
>>>>>
>>>>> Can you check?
>>>>>
>>>> For the cases where we've collected a crash log, we can see that during
>>>> the END transfer timeouts there was always a pending EP0 transaction.
>>>> We had reached out to our internal HW folks to get some inputs on what
>>>> could be causing this kind of issue, and we were able to get some
>>>> recommendations from their Synopsis POCs.
>>>
>>> It's "Synopsys" :)
>>>
>> Sorry! :)
>>>>
>>>> It was mentioned that if there was an active EP0 transfer, an end
>>>> transfer command on a non-control EP can fail w/ timed out.
>>>>
>>>
>>> What controller version are you using? And what version is Jung using?
>>> Do you have the STAR number of the issue. If you're using a different
>>> version than Jung's, then it may not be the same issue.
>>>
>> We're using 1.90a.
>>
>>>>>>
>>>>>>> 3) Have you tried increasing the timeout?
>>>>>>>
>>>>>> No, I haven't.
>>>>>
>>>>> Can you try up to 10 seconds (just for experiment)
>>>>>
>>>> I've tried this too, and it did not help.
>>>>
>>>>>>> BR,
>>>>>>> Thinh
>>>>>>>
>>>>>>
>>>>>> This issue occurs very rarely on customer. I only have restricted
>>>>>> information. That's why I've been trying to reproduce it.
>>>>>
>>>>> How did you test your fix if you can't reproduce it?
>>>>>
>>>>>>
>>>>>> Wesley may have run into same issue and you can see this issue in detail.
>>>>>> https://urldefense.com/v3/__https://protect2.fireeye.com/v1/url?k=9d423b69-fc3fd32e-9d43b026-74fe485fff30-77a099b52659410d&q=1&e=20b4d9f5-2599-4f57-8b6a-7c4ec167d228&u=https*3A*2F*2Flore.kernel.org*2Flinux-usb*2F20220203080017.27339-1-quic_wcheng*40quicinc.com*2F__;JSUlJSUlJQ!!A4F2R9G_pg!JWPzNLoO3BFX_IZCVzmHPtxq6frr_VFbSNNaxSQylunt1Y4EauTOefth2LCIcVEuTx8E$ 
>>>>>>
>>>>>
>>>>> I can take a look, but please provide the tracepoints of the failure if
>>>>> you can reproduce it.
>>>>>
>>>> Let me see if I have any previous traces I can share.  If not, I have a
>>>> pretty reliable repro set up I can collect a trace for you.  For now, I
>>>> will focus on just getting the endxfer timeout seen during ep dequeue.
>>>> As mentioned on my patchset, this can happen during device-initiated
>>>> disconnect as well.
>>>>
>>>
>>> Your patch set is still on my todo list. I haven't reviewed it. There's
>>> some concern looking at it from a first glance, I'll check it out more
>>> thoroughly later.
>>>
>>> Can you provide the tracepoints?
>>>
>> I can provide the full trace if you need it, just let me know.  However
>> here is a quick snippet:
>>
>> [ 1865.070397670       0x8724e2f18]   dbg_send_ep_cmd: ep2in: cmd
>> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
>> Successful
>> [ 1865.070449389       0x8724e32fa]   dbg_ep_queue: ep2in: req
>> ffffff87a36bd300 length 0/65536 zsI ==> -115
>> [ 1865.070480222       0x8724e3549]   dbg_send_ep_cmd: ep2in: cmd
>> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
>> Successful
>> [ 1865.070529962       0x8724e3904]   dbg_ep_queue: ep2in: req
>> ffffff88708dfc00 length 0/65536 zsI ==> -115
>> [ 1865.070559545       0x8724e3b3c]   dbg_send_ep_cmd: ep2in: cmd
>> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
>> Successful
>> [ 1865.070610639       0x8724e3f11]   dbg_ep_queue: ep2in: req
>> ffffff8042a98200 length 0/65536 zsI ==> -115
>> [ 1865.070640691       0x8724e4152]   dbg_send_ep_cmd: ep2in: cmd
>> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
>> Successful
>> [ 1865.070692983       0x8724e453e]   dbg_ep_queue: ep2in: req
>> ffffff8042a98900 length 0/65536 zsI ==> -115
>> [ 1865.070728972       0x8724e47f1]   dbg_send_ep_cmd: ep2in: cmd
>> 'Update Transfer' [50007] params 00000000 00000000 00000000 --> status:
>> Successful
>>
>> //EP halt setup packet is received from the PC
>> [ 1865.166579233       0x8726a5cb7]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep6in)
>> [ 1865.166716785       0x8726a6708]   dbg_send_ep_cmd: ep6in: cmd 'Clear
>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>
>> //This should be the EP0 status phase, as it is on ep0in
>> [ 1865.166849598       0x8726a70fd]   dbg_send_ep_cmd: ep0in: cmd 'Start
>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 1865.173668817       0x8726c706e]   dbg_ep_dequeue: ep2in: req
>> ffffff885f293f00 length 0/62848 zsI ==> -115
>>
>> //Dequeue timeout occurs here
>> [ 1865.192420900       0x87271eed6]   dbg_send_ep_cmd: ep2in: cmd 'End
>> Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>
> 
> Can you provide a full trace?
> 
Sorry for doing this, but we didn't have a way to share the file
directly, so I have to paste the trace below. :/

> Btw, when you experiment with increasing the timeout to 10 seconds, did
> you use the mdelay() in each loop? The delta time for End Transfer
> timeout here seems very small.
> 
This particular run did not modify the timeout for the cmd status polling.

Is that something that you want to try?  Not pertaining to this dequeue
situation, during the pullup disable path debug, I noticed that as long
as there was a pending EP0 SETUP packet (not data/status) cached in the
controller, it would also have endxfer timeouts on non-control EPs.  We
were able to capture a bus sniffer log + ftrace, and it showed that at
the point of the error, the lecroy/bus log saw a SETUP token ACK'ed,
while on the ftrace, there were endxfer timeouts for all non-control EPs
(due to the dwc3_gadget_stop_active_transfers() call)

Thanks
Wesley

TRACE
---------------------------------------------------------------------


[ 1018.831573056       0x4a995de8b]   dbg_gadget_giveback: ep2in: req
ffffff80516bc600 length 0/65536 zsI ==> -108
[ 1018.832203941       0x4a9960ddc]   dbg_gadget_giveback: ep2in: req
ffffff80516bc500 length 0/65536 zsI ==> -108
[ 1018.833000816       0x4a99649a0]   dbg_gadget_giveback: ep2in: req
ffffff80516bd400 length 0/65536 zsI ==> -108
[ 1018.833625399       0x4a9967878]   dbg_gadget_giveback: ep2in: req
ffffff80516bdf00 length 0/65536 zsI ==> -108
[ 1018.834339306       0x4a996ae03]   dbg_gadget_giveback: ep2in: req
ffffff87823adb00 length 0/65536 zsI ==> -108
[ 1018.834969254       0x4a996dd43]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9c00 length 0/65536 zsI ==> -108
[ 1018.835567379       0x4a9970a1f]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9400 length 0/65536 zsI ==> -108
[ 1018.836162170       0x4a99736ba]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8600 length 0/65536 zsI ==> -108
[ 1018.836938108       0x4a99770ec]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8d00 length 0/65536 zsI ==> -108
[ 1018.837570087       0x4a997a052]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9700 length 0/65536 zsI ==> -108
[ 1018.838123368       0x4a997c9d1]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9100 length 0/65536 zsI ==> -108
[ 1018.838645504       0x4a997f0fa]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9500 length 0/65536 zsI ==> -108
[ 1018.839301441       0x4a998222c]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9e00 length 0/65536 zsI ==> -108
[ 1018.839932587       0x4a9985182]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9d00 length 0/65536 zsI ==> -108
[ 1018.840656597       0x4a99887cf]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8400 length 0/65536 zsI ==> -108
[ 1018.841346285       0x4a998bb89]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8300 length 0/65536 zsI ==> -108
[ 1018.842064462       0x4a998f167]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9f00 length 0/65536 zsI ==> -108
[ 1018.842840139       0x4a9992b93]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9200 length 0/65536 zsI ==> -108
[ 1018.843568681       0x4a9996238]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8a00 length 0/65536 zsI ==> -108
[ 1018.844307847       0x4a99999a8]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8f00 length 0/65536 zsI ==> -108
[ 1018.845096493       0x4a999d4cd]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8b00 length 0/65536 zsI ==> -108
[ 1018.845752587       0x4a99a0602]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9900 length 0/65536 zsI ==> -108
[ 1018.846446650       0x4a99a3a10]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8700 length 0/65536 zsI ==> -108
[ 1018.847192795       0x4a99a7206]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8200 length 0/65536 zsI ==> -108
[ 1018.847889827       0x4a99aa64d]   dbg_gadget_giveback: ep2in: req
ffffff87f99b9000 length 0/65536 zsI ==> -108
[ 1018.848678368       0x4a99ae171]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8c00 length 0/65536 zsI ==> -108
[ 1018.849349306       0x4a99b13c3]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8500 length 0/65536 zsI ==> -108
[ 1018.850019150       0x4a99b4600]   dbg_gadget_giveback: ep2in: req
ffffff87f99b8900 length 0/65536 zsI ==> -108
[ 1018.850718681       0x4a99b7a77]   dbg_gadget_giveback: ep2in: req
ffffff80362f0300 length 0/65536 zsI ==> -108
[ 1018.851418681       0x4a99baef7]   dbg_gadget_giveback: ep2in: req
ffffff80362f1100 length 0/65536 zsI ==> -108
[ 1018.852123420       0x4a99be3d2]   dbg_gadget_giveback: ep2in: req
ffffff80362f0d00 length 0/65536 zsI ==> -108
[ 1018.852889670       0x4a99c1d4a]   dbg_gadget_giveback: ep2in: req
ffffff80362f0600 length 0/65536 zsI ==> -108
[ 1018.853628733       0x4a99c54b8]   dbg_gadget_giveback: ep2in: req
ffffff80362f0a00 length 0/65536 zsI ==> -108
[ 1018.854325139       0x4a99c88f3]   dbg_gadget_giveback: ep2in: req
ffffff80362f1900 length 0/65536 zsI ==> -108
[ 1018.855135191       0x4a99cc5b4]   dbg_gadget_giveback: ep2in: req
ffffff803222fb00 length 0/65536 zsI ==> -108
[ 1018.855950139       0x4a99d02d3]   dbg_gadget_giveback: ep2in: req
ffffff803222e100 length 0/65536 zsI ==> -108
[ 1018.856728212       0x4a99d3d2e]   dbg_gadget_giveback: ep2in: req
ffffff803222eb00 length 0/65536 zsI ==> -108
[ 1018.857404879       0x4a99d6fee]   dbg_gadget_giveback: ep2in: req
ffffff803222ff00 length 0/65536 zsI ==> -108
[ 1018.858602275       0x4a99dc9bc]   dbg_gadget_giveback: ep2in: req
ffffff803222f700 length 0/65536 zsI ==> -108
[ 1018.859436337       0x4a99e084a]   dbg_gadget_giveback: ep2in: req
ffffff803222fa00 length 0/65536 zsI ==> -108
[ 1018.860205920       0x4a99e4202]   dbg_send_ep_cmd: ep3out: cmd 'End
Transfer' [60c08] params 00000000 00000000 00000000 --> status: Successful
[ 1018.860666597       0x4a99e648f]   dbg_gadget_giveback: ep3out: req
ffffff87a3790000 length 0/16384 zsI ==> -108
[ 1018.862703733       0x4a99efd58]   dbg_gadget_giveback: ep3out: req
ffffff87a3791100 length 0/16384 zsI ==> -108
[ 1018.863841754       0x4a99f52b2]   dbg_gadget_giveback: ep3out: req
ffffff87a3790200 length 0/16384 zsI ==> -108
[ 1018.864743993       0x4a99f965d]   dbg_gadget_giveback: ep3out: req
ffffff87a3790a00 length 0/16384 zsI ==> -108
[ 1018.865442795       0x4a99fcac6]   dbg_gadget_giveback: ep3out: req
ffffff87a3790800 length 0/16384 zsI ==> -108
[ 1018.866226337       0x4a9a0058a]   dbg_gadget_giveback: ep3out: req
ffffff87a3790c00 length 0/16384 zsI ==> -108
[ 1018.866949045       0x4a9a03bbe]   dbg_gadget_giveback: ep3out: req
ffffff87a3790700 length 0/16384 zsI ==> -108
[ 1018.867771754       0x4a9a07972]   dbg_gadget_giveback: ep3out: req
ffffff87a3790d00 length 0/16384 zsI ==> -108
[ 1018.869052847       0x4a9a0d987]   dbg_send_ep_cmd: ep3in: cmd 'End
Transfer' [70c08] params 00000000 00000000 00000000 --> status: Successful
[ 1018.869377222       0x4a9a0f1dc]   dbg_send_ep_cmd: ep4in: cmd 'End
Transfer' [90c08] params 00000000 00000000 00000000 --> status: Successful
[ 1018.869769462       0x4a9a10f46]   dbg_send_ep_cmd: ep0out: cmd 'End
Transfer' [c08] params 00000000 00000000 00000000 --> status: Successful
[ 1021.465141449       0x4ac996c2c]   dbg_send_ep_cmd: ep0out: cmd
'Start New Configuration' [409] params 00000000 00000000 00000000 -->
status: Successful
[ 1021.465338064       0x4ac997aeb]   dbg_send_ep_cmd: ep0out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.465523689       0x4ac9988d7]   dbg_send_ep_cmd: ep0in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.465699678       0x4ac99960a]   dbg_send_ep_cmd: ep1out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.465886814       0x4ac99a413]   dbg_send_ep_cmd: ep1in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.466062282       0x4ac99b13c]   dbg_send_ep_cmd: ep2out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.466236553       0x4ac99be4e]   dbg_send_ep_cmd: ep2in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.466432282       0x4ac99ccfc]   dbg_send_ep_cmd: ep3out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.466611137       0x4ac99da66]   dbg_send_ep_cmd: ep3in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.466784001       0x4ac99e75d]   dbg_send_ep_cmd: ep4out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.466963533       0x4ac99f4d4]   dbg_send_ep_cmd: ep4in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.467132491       0x4ac9a0180]   dbg_send_ep_cmd: ep5out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.467307855       0x4ac9a0ea7]   dbg_send_ep_cmd: ep5in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.467479001       0x4ac9a1b7d]   dbg_send_ep_cmd: ep6out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.467657855       0x4ac9a28e7]   dbg_send_ep_cmd: ep6in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.467838376       0x4ac9a3671]   dbg_send_ep_cmd: ep7out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468019158       0x4ac9a4400]   dbg_send_ep_cmd: ep7in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468197230       0x4ac9a515b]   dbg_send_ep_cmd: ep8out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468378116       0x4ac9a5eec]   dbg_send_ep_cmd: ep8in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468542178       0x4ac9a6b3a]   dbg_send_ep_cmd: ep9out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468686970       0x4ac9a7617]   dbg_send_ep_cmd: ep9in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468829678       0x4ac9a80ca]   dbg_send_ep_cmd: ep10out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.468953116       0x4ac9a8a0c]   dbg_send_ep_cmd: ep10in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.469083324       0x4ac9a93d0]   dbg_send_ep_cmd: ep11out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.469256866       0x4ac9aa0d5]   dbg_send_ep_cmd: ep11in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.469426085       0x4ac9aad85]   dbg_send_ep_cmd: ep12out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.469596970       0x4ac9aba56]   dbg_send_ep_cmd: ep12in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.469775303       0x4ac9ac7b7]   dbg_send_ep_cmd: ep13out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.469940460       0x4ac9ad419]   dbg_send_ep_cmd: ep13in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.470128480       0x4ac9ae233]   dbg_send_ep_cmd: ep14out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.470305668       0x4ac9aef7d]   dbg_send_ep_cmd: ep14in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.470480720       0x4ac9afc9e]   dbg_send_ep_cmd: ep15out: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.470660408       0x4ac9b0a18]   dbg_send_ep_cmd: ep15in: cmd 'Set
Endpoint Transfer Resource' [402] params 00000001 00000000 00000000 -->
status: Successful
[ 1021.470799470       0x4ac9b1486]   dbg_send_ep_cmd: ep0out: cmd 'Set
Endpoint Configuration' [401] params 00001000 00000500 00000000 -->
status: Successful
[ 1021.470955980       0x4ac9b2043]   dbg_send_ep_cmd: ep0in: cmd 'Set
Endpoint Configuration' [401] params 00001000 02000500 00000000 -->
status: Successful
[ 1021.471130199       0x4ac9b2d54]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.645935668       0x4acce63bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
Endpoint Configuration' [401] params 80000200 00000500 00000000 -->
status: Successful
[ 1021.646625773       0x4acce9781]   dbg_send_ep_cmd: ep0in: cmd 'Set
Endpoint Configuration' [401] params 80000200 02000500 00000000 -->
status: Successful
[ 1021.681864575       0x4acd8ea6a]   dbg_trace_log_ctrl: Get Device
Descriptor(Index = 0, Length = 64)
[ 1021.683840721       0x4acd97ea0]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.688133221       0x4acdac090]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 ZsI ==> 0
[ 1021.689019575       0x4acdb030a]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.695974992       0x4acdd0cb2]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.706717700       0x4ace03265]   dbg_trace_log_ctrl: Set
Address(Addr = 23)
[ 1021.707788117       0x4ace082ae]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.711342492       0x4ace18d41]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.729135148       0x4ace6c3b4]   dbg_trace_log_ctrl: Get Device
Descriptor(Index = 0, Length = 18)
[ 1021.729704940       0x4ace6ee70]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.736413533       0x4ace8e595]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1021.737211137       0x4ace92166]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.742762544       0x4aceac1c2]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.754386606       0x4acee2990]   dbg_trace_log_ctrl: Get
Configuration Descriptor(Index = 0, Length = 255)
[ 1021.755449367       0x4acee7946]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.767178586       0x4acf1e8f6]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 166/166 ZsI ==> 0
[ 1021.768052752       0x4acf22a87]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.770862336       0x4acf2fd3f]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.781574627       0x4acf620ab]   dbg_trace_log_ctrl: Get BOS
Descriptor(Index = 0, Length = 255)
[ 1021.782634836       0x4acf6702f]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.786686763       0x4acf7a015]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 12/12 ZsI ==> 0
[ 1021.787616138       0x4acf7e5c6]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.791783638       0x4acf91e58]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.804542700       0x4acfcdb45]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 0, Length = 255)
[ 1021.805013065       0x4acfcfe8c]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.820321086       0x4ad017aa6]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 ZsI ==> 0
[ 1021.820730044       0x4ad019952]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.822487544       0x4ad021d21]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.844834836       0x4ad08a92f]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 4)
[ 1021.845811554       0x4ad08f270]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.851372023       0x4ad0a9379]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1021.852326242       0x4ad0adb09]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.856418221       0x4ad0c0df0]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.872088794       0x4ad10a53b]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 48)
[ 1021.873069523       0x4ad10eec8]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.884076398       0x4ad14284c]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 48/48 zsI ==> 0
[ 1021.884956346       0x4ad146a4c]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.887496763       0x4ad1528d4]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.899610617       0x4ad18b55e]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 4)
[ 1021.900683690       0x4ad1905d9]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.904368430       0x4ad1a1a34]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1021.904883898       0x4ad1a40dd]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.908116190       0x4ad1b3348]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.920857284       0x4ad1eeede]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 18)
[ 1021.921880513       0x4ad1f3b9b]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.925622648       0x4ad205444]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1021.926103534       0x4ad207854]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.944110253       0x4ad25bed6]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.945718534       0x4ad263775]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 4)
[ 1021.946238065       0x4ad265e6c]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.947053794       0x4ad269b9a]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1021.947451555       0x4ad26b96f]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.948187128       0x4ad26f09a]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.964733794       0x4ad2bc99b]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 48)
[ 1021.965507180       0x4ad2c039b]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1021.970562544       0x4ad2d7ec2]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 48/48 zsI ==> 0
[ 1021.971286242       0x4ad2db509]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1021.972758117       0x4ad2e236d]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.004602545       0x4ad3777c2]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 4)
[ 1022.005044784       0x4ad3798ed]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.007223690       0x4ad383c58]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.007708638       0x4ad3860b7]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.009726242       0x4ad38f808]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.019832440       0x4ad3bedff]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 18)
[ 1022.020384888       0x4ad3c176e]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.022519524       0x4ad3cb788]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1022.022995461       0x4ad3cdb39]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.024091138       0x4ad3d2d67]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.033726920       0x4ad400016]   dbg_trace_log_ctrl: Set
Configuration(Config = 1)
[ 1022.034893690       0x4ad405797]   dbg_send_ep_cmd: ep1out: cmd 'Set
Endpoint Configuration' [401] params 00001004 04000200 00000000 -->
status: Successful
[ 1022.035314263       0x4ad407722]   dbg_send_ep_cmd: ep1out: cmd
'Start Transfer' [406] params 00000000 efff8000 00000000 --> status:
Successful
[ 1022.035805149       0x4ad409bf4]   dbg_send_ep_cmd: ep1in: cmd 'Set
Endpoint Configuration' [401] params 00021004 06000200 00000000 -->
status: Successful
[ 1022.036249003       0x4ad40bd3e]   dbg_send_ep_cmd: ep1in: cmd 'Start
Transfer' [406] params 00000000 efff7000 00000000 --> status: Successful
[ 1022.037503586       0x4ad411b56]   dbg_send_ep_cmd: ep3in: cmd 'Set
Endpoint Configuration' [401] params 00060056 0e080200 00000000 -->
status: Successful
[ 1022.037954368       0x4ad413d25]   dbg_send_ep_cmd: ep3in: cmd 'Start
Transfer' [406] params 00000000 efff3000 00000000 --> status: Successful
[ 1022.038447545       0x4ad416222]   dbg_send_ep_cmd: ep2in: cmd 'Set
Endpoint Configuration' [401] params 00041004 0a000200 00000000 -->
status: Successful
[ 1022.038878378       0x4ad418272]   dbg_send_ep_cmd: ep2in: cmd 'Start
Transfer' [406] params 00000000 efff5000 00000000 --> status: Successful
[ 1022.039353743       0x4ad41a618]   dbg_send_ep_cmd: ep2out: cmd 'Set
Endpoint Configuration' [401] params 00001004 08000200 00000000 -->
status: Successful
[ 1022.039793482       0x4ad41c713]   dbg_send_ep_cmd: ep2out: cmd
'Start Transfer' [406] params 00000000 efff6000 00000000 --> status:
Successful
[ 1022.041149368       0x4ad422cc6]   dbg_ep_queue: ep2out: req
ffffff8036302600 length 0/2048 zsI ==> -115
[ 1022.041403899       0x4ad423fdc]   dbg_prepare: ep2out: trb
ffffffc0197fa000 (E1:D0) buf 00000000eff62000 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.041750149       0x4ad4259d3]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.042116868       0x4ad427555]   dbg_ep_queue: ep2out: req
ffffff8036303b00 length 0/2048 zsI ==> -115
[ 1022.042358691       0x4ad428778]   dbg_prepare: ep2out: trb
ffffffc0197fa010 (E2:D0) buf 00000000eff63000 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.042706868       0x4ad42a195]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.043062441       0x4ad42bc40]   dbg_ep_queue: ep2out: req
ffffff8036302b00 length 0/2048 zsI ==> -115
[ 1022.043369993       0x4ad42d350]   dbg_prepare: ep2out: trb
ffffffc0197fa020 (E3:D0) buf 00000000e9d9a800 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.043717961       0x4ad42ed6a]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.044079316       0x4ad430884]   dbg_ep_queue: ep2out: req
ffffff8036302300 length 0/2048 zsI ==> -115
[ 1022.044302336       0x4ad43193d]   dbg_prepare: ep2out: trb
ffffffc0197fa030 (E4:D0) buf 00000000e9d9b000 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.044637597       0x4ad433263]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.044984368       0x4ad434c65]   dbg_ep_queue: ep2out: req
ffffff8036303100 length 0/2048 zsI ==> -115
[ 1022.045224316       0x4ad435e64]   dbg_prepare: ep2out: trb
ffffffc0197fa040 (E5:D0) buf 00000000eff87800 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.045577961       0x4ad4378e9]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.045918691       0x4ad439278]   dbg_ep_queue: ep2out: req
ffffff8036302700 length 0/2048 zsI ==> -115
[ 1022.046128118       0x4ad43a22d]   dbg_prepare: ep2out: trb
ffffffc0197fa050 (E6:D0) buf 00000000eff86800 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.046423013       0x4ad43b84b]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.046799368       0x4ad43d484]   dbg_ep_queue: ep2out: req
ffffff8036302400 length 0/2048 zsI ==> -115
[ 1022.047075097       0x4ad43e933]   dbg_prepare: ep2out: trb
ffffffc0197fa060 (E7:D0) buf 00000000ecfa7800 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.047374263       0x4ad43ffa3]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.047686191       0x4ad441707]   dbg_ep_queue: ep2out: req
ffffff8036302900 length 0/2048 zsI ==> -115
[ 1022.047910618       0x4ad4427dc]   dbg_prepare: ep2out: trb
ffffffc0197fa070 (E8:D0) buf 00000000ecfa6800 size 2048 ctrl 00000819
(HlcS:sC:normal)
[ 1022.048258899       0x4ad4441fb]   dbg_send_ep_cmd: ep2out: cmd
'Update Transfer' [40007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.048838847       0x4ad446d7b]   dbg_send_ep_cmd: ep5in: cmd 'Set
Endpoint Configuration' [401] params 000a0046 16080200 00000000 -->
status: Successful
[ 1022.049279993       0x4ad448e91]   dbg_send_ep_cmd: ep5in: cmd 'Start
Transfer' [406] params 00000000 effef000 00000000 --> status: Successful
[ 1022.050958586       0x4ad450c75]   dbg_send_ep_cmd: ep7in: cmd 'Set
Endpoint Configuration' [401] params 000e1004 1e000200 00000000 -->
status: Successful
[ 1022.051410201       0x4ad452e55]   dbg_send_ep_cmd: ep7in: cmd 'Start
Transfer' [406] params 00000000 effeb000 00000000 --> status: Successful
[ 1022.052623274       0x4ad458950]   dbg_send_ep_cmd: ep4out: cmd 'Set
Endpoint Configuration' [401] params 00001004 10000200 00000000 -->
status: Successful
[ 1022.053049263       0x4ad45a943]   dbg_send_ep_cmd: ep4out: cmd
'Start Transfer' [406] params 00000000 efff2000 00000000 --> status:
Successful
[ 1022.053547493       0x4ad45cea1]   dbg_send_ep_cmd: ep8in: cmd 'Set
Endpoint Configuration' [401] params 00101004 22000200 00000000 -->
status: Successful
[ 1022.053997701       0x4ad45f065]   dbg_send_ep_cmd: ep8in: cmd 'Start
Transfer' [406] params 00000000 effe9000 00000000 --> status: Successful
[ 1022.096081191       0x4ad5244a7]   dbg_ep_queue: ep4out: req
ffffff80407f1700 length 0/16384 zsI ==> -115
[ 1022.096196191       0x4ad524d47]   dbg_prepare: ep4out: trb
ffffffc019b01000 (E1:D0) buf 00000000e9cf4000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.096360826       0x4ad5259a0]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.102595982       0x4ad542d44]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.103773222       0x4ad54858f]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 0/0 zsI ==> 0
[ 1022.104266555       0x4ad54aa8e]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.114207909       0x4ad57942a]   dbg_trace_log_ctrl: Clear Device
Feature(Self Powered)
[ 1022.114483587       0x4ad57a8d6]   dbg_ep_queue: ep4out: req
ffffff80407f1300 length 0/16384 zsI ==> -115
[ 1022.114664732       0x4ad57b66b]   dbg_prepare: ep4out: trb
ffffffc019b01010 (E2:D0) buf 00000000eecfc000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.114873899       0x4ad57c61b]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.115365149       0x4ad57eaf5]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.117621607       0x4ad589431]   dbg_gadget_giveback: ep0out: req
ffffff87f99b9000 length 16/16 zsI ==> 0
[ 1022.118133482       0x4ad58ba93]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.119042857       0x4ad58fec9]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.128172128       0x4ad5bab7a]   dbg_trace_log_ctrl: Clear Device
Feature(Self Powered)
[ 1022.128440618       0x4ad5bbf9c]   dbg_ep_queue: ep4out: req
ffffff87e13db500 length 0/16384 zsI ==> -115
[ 1022.128575253       0x4ad5bc9b5]   dbg_prepare: ep4out: trb
ffffffc019b01020 (E3:D0) buf 00000000eed6c000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.128779212       0x4ad5bd901]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.129190774       0x4ad5bf7e1]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.130699264       0x4ad5c6902]   dbg_ep_queue: ep1out: req
ffffff80457e0200 length 0/16384 zsI ==> -115
[ 1022.130811764       0x4ad5c7172]   dbg_prepare: ep1out: trb
ffffffc0197d3000 (E1:D0) buf 00000000e9cfc000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.130976660       0x4ad5c7dd0]   dbg_send_ep_cmd: ep1out: cmd
'Update Transfer' [20007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.131452857       0x4ad5ca188]   dbg_gadget_giveback: ep0out: req
ffffff87f99b9000 length 64/64 zsI ==> 0
[ 1022.131937180       0x4ad5cc5db]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.133891607       0x4ad5d5870]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.143913535       0x4ad604815]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 4)
[ 1022.144142493       0x4ad605940]   dbg_ep_queue: ep4out: req
ffffff87e13daa00 length 0/16384 zsI ==> -115
[ 1022.144274420       0x4ad606326]   dbg_prepare: ep4out: trb
ffffffc019b01030 (E4:D0) buf 00000000ea1c0000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.144430878       0x4ad606ee1]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.144787545       0x4ad6089a2]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.146946868       0x4ad612b94]   dbg_ep_queue: ep4out: req
ffffff87e13da200 length 0/16384 zsI ==> -115
[ 1022.147081243       0x4ad6135a8]   dbg_prepare: ep4out: trb
ffffffc019b01040 (E5:D0) buf 00000000eacd8000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.147258847       0x4ad6142fb]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.150157858       0x4ad621c67]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.150637493       0x4ad624061]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.151514160       0x4ad628220]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.161516712       0x4ad657052]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 48)
[ 1022.161740774       0x4ad658120]   dbg_ep_queue: ep4out: req
ffffff80300d9b00 length 0/16384 zsI ==> -115
[ 1022.161841868       0x4ad6588b4]   dbg_prepare: ep4out: trb
ffffffc019b01050 (E6:D0) buf 00000000eacdc000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.162000514       0x4ad65949a]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.162372649       0x4ad65b084]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.165485566       0x4ad6699fc]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 48/48 zsI ==> 0
[ 1022.165983326       0x4ad66bf50]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.167073222       0x4ad67110f]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.168132649       0x4ad676083]   dbg_ep_queue: ep7in: req
ffffff87f99b8f00 length 0/61696 zsI ==> -115
[ 1022.168266243       0x4ad676a88]   dbg_prepare: ep7in: trb
ffffffc019c95000 (E1:D0) buf 00000000ec480f00 size 61696 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.168435983       0x4ad677743]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.169309368       0x4ad67b8c4]   dbg_ep_queue: ep7in: req
ffffff87f99b9200 length 0/65536 zsI ==> -115
[ 1022.169411139       0x4ad67c066]   dbg_prepare: ep7in: trb
ffffffc019c95010 (E2:D0) buf 00000000ec490000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.169576087       0x4ad67ccc5]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.170078274       0x4ad67f26f]   dbg_ep_queue: ep7in: req
ffffff87f99b9f00 length 0/65536 zsI ==> -115
[ 1022.170208430       0x4ad67fc32]   dbg_prepare: ep7in: trb
ffffffc019c95020 (E3:D0) buf 00000000ec250000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.170371764       0x4ad680873]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.170872128       0x4ad682df9]   dbg_ep_queue: ep7in: req
ffffff87f99b8300 length 0/65536 zsI ==> -115
[ 1022.170970722       0x4ad68355e]   dbg_prepare: ep7in: trb
ffffffc019c95030 (E4:D0) buf 00000000ec260000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.171125462       0x4ad6840f9]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.171634524       0x4ad686727]   dbg_ep_queue: ep7in: req
ffffff87f99b8400 length 0/65536 zsI ==> -115
[ 1022.171735826       0x4ad686ec0]   dbg_prepare: ep7in: trb
ffffffc019c95040 (E5:D0) buf 00000000ec270000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.171895358       0x4ad687ab7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.182774472       0x4ad6baaa6]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 4)
[ 1022.182947858       0x4ad6bb7a7]   dbg_ep_queue: ep7in: req
ffffff87f99b9d00 length 0/65536 zsI ==> -115
[ 1022.183025149       0x4ad6bbd73]   dbg_prepare: ep7in: trb
ffffffc019c95050 (E6:D0) buf 00000000ec280000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.183143222       0x4ad6bc64e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.183251451       0x4ad6bce6c]   dbg_ep_queue: ep4out: req
ffffff87dfc95400 length 0/16384 zsI ==> -115
[ 1022.183383118       0x4ad6bd84c]   dbg_prepare: ep4out: trb
ffffffc019b01060 (E7:D0) buf 00000000eef10000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.183535045       0x4ad6be3b1]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.183907024       0x4ad6bff98]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.184168014       0x4ad6c132a]   dbg_ep_queue: ep7in: req
ffffff87f99b9e00 length 0/65536 zsI ==> -115
[ 1022.184271139       0x4ad6c1ae6]   dbg_prepare: ep7in: trb
ffffffc019c95060 (E7:D0) buf 00000000ec290000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.184420774       0x4ad6c261f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.185503951       0x4ad6c775c]   dbg_ep_queue: ep7in: req
ffffff87f99b9500 length 0/65536 zsI ==> -115
[ 1022.185601764       0x4ad6c7eb2]   dbg_prepare: ep7in: trb
ffffffc019c95070 (E8:D0) buf 00000000ec2a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.185755358       0x4ad6c8a38]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.186173587       0x4ad6ca995]   dbg_ep_queue: ep7in: req
ffffff87f99b9100 length 0/65536 zsI ==> -115
[ 1022.186274472       0x4ad6cb126]   dbg_prepare: ep7in: trb
ffffffc019c95080 (E9:D0) buf 00000000ec2b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.186410670       0x4ad6cbb5d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.186732962       0x4ad6cd389]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.186942181       0x4ad6ce33a]   dbg_ep_queue: ep7in: req
ffffff87f99b9700 length 0/65536 zsI ==> -115
[ 1022.187042181       0x4ad6ceaba]   dbg_prepare: ep7in: trb
ffffffc019c95090 (E10:D0) buf 00000000ec2c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.187183118       0x4ad6cf54c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.187754160       0x4ad6d2020]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.188227545       0x4ad6d43a1]   dbg_ep_queue: ep7in: req
ffffff87f99b8d00 length 0/65536 zsI ==> -115
[ 1022.188451295       0x4ad6d5469]   dbg_prepare: ep7in: trb
ffffffc019c950a0 (E11:D0) buf 00000000ec2d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.188795410       0x4ad6d6e38]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.190817910       0x4ad6e05e8]   dbg_ep_queue: ep7in: req
ffffff87f99b8600 length 0/65536 zsI ==> -115
[ 1022.190989264       0x4ad6e12c2]   dbg_prepare: ep7in: trb
ffffffc019c950b0 (E12:D0) buf 00000000ec2e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.191262285       0x4ad6e273c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.192143378       0x4ad6e6951]   dbg_ep_queue: ep7in: req
ffffff87f99b9400 length 0/65536 zsI ==> -115
[ 1022.192392076       0x4ad6e7bf8]   dbg_prepare: ep7in: trb
ffffffc019c950c0 (E13:D0) buf 00000000edc20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.192731087       0x4ad6e9565]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.195348743       0x4ad6f59b8]   dbg_ep_queue: ep7in: req
ffffff87f99b9c00 length 0/65536 zsI ==> -115
[ 1022.195548847       0x4ad6f68ba]   dbg_prepare: ep7in: trb
ffffffc019c950d0 (E14:D0) buf 00000000eb4b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.195788483       0x4ad6f7ab3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.197640149       0x4ad700593]   dbg_ep_queue: ep7in: req
ffffff87f99b8b00 length 0/65536 zsI ==> -115
[ 1022.197829212       0x4ad7013c1]   dbg_prepare: ep7in: trb
ffffffc019c950e0 (E15:D0) buf 00000000eb4a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.198138691       0x4ad702af7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.199082493       0x4ad7071c0]   dbg_ep_queue: ep7in: req
ffffff87f99b8200 length 0/65536 zsI ==> -115
[ 1022.199285618       0x4ad7080fc]   dbg_prepare: ep7in: trb
ffffffc019c950f0 (E16:D0) buf 00000000eb490000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.199590253       0x4ad7097d6]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.201521139       0x4ad7128a6]   dbg_ep_queue: ep7in: req
ffffff87f99b9900 length 0/65536 zsI ==> -115
[ 1022.201770774       0x4ad713b5f]   dbg_prepare: ep7in: trb
ffffffc019c95100 (E17:D0) buf 00000000eda20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.202101087       0x4ad715426]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.203201712       0x4ad71a6b1]   dbg_ep_queue: ep7in: req
ffffff87a77b0300 length 0/65536 zsI ==> -115
[ 1022.203411816       0x4ad71b673]   dbg_prepare: ep7in: trb
ffffffc019c95110 (E18:D0) buf 00000000eda10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.203741608       0x4ad71cf2f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.205594785       0x4ad725a2c]   dbg_ep_queue: ep7in: req
ffffff8024deb100 length 0/65536 zsI ==> -115
[ 1022.205789368       0x4ad7268c4]   dbg_prepare: ep7in: trb
ffffffc019c95120 (E19:D0) buf 00000000eda00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.206042910       0x4ad727bc9]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.206948014       0x4ad72bfab]   dbg_ep_queue: ep7in: req
ffffff8031a29c00 length 0/65536 zsI ==> -115
[ 1022.207191035       0x4ad72d1e4]   dbg_prepare: ep7in: trb
ffffffc019c95130 (E20:D0) buf 00000000ed9f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.207491139       0x4ad72e867]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.209417701       0x4ad7378e4]   dbg_ep_queue: ep7in: req
ffffff8031a28200 length 0/65536 zsI ==> -115
[ 1022.209585670       0x4ad73857d]   dbg_prepare: ep7in: trb
ffffffc019c95140 (E21:D0) buf 00000000ed9e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.209880097       0x4ad739b92]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.210870618       0x4ad73e5dc]   dbg_ep_queue: ep7in: req
ffffff87823adb00 length 0/65536 zsI ==> -115
[ 1022.211070462       0x4ad73f4d9]   dbg_prepare: ep7in: trb
ffffffc019c95150 (E22:D0) buf 00000000ed9d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.211367389       0x4ad740b1e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.212341243       0x4ad745428]   dbg_ep_queue: ep7in: req
ffffff80516bdf00 length 0/65536 zsI ==> -115
[ 1022.212615254       0x4ad7468b5]   dbg_prepare: ep7in: trb
ffffffc019c95160 (E23:D0) buf 00000000eaff0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.212903639       0x4ad747e56]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.215038066       0x4ad751e6b]   dbg_ep_queue: ep7in: req
ffffff80516bd400 length 0/65536 zsI ==> -115
[ 1022.215279056       0x4ad75307e]   dbg_prepare: ep7in: trb
ffffffc019c95170 (E24:D0) buf 00000000eb000000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.215585201       0x4ad754774]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.217435358       0x4ad75d237]   dbg_ep_queue: ep7in: req
ffffff80516bc500 length 0/65536 zsI ==> -115
[ 1022.217643639       0x4ad75e1d6]   dbg_prepare: ep7in: trb
ffffffc019c95180 (E25:D0) buf 00000000eb010000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.217942962       0x4ad75f849]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.218891191       0x4ad763f67]   dbg_ep_queue: ep7in: req
ffffff80516bc600 length 0/65536 zsI ==> -115
[ 1022.219142754       0x4ad765245]   dbg_prepare: ep7in: trb
ffffffc019c95190 (E26:D0) buf 00000000e9f40000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.219440722       0x4ad76689e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.221245826       0x4ad76f000]   dbg_ep_queue: ep7in: req
ffffff80516bda00 length 0/65536 zsI ==> -115
[ 1022.221383899       0x4ad76fa5b]   dbg_prepare: ep7in: trb
ffffffc019c951a0 (E27:D0) buf 00000000e9f30000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.221613951       0x4ad770b9c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.222426035       0x4ad774884]   dbg_ep_queue: ep7in: req
ffffff80516bcc00 length 0/65536 zsI ==> -115
[ 1022.222624472       0x4ad775766]   dbg_prepare: ep7in: trb
ffffffc019c951b0 (E28:D0) buf 00000000e9f20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.222921504       0x4ad776dae]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.223955306       0x4ad77bb36]   dbg_ep_queue: ep7in: req
ffffff80516bc100 length 0/65536 zsI ==> -115
[ 1022.224171087       0x4ad77cb65]   dbg_prepare: ep7in: trb
ffffffc019c951c0 (E29:D0) buf 00000000e9f10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.224515826       0x4ad77e540]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.226496399       0x4ad7879cb]   dbg_ep_queue: ep7in: req
ffffff80516bd600 length 0/65536 zsI ==> -115
[ 1022.226714212       0x4ad788a21]   dbg_prepare: ep7in: trb
ffffffc019c951d0 (E30:D0) buf 00000000ed610000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.226996608       0x4ad789f4f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.227871139       0x4ad78e0e6]   dbg_ep_queue: ep7in: req
ffffff80516bd700 length 0/65536 zsI ==> -115
[ 1022.228041556       0x4ad78edae]   dbg_prepare: ep7in: trb
ffffffc019c951e0 (E31:D0) buf 00000000ed620000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.228346139       0x4ad790487]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.230203691       0x4ad798fd7]   dbg_ep_queue: ep7in: req
ffffff80516bdc00 length 0/65536 zsI ==> -115
[ 1022.230418743       0x4ad799ff8]   dbg_prepare: ep7in: trb
ffffffc019c951f0 (E32:D0) buf 00000000ea2e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.230673431       0x4ad79b313]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.231428899       0x4ad79ebbb]   dbg_ep_queue: ep7in: req
ffffff80362e7100 length 0/65536 zsI ==> -115
[ 1022.231627389       0x4ad79fa9f]   dbg_prepare: ep7in: trb
ffffffc019c95200 (E33:D0) buf 00000000ed470000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.231867806       0x4ad7a0ca6]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.233866660       0x4ad7aa290]   dbg_ep_queue: ep7in: req
ffffff80362e7e00 length 0/65536 zsI ==> -115
[ 1022.234058014       0x4ad7ab0ea]   dbg_prepare: ep7in: trb
ffffffc019c95210 (E34:D0) buf 00000000ec870000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.234295618       0x4ad7ac2bc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.235085670       0x4ad7afdfd]   dbg_ep_queue: ep7in: req
ffffff80362e7000 length 0/65536 zsI ==> -115
[ 1022.235273483       0x4ad7b0c13]   dbg_prepare: ep7in: trb
ffffffc019c95220 (E35:D0) buf 00000000eb230000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.235526504       0x4ad7b1f0d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.236322962       0x4ad7b5ac9]   dbg_ep_queue: ep7in: req
ffffff8041076d00 length 0/65536 zsI ==> -115
[ 1022.236553379       0x4ad7b6c11]   dbg_prepare: ep7in: trb
ffffffc019c95230 (E36:D0) buf 00000000eb220000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.236865149       0x4ad7b8374]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.239204472       0x4ad7c32e6]   dbg_ep_queue: ep7in: req
ffffff8041076f00 length 0/65536 zsI ==> -115
[ 1022.239361608       0x4ad7c3eaf]   dbg_prepare: ep7in: trb
ffffffc019c95240 (E37:D0) buf 00000000eb210000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.239594577       0x4ad7c5028]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.241303795       0x4ad7cd059]   dbg_ep_queue: ep7in: req
ffffff8041077000 length 0/65536 zsI ==> -115
[ 1022.241560410       0x4ad7ce398]   dbg_prepare: ep7in: trb
ffffffc019c95250 (E38:D0) buf 00000000ea730000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.241866972       0x4ad7cfa97]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.242850254       0x4ad7d4455]   dbg_ep_queue: ep7in: req
ffffff8041076b00 length 0/65536 zsI ==> -115
[ 1022.243098899       0x4ad7d56fb]   dbg_prepare: ep7in: trb
ffffffc019c95260 (E39:D0) buf 00000000eb840000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.243399785       0x4ad7d6d8d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.247736920       0x4ad7eb2d5]   dbg_ep_queue: ep7in: req
ffffff8041076400 length 0/65536 zsI ==> -115
[ 1022.247987285       0x4ad7ec59c]   dbg_prepare: ep7in: trb
ffffffc019c95270 (E40:D0) buf 00000000ec7b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.248292910       0x4ad7edc88]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.249930566       0x4ad7f575b]   dbg_ep_queue: ep7in: req
ffffff8041077f00 length 0/65536 zsI ==> -115
[ 1022.250121712       0x4ad7f65b1]   dbg_prepare: ep7in: trb
ffffffc019c95280 (E41:D0) buf 00000000ec7a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.250417493       0x4ad7f7be0]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.251359524       0x4ad7fc288]   dbg_ep_queue: ep7in: req
ffffff8041077400 length 0/65536 zsI ==> -115
[ 1022.251551035       0x4ad7fd0e4]   dbg_prepare: ep7in: trb
ffffffc019c95290 (E42:D0) buf 00000000ec790000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.251853847       0x4ad7fe79a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.253491972       0x4ad806276]   dbg_ep_queue: ep7in: req
ffffff8041077100 length 0/65536 zsI ==> -115
[ 1022.253677389       0x4ad80705e]   dbg_prepare: ep7in: trb
ffffffc019c952a0 (E43:D0) buf 00000000ec780000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.253960827       0x4ad8085a0]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.254907649       0x4ad80cca3]   dbg_ep_queue: ep7in: req
ffffff8041076c00 length 0/65536 zsI ==> -115
[ 1022.255097702       0x4ad80dae4]   dbg_prepare: ep7in: trb
ffffffc019c952b0 (E44:D0) buf 00000000ec770000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.255395358       0x4ad80f137]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.262690202       0x4ad831454]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.273617650       0x4ad8647e4]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 48)
[ 1022.274048431       0x4ad866832]   dbg_ep_queue: ep7in: req
ffffff87b6feb800 length 0/65536 zsI ==> -115
[ 1022.274240306       0x4ad867696]   dbg_prepare: ep7in: trb
ffffffc019c952c0 (E45:D0) buf 00000000ea740000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.274538743       0x4ad868cf8]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.275258118       0x4ad86c2ec]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.279635722       0x4ad880b3f]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 48/48 zsI ==> 0
[ 1022.280563587       0x4ad8850d6]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.284439420       0x4ad897386]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.287758275       0x4ad8a6c6f]   dbg_ep_queue: ep7in: req
ffffff87b6feb300 length 0/65536 zsI ==> -115
[ 1022.287975462       0x4ad8a7cb9]   dbg_prepare: ep7in: trb
ffffffc019c952d0 (E46:D0) buf 00000000ea750000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.288308170       0x4ad8a95ad]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.301895827       0x4ad8e90c1]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 6, Length = 4)
[ 1022.302244316       0x4ad8eaae3]   dbg_ep_queue: ep7in: req
ffffff87b6febe00 length 0/65536 zsI ==> -115
[ 1022.302395098       0x4ad8eb632]   dbg_prepare: ep7in: trb
ffffffc019c952e0 (E47:D0) buf 00000000ea760000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.302627441       0x4ad8ec79f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.303233066       0x4ad8ef50b]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.306936660       0x4ad900ad1]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.307401035       0x4ad902da4]   dbg_ep_queue: ep7in: req
ffffff80404e2e00 length 0/65536 zsI ==> -115
[ 1022.307555566       0x4ad90393b]   dbg_prepare: ep7in: trb
ffffffc019c952f0 (E48:D0) buf 00000000ea770000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.307798900       0x4ad904b7b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.308401608       0x4ad9078b0]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.309304993       0x4ad90bc71]   dbg_ep_queue: ep7in: req
ffffff80404e2800 length 0/65536 zsI ==> -115
[ 1022.309509785       0x4ad90cbcc]   dbg_prepare: ep7in: trb
ffffffc019c95300 (E49:D0) buf 00000000ea780000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.309798952       0x4ad90e17d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.310672181       0x4ad9122fa]   dbg_ep_queue: ep7in: req
ffffff80404e2a00 length 0/65536 zsI ==> -115
[ 1022.310847858       0x4ad913027]   dbg_prepare: ep7in: trb
ffffffc019c95310 (E50:D0) buf 00000000ea790000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.311195410       0x4ad914a38]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.312244420       0x4ad9198e5]   dbg_ep_queue: ep7in: req
ffffff80404e3000 length 0/65536 zsI ==> -115
[ 1022.312465150       0x4ad91a973]   dbg_prepare: ep7in: trb
ffffffc019c95320 (E51:D0) buf 00000000ea7a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.312797233       0x4ad91c25b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.314916452       0x4ad92614d]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.325852650       0x4ad959584]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 6, Length = 12)
[ 1022.326294993       0x4ad95b6b0]   dbg_ep_queue: ep7in: req
ffffff882a491900 length 0/65536 zsI ==> -115
[ 1022.326578275       0x4ad95cbef]   dbg_prepare: ep7in: trb
ffffffc019c95330 (E52:D0) buf 00000000ebfa0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.326888483       0x4ad95e333]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.327583796       0x4ad96175a]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.332992337       0x4ad97acfd]   dbg_ep_queue: ep7in: req
ffffff882a490e00 length 0/65536 zsI ==> -115
[ 1022.333192337       0x4ad97bbfd]   dbg_prepare: ep7in: trb
ffffffc019c95340 (E53:D0) buf 00000000ebfb0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.333523014       0x4ad97d4ca]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.334494525       0x4ad981da7]   dbg_ep_queue: ep7in: req
ffffff8783db4200 length 0/65536 zsI ==> -115
[ 1022.334681712       0x4ad982bb1]   dbg_prepare: ep7in: trb
ffffffc019c95350 (E54:D0) buf 00000000eda50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.334962858       0x4ad9840c7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.335479889       0x4ad98678f]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 12/12 zsI ==> 0
[ 1022.335813327       0x4ad988090]   dbg_ep_queue: ep7in: req
ffffff8783db4f00 length 0/65536 zsI ==> -115
[ 1022.335940618       0x4ad988a1c]   dbg_prepare: ep7in: trb
ffffffc019c95360 (E55:D0) buf 00000000eda60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.336141035       0x4ad989924]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.336539785       0x4ad98b70d]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.338893743       0x4ad996799]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.341042806       0x4ad9a08c6]   dbg_ep_queue: ep7in: req
ffffff8035aff600 length 0/65536 zsI ==> -115
[ 1022.341269316       0x4ad9a19c3]   dbg_prepare: ep7in: trb
ffffffc019c95370 (E56:D0) buf 00000000eda70000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.341530150       0x4ad9a2d53]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.342426816       0x4ad9a7093]   dbg_ep_queue: ep7in: req
ffffff8035affd00 length 0/65536 zsI ==> -115
[ 1022.342604785       0x4ad9a7dec]   dbg_prepare: ep7in: trb
ffffffc019c95380 (E57:D0) buf 00000000eda80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.342875775       0x4ad9a923f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.343732598       0x4ad9ad283]   dbg_ep_queue: ep7in: req
ffffff8035afff00 length 0/65536 zsI ==> -115
[ 1022.343903327       0x4ad9adf50]   dbg_prepare: ep7in: trb
ffffffc019c95390 (E58:D0) buf 00000000eda90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.344171921       0x4ad9af375]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.364524785       0x4ada0e9ed]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 7, Length = 4)
[ 1022.365009785       0x4ada10e4d]   dbg_ep_queue: ep7in: req
ffffff8035afea00 length 0/65536 zsI ==> -115
[ 1022.365185671       0x4ada11b7d]   dbg_prepare: ep7in: trb
ffffffc019c953a0 (E59:D0) buf 00000000ec390000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.365383066       0x4ada12a4b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.365934212       0x4ada153a2]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.366373379       0x4ada17491]   dbg_ep_queue: ep7in: req
ffffff8035afef00 length 0/65536 zsI ==> -115
[ 1022.366529369       0x4ada18044]   dbg_prepare: ep7in: trb
ffffffc019c953b0 (E60:D0) buf 00000000ec3a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.366786869       0x4ada19394]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.367645619       0x4ada1d3fc]   dbg_ep_queue: ep7in: req
ffffff8035afed00 length 0/65536 zsI ==> -115
[ 1022.367845358       0x4ada1e2f7]   dbg_prepare: ep7in: trb
ffffffc019c953c0 (E61:D0) buf 00000000ec3b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.368156660       0x4ada1fa50]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.377212181       0x4ada4a17a]   dbg_ep_queue: ep4out: req
ffffff87ebc49d00 length 0/16384 zsI ==> -115
[ 1022.377354942       0x4ada4ac2f]   dbg_prepare: ep4out: trb
ffffffc019b01070 (E8:D0) buf 00000000e9d00000 size 16384 ctrl 00000819
(HlcS:sC:normal)
[ 1022.377629160       0x4ada4c0c0]   dbg_send_ep_cmd: ep4out: cmd
'Update Transfer' [80007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.380190619       0x4ada580dc]   dbg_ep_queue: ep7in: req
ffffff8035afe300 length 0/65536 zsI ==> -115
[ 1022.380402806       0x4ada590c6]   dbg_prepare: ep7in: trb
ffffffc019c953d0 (E62:D0) buf 00000000ec3c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.380751764       0x4ada5aaf2]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.386202337       0x4ada743bd]   dbg_ep_queue: ep7in: req
ffffff8035affc00 length 0/65536 zsI ==> -115
[ 1022.386417702       0x4ada753e4]   dbg_prepare: ep7in: trb
ffffffc019c953e0 (E63:D0) buf 00000000eaee0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.386682285       0x4ada767bc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.387703744       0x4ada7b458]   dbg_ep_queue: ep7in: req
ffffff887524fe00 length 0/65536 zsI ==> -115
[ 1022.387833900       0x4ada7be1b]   dbg_prepare: ep7in: trb
ffffffc019c953f0 (E64:D0) buf 00000000eaef0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.388036087       0x4ada7cd45]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.389338171       0x4ada82eed]   dbg_ep_queue: ep7in: req
ffffff80457e1d00 length 0/65536 zsI ==> -115
[ 1022.389460931       0x4ada83822]   dbg_prepare: ep7in: trb
ffffffc019c95400 (E65:D0) buf 00000000eaf00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.389669681       0x4ada847ca]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.390441348       0x4ada881aa]   dbg_ep_queue: ep7in: req
ffffff80457e0600 length 0/65536 zsI ==> -115
[ 1022.390606608       0x4ada88e0f]   dbg_prepare: ep7in: trb
ffffffc019c95410 (E66:D0) buf 00000000eaf10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.390872546       0x4ada8a201]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.391738744       0x4ada8e2f8]   dbg_ep_queue: ep7in: req
ffffff80457e0400 length 0/65536 zsI ==> -115
[ 1022.391913379       0x4ada8f011]   dbg_prepare: ep7in: trb
ffffffc019c95420 (E67:D0) buf 00000000eaf20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.392182598       0x4ada90442]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.396914994       0x4adaa6730]   dbg_ep_queue: ep7in: req
ffffff80457e0500 length 0/65536 zsI ==> -115
[ 1022.397088067       0x4adaa742b]   dbg_prepare: ep7in: trb
ffffffc019c95430 (E68:D0) buf 00000000eaf30000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.397316660       0x4adaa8550]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.397921712       0x4adaab2b1]   dbg_ep_queue: ep7in: req
ffffff80457e1800 length 0/65536 zsI ==> -115
[ 1022.398042337       0x4adaabbbd]   dbg_prepare: ep7in: trb
ffffffc019c95440 (E69:D0) buf 00000000eaf40000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.398289890       0x4adaace4e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.399133379       0x4adab0d91]   dbg_ep_queue: ep7in: req
ffffff80457e0d00 length 0/65536 zsI ==> -115
[ 1022.399333796       0x4adab1c99]   dbg_prepare: ep7in: trb
ffffffc019c95450 (E70:D0) buf 00000000eaf50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.399632233       0x4adab32fb]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.404179004       0x4adac87fd]   dbg_ep_queue: ep7in: req
ffffff80457e0f00 length 0/65536 zsI ==> -115
[ 1022.404378171       0x4adac96ed]   dbg_prepare: ep7in: trb
ffffffc019c95460 (E71:D0) buf 00000000eaf60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.404734785       0x4adacb1ac]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.410588379       0x4adae68b2]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.410961869       0x4adae84b4]   dbg_ep_queue: ep7in: req
ffffff80457e1000 length 0/65536 zsI ==> -115
[ 1022.411142442       0x4adae9240]   dbg_prepare: ep7in: trb
ffffffc019c95470 (E72:D0) buf 00000000eaf70000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.411424473       0x4adaea766]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.412038223       0x4adaed56f]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.415723223       0x4adafe9cf]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.417173171       0x4adb0568d]   dbg_ep_queue: ep7in: req
ffffff80457e0e00 length 0/65536 zsI ==> -115
[ 1022.417383640       0x4adb06656]   dbg_prepare: ep7in: trb
ffffffc019c95480 (E73:D0) buf 00000000eaf80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.417703744       0x4adb07e58]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.428008223       0x4adb3832f]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 7, Length = 18)
[ 1022.428451452       0x4adb3a46c]   dbg_ep_queue: ep7in: req
ffffff80412da900 length 0/65536 zsI ==> -115
[ 1022.428650879       0x4adb3b361]   dbg_prepare: ep7in: trb
ffffffc019c95490 (E74:D0) buf 00000000eaf90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.428904785       0x4adb3c66c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.429569004       0x4adb3f83e]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.435199577       0x4adb59e89]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1022.435548119       0x4adb5b8ac]   dbg_ep_queue: ep7in: req
ffffff80412db600 length 0/65536 zsI ==> -115
[ 1022.435729213       0x4adb5c641]   dbg_prepare: ep7in: trb
ffffffc019c954a0 (E75:D0) buf 00000000eafa0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.436015150       0x4adb5dbb3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.436670306       0x4adb60cd7]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.440005410       0x4adb706f9]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.440531869       0x4adb72e74]   dbg_ep_queue: ep7in: req
ffffff80412db900 length 0/65536 zsI ==> -115
[ 1022.440733796       0x4adb73d99]   dbg_prepare: ep7in: trb
ffffffc019c954b0 (E76:D0) buf 00000000eafb0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.441077806       0x4adb75766]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.461501661       0x4adbd5331]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 8, Length = 4)
[ 1022.461715202       0x4adbd6334]   dbg_ep_queue: ep7in: req
ffffff80412db000 length 0/65536 zsI ==> -115
[ 1022.461813744       0x4adbd6a98]   dbg_prepare: ep7in: trb
ffffffc019c954c0 (E77:D0) buf 00000000eafc0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.461959942       0x4adbd758f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.462336140       0x4adbd91c7]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.464558640       0x4adbe3876]   dbg_ep_queue: ep7in: req
ffffff80412dbb00 length 0/65536 zsI ==> -115
[ 1022.464688223       0x4adbe422e]   dbg_prepare: ep7in: trb
ffffffc019c954d0 (E78:D0) buf 00000000ea9f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.464831296       0x4adbe4ce9]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.465334473       0x4adbe72a6]   dbg_ep_queue: ep7in: req
ffffff80320f0b00 length 0/65536 zsI ==> -115
[ 1022.465464838       0x4adbe7c6d]   dbg_prepare: ep7in: trb
ffffffc019c954e0 (E79:D0) buf 00000000eaa00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.465629213       0x4adbe88c1]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.466198119       0x4adbeb36d]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.466381036       0x4adbec124]   dbg_ep_queue: ep7in: req
ffffff80320f0500 length 0/65536 zsI ==> -115
[ 1022.466480567       0x4adbec89b]   dbg_prepare: ep7in: trb
ffffffc019c954f0 (E80:D0) buf 00000000eaa10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.466621713       0x4adbed331]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.466946973       0x4adbeeb96]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.467227963       0x4adbf00a9]   dbg_ep_queue: ep7in: req
ffffff80320f1c00 length 0/65536 zsI ==> -115
[ 1022.467327233       0x4adbf081b]   dbg_prepare: ep7in: trb
ffffffc019c95500 (E81:D0) buf 00000000ed890000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.467481348       0x4adbf13ab]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.467845358       0x4adbf2ef8]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.468130879       0x4adbf4461]   dbg_ep_queue: ep7in: req
ffffff80320f1800 length 0/65536 zsI ==> -115
[ 1022.468229577       0x4adbf4bc8]   dbg_prepare: ep7in: trb
ffffffc019c95510 (E82:D0) buf 00000000ed880000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.468393223       0x4adbf580e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.479144629       0x4adc27e6a]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 8, Length = 20)
[ 1022.479358275       0x4adc28e6f]   dbg_ep_queue: ep7in: req
ffffff80320f0300 length 0/65536 zsI ==> -115
[ 1022.479457442       0x4adc295df]   dbg_prepare: ep7in: trb
ffffffc019c95520 (E83:D0) buf 00000000ed870000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.479599473       0x4adc2a086]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.479977286       0x4adc2bcdd]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.482375411       0x4adc370b8]   dbg_ep_queue: ep7in: req
ffffff80407e7000 length 0/65536 zsI ==> -115
[ 1022.482486348       0x4adc3790a]   dbg_prepare: ep7in: trb
ffffffc019c95530 (E84:D0) buf 00000000ed860000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.482658848       0x4adc385fa]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.483628171       0x4adc3cead]   dbg_ep_queue: ep7in: req
ffffff80407e7b00 length 0/65536 zsI ==> -115
[ 1022.483802234       0x4adc3dbbb]   dbg_prepare: ep7in: trb
ffffffc019c95540 (E85:D0) buf 00000000ed850000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.484092963       0x4adc3f189]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.485673431       0x4adc46812]   dbg_ep_queue: ep7in: req
ffffff80407e6600 length 0/65536 zsI ==> -115
[ 1022.485894525       0x4adc478a7]   dbg_prepare: ep7in: trb
ffffffc019c95550 (E86:D0) buf 00000000ed840000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.486238588       0x4adc49275]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.487288588       0x4adc4e135]   dbg_ep_queue: ep7in: req
ffffff80407e7a00 length 0/65536 zsI ==> -115
[ 1022.487499473       0x4adc4f106]   dbg_prepare: ep7in: trb
ffffffc019c95560 (E87:D0) buf 00000000eb240000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.487851088       0x4adc50b65]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.495430671       0x4adc743dd]   dbg_ep_queue: ep7in: req
ffffff80407e6f00 length 0/65536 zsI ==> -115
[ 1022.495655827       0x4adc754c0]   dbg_prepare: ep7in: trb
ffffffc019c95570 (E88:D0) buf 00000000ec1b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.495946244       0x4adc76a88]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.501360567       0x4adc9009b]   dbg_ep_queue: ep7in: req
ffffff80407e7d00 length 0/65536 zsI ==> -115
[ 1022.501554838       0x4adc90f2d]   dbg_prepare: ep7in: trb
ffffffc019c95580 (E89:D0) buf 00000000ec1a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.501869681       0x4adc926ca]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.503020723       0x4adc97d1e]   dbg_ep_queue: ep7in: req
ffffff80407e6400 length 0/65536 zsI ==> -115
[ 1022.503238275       0x4adc98d6f]   dbg_prepare: ep7in: trb
ffffffc019c95590 (E90:D0) buf 00000000ec190000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.503578067       0x4adc9a6eb]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.523925932       0x4adcf9d02]   dbg_ep_queue: ep7in: req
ffffff80407e7f00 length 0/65536 zsI ==> -115
[ 1022.524124057       0x4adcfabdf]   dbg_prepare: ep7in: trb
ffffffc019c955a0 (E91:D0) buf 00000000ec180000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.524470932       0x4adcfc5e3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.530028692       0x4add166b7]   dbg_ep_queue: ep7in: req
ffffff87fec7f900 length 0/65536 zsI ==> -115
[ 1022.530220879       0x4add17521]   dbg_prepare: ep7in: trb
ffffffc019c955b0 (E92:D0) buf 00000000ec170000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.530517546       0x4add18b61]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.531490359       0x4add1d458]   dbg_ep_queue: ep7in: req
ffffff87fec7fe00 length 0/65536 zsI ==> -115
[ 1022.531729421       0x4add1e645]   dbg_prepare: ep7in: trb
ffffffc019c955c0 (E93:D0) buf 00000000ef160000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.532045150       0x4add1fdf3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.545574317       0x4add5f4a3]   dbg_ep_queue: ep7in: req
ffffff87fec7fb00 length 0/65536 zsI ==> -115
[ 1022.545770984       0x4add60363]   dbg_prepare: ep7in: trb
ffffffc019c955d0 (E94:D0) buf 00000000ef170000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.546076973       0x4add61a56]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.547103848       0x4add6675a]   dbg_ep_queue: ep7in: req
ffffff87fec7e800 length 0/65536 zsI ==> -115
[ 1022.547298484       0x4add675f3]   dbg_prepare: ep7in: trb
ffffffc019c955e0 (E95:D0) buf 00000000ef180000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.547601296       0x4add68ca9]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.552093640       0x4add7dd96]   dbg_ep_queue: ep7in: req
ffffff885fa9a900 length 0/65536 zsI ==> -115
[ 1022.552297077       0x4add7ecd8]   dbg_prepare: ep7in: trb
ffffffc019c955f0 (E96:D0) buf 00000000ef190000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.552638067       0x4add8066b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.573464994       0x4adde2070]   dbg_ep_queue: ep7in: req
ffffff885fa9ba00 length 0/65536 zsI ==> -115
[ 1022.573702338       0x4adde323d]   dbg_prepare: ep7in: trb
ffffffc019c95600 (E97:D0) buf 00000000eb7f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.573976400       0x4adde46cb]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.574876921       0x4adde8a56]   dbg_ep_queue: ep7in: req
ffffff885fa9ab00 length 0/65536 zsI ==> -115
[ 1022.575055932       0x4adde97c2]   dbg_prepare: ep7in: trb
ffffffc019c95610 (E98:D0) buf 00000000eb800000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.575347025       0x4addead97]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.579944942       0x4ade0066f]   dbg_ep_queue: ep7in: req
ffffff885fa9b200 length 0/65536 zsI ==> -115
[ 1022.580162755       0x4ade016c5]   dbg_prepare: ep7in: trb
ffffffc019c95620 (E99:D0) buf 00000000eb810000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.580503796       0x4ade03059]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.581910255       0x4ade099d5]   dbg_ep_queue: ep7in: req
ffffff885fa9a200 length 0/65536 zsI ==> -115
[ 1022.582079786       0x4ade0a68d]   dbg_prepare: ep7in: trb
ffffffc019c95630 (E100:D0) buf 00000000ed790000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.582295203       0x4ade0b6b4]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.582898744       0x4ade0e3f9]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 20/20 zsI ==> 0
[ 1022.583323119       0x4ade103cc]   dbg_ep_queue: ep7in: req
ffffff885fa9b100 length 0/65536 zsI ==> -115
[ 1022.583522390       0x4ade112bf]   dbg_prepare: ep7in: trb
ffffffc019c95640 (E101:D0) buf 00000000ead50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.583817286       0x4ade128dc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.584498900       0x4ade15bfb]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.587180203       0x4ade22515]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.599248588       0x4ade5ae35]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 9, Length = 4)
[ 1022.600250984       0x4ade5f964]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.600711609       0x4ade61bef]   dbg_ep_queue: ep7in: req
ffffff885fa9a000 length 0/65536 zsI ==> -115
[ 1022.600886036       0x4ade62904]   dbg_prepare: ep7in: trb
ffffffc019c95650 (E102:D0) buf 00000000ec570000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.601202911       0x4ade640c8]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.606840046       0x4ade7e792]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.607197286       0x4ade8025c]   dbg_ep_queue: ep7in: req
ffffff885fa9bc00 length 0/65536 zsI ==> -115
[ 1022.607397703       0x4ade81164]   dbg_prepare: ep7in: trb
ffffffc019c95660 (E103:D0) buf 00000000eace0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.607700776       0x4ade8281f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.608335463       0x4ade857b9]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.611118223       0x4ade9286e]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.621105932       0x4adec1583]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 9, Length = 28)
[ 1022.621645151       0x4adec3df4]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.622513015       0x4adec7f0a]   dbg_ep_queue: ep7in: req
ffffff8036148600 length 0/65536 zsI ==> -115
[ 1022.622615880       0x4adec86c1]   dbg_prepare: ep7in: trb
ffffffc019c95670 (E104:D0) buf 00000000eefd0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.622773015       0x4adec928a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.623310515       0x4adecbada]   dbg_ep_queue: ep7in: req
ffffff8036149100 length 0/65536 zsI ==> -115
[ 1022.623415828       0x4adecc2c0]   dbg_prepare: ep7in: trb
ffffffc019c95680 (E105:D0) buf 00000000eefc0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.623573796       0x4adecce99]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.623890776       0x4adece660]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 28/28 zsI ==> 0
[ 1022.624102599       0x4adecf642]   dbg_ep_queue: ep7in: req
ffffff8036149500 length 0/65536 zsI ==> -115
[ 1022.624200046       0x4adecfd92]   dbg_prepare: ep7in: trb
ffffffc019c95690 (E106:D0) buf 00000000edc10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.624350567       0x4aded08db]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.624678953       0x4aded217d]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.626562078       0x4adedaeb9]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.626845515       0x4adedc3fa]   dbg_ep_queue: ep7in: req
ffffff8036149e00 length 0/65536 zsI ==> -115
[ 1022.626948015       0x4adedcbaa]   dbg_prepare: ep7in: trb
ffffffc019c956a0 (E107:D0) buf 00000000edc00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.627103432       0x4adedd752]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.627602599       0x4adedfcc2]   dbg_ep_queue: ep7in: req
ffffff8036149f00 length 0/65536 zsI ==> -115
[ 1022.627706505       0x4adee048d]   dbg_prepare: ep7in: trb
ffffffc019c956b0 (E108:D0) buf 00000000ed930000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.627865828       0x4adee1080]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.630117130       0x4adeeb959]   dbg_ep_queue: ep7in: req
ffffff8036149700 length 0/65536 zsI ==> -115
[ 1022.630221609       0x4adeec12f]   dbg_prepare: ep7in: trb
ffffffc019c956c0 (E109:D0) buf 00000000ed920000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.630383276       0x4adeecd4f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.630885515       0x4adeef2fa]   dbg_ep_queue: ep7in: req
ffffff8036149400 length 0/65536 zsI ==> -115
[ 1022.630989057       0x4adeefabe]   dbg_prepare: ep7in: trb
ffffffc019c956d0 (E110:D0) buf 00000000ec000000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.631148640       0x4adef06b6]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.631657234       0x4adef2cdc]   dbg_ep_queue: ep7in: req
ffffff8036148500 length 0/65536 zsI ==> -115
[ 1022.631758380       0x4adef3471]   dbg_prepare: ep7in: trb
ffffffc019c956e0 (E111:D0) buf 00000000ed440000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.631921609       0x4adef40af]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.647709942       0x4adf3e0d0]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 4)
[ 1022.648254265       0x4adf409a3]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.650697911       0x4adf4c0e9]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.651091244       0x4adf4de69]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.651928536       0x4adf51d35]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.653585203       0x4adf59974]   dbg_ep_queue: ep7in: req
ffffff8036148400 length 0/65536 zsI ==> -115
[ 1022.653697547       0x4adf5a1e1]   dbg_prepare: ep7in: trb
ffffffc019c956f0 (E112:D0) buf 00000000ed450000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.653861922       0x4adf5ae35]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.663434005       0x4adf87c1f]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 4)
[ 1022.663868640       0x4adf89cb6]   dbg_ep_queue: ep7in: req
ffffff8036149c00 length 0/65536 zsI ==> -115
[ 1022.664063119       0x4adf8ab4c]   dbg_prepare: ep7in: trb
ffffffc019c95700 (E113:D0) buf 00000000ed460000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.664363849       0x4adf8c1da]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.665098328       0x4adf8f8f1]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.670846870       0x4adfaa815]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.671775932       0x4adfaedc2]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.675540151       0x4adfc0814]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.688456140       0x4adffd0c7]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 48)
[ 1022.689053380       0x4adfffd92]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.694700724       0x4ae01a51f]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 48/48 zsI ==> 0
[ 1022.695633015       0x4ae01eb0a]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.699347807       0x4ae0301a7]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.701885828       0x4ae03c000]   dbg_ep_queue: ep7in: req
ffffff8036148900 length 0/65536 zsI ==> -115
[ 1022.702083588       0x4ae03ced5]   dbg_prepare: ep7in: trb
ffffffc019c95710 (E114:D0) buf 00000000ea900000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.702366557       0x4ae03e40e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.703397495       0x4ae043160]   dbg_ep_queue: ep7in: req
ffffff8036148700 length 0/65536 zsI ==> -115
[ 1022.703586245       0x4ae043f88]   dbg_prepare: ep7in: trb
ffffffc019c95720 (E115:D0) buf 00000000eb2f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.703887859       0x4ae045627]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.713802182       0x4ae073dba]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 2, Length = 48)
[ 1022.714216453       0x4ae075ccd]   dbg_ep_queue: ep7in: req
ffffff804123dd00 length 0/65536 zsI ==> -115
[ 1022.714408224       0x4ae076b2e]   dbg_prepare: ep7in: trb
ffffffc019c95730 (E116:D0) buf 00000000eb300000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.714717807       0x4ae078266]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.715446245       0x4ae07b90a]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.719827078       0x4ae090199]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 48/48 zsI ==> 0
[ 1022.720788484       0x4ae0949b3]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.724179578       0x4ae0a4809]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.736732338       0x4ae0df57e]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 4)
[ 1022.736956453       0x4ae0e064c]   dbg_ep_queue: ep7in: req
ffffff804123cd00 length 0/65536 zsI ==> -115
[ 1022.737055724       0x4ae0e0dbe]   dbg_prepare: ep7in: trb
ffffffc019c95740 (E117:D0) buf 00000000eb310000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.737201193       0x4ae0e18a7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.737563068       0x4ae0e33cb]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.739713901       0x4ae0ed51c]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.740156297       0x4ae0ef64a]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.741988224       0x4ae0f7faf]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.752077964       0x4ae12746a]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 4)
[ 1022.752518536       0x4ae129574]   dbg_ep_queue: ep7in: req
ffffff804123d800 length 0/65536 zsI ==> -115
[ 1022.752726505       0x4ae12a50d]   dbg_prepare: ep7in: trb
ffffffc019c95750 (E118:D0) buf 00000000eb320000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.753026922       0x4ae12bb95]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.753707651       0x4ae12eea4]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.754700099       0x4ae133912]   dbg_ep_queue: ep7in: req
ffffff804123c500 length 0/65536 zsI ==> -115
[ 1022.754917130       0x4ae134959]   dbg_prepare: ep7in: trb
ffffffc019c95760 (E119:D0) buf 00000000eb330000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.755243953       0x4ae1361dc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.756343224       0x4ae13b44e]   dbg_ep_queue: ep7in: req
ffffff804123c300 length 0/65536 zsI ==> -115
[ 1022.756562651       0x4ae13c4c3]   dbg_prepare: ep7in: trb
ffffffc019c95770 (E120:D0) buf 00000000ef080000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.756885672       0x4ae13dcfd]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.759069943       0x4ae1480d0]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.760008693       0x4ae14c738]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.763579266       0x4ae15d303]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.777242339       0x4ae19d3bd]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 18)
[ 1022.777676714       0x4ae19f451]   dbg_ep_queue: ep7in: req
ffffff804123d300 length 0/65536 zsI ==> -115
[ 1022.777875620       0x4ae1a033c]   dbg_prepare: ep7in: trb
ffffffc019c95780 (E121:D0) buf 00000000ef090000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.778174787       0x4ae1a19ac]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.778887495       0x4ae1a4f21]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.779869474       0x4ae1a98c6]   dbg_ep_queue: ep7in: req
ffffff882a2a0000 length 0/65536 zsI ==> -115
[ 1022.780090568       0x4ae1aa95b]   dbg_prepare: ep7in: trb
ffffffc019c95790 (E122:D0) buf 00000000ef0a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.780426974       0x4ae1ac296]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.781897182       0x4ae1b30da]   dbg_ep_queue: ep7in: req
ffffff882a2a1d00 length 0/65536 zsI ==> -115
[ 1022.782098120       0x4ae1b3fec]   dbg_prepare: ep7in: trb
ffffffc019c957a0 (E123:D0) buf 00000000ef0b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.782390828       0x4ae1b55e0]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.783450151       0x4ae1ba553]   dbg_ep_queue: ep7in: req
ffffff882a2a1800 length 0/65536 zsI ==> -115
[ 1022.783658224       0x4ae1bb4ee]   dbg_prepare: ep7in: trb
ffffffc019c957b0 (E124:D0) buf 00000000ef0c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.783968641       0x4ae1bcc36]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.784595828       0x4ae1bfb41]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1022.785443380       0x4ae1c3ad2]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.791376766       0x4ae1df7d3]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.804292130       0x4ae21c079]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 18)
[ 1022.804729526       0x4ae21e147]   dbg_ep_queue: ep7in: req
ffffff882a2a0800 length 0/65536 zsI ==> -115
[ 1022.804898224       0x4ae21edee]   dbg_prepare: ep7in: trb
ffffffc019c957c0 (E125:D0) buf 00000000ef0d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.805207755       0x4ae220525]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.805904787       0x4ae22396d]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.811321505       0x4ae23cfae]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1022.812270464       0x4ae2416da]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.818837703       0x4ae260364]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.828776505       0x4ae28ecce]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep1in)
[ 1022.829417807       0x4ae291ce7]   dbg_send_ep_cmd: ep1in: cmd 'End
Transfer' [30d08] params 00000000 00000000 00000000 --> status: Successful
[ 1022.829974110       0x4ae29469f]   dbg_ep_queue: ep7in: req
ffffff882a2a0600 length 0/65536 zsI ==> -115
[ 1022.830181453       0x4ae29562c]   dbg_prepare: ep7in: trb
ffffffc019c957d0 (E126:D0) buf 00000000ef0e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.830523953       0x4ae296fdc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.835320568       0x4ae2ad79c]   dbg_send_ep_cmd: ep1in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1022.836142391       0x4ae2b153e]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.839761453       0x4ae2c24ad]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.851694943       0x4ae2fa3b0]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep2in)
[ 1022.852198745       0x4ae2fc978]   dbg_send_ep_cmd: ep2in: cmd 'End
Transfer' [50d08] params 00000000 00000000 00000000 --> status: Successful
[ 1022.852715516       0x4ae2ff03a]   dbg_ep_queue: ep7in: req
ffffff882a2a0a00 length 0/65536 zsI ==> -115
[ 1022.852917183       0x4ae2fff5a]   dbg_prepare: ep7in: trb
ffffffc019c957e0 (E127:D0) buf 00000000ed800000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.853264266       0x4ae301962]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.854985672       0x4ae309a7d]   dbg_ep_queue: ep7in: req
ffffff80411f2700 length 0/65536 zsI ==> -115
[ 1022.855185672       0x4ae30a97d]   dbg_prepare: ep7in: trb
ffffffc019c957f0 (E128:D0) buf 00000000ed810000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.855513797       0x4ae30c219]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.856140880       0x4ae30f122]   dbg_send_ep_cmd: ep2in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1022.856903068       0x4ae312a4c]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.860470360       0x4ae3235d8]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.872198485       0x4ae35a573]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep1out)
[ 1022.872832391       0x4ae35d4ff]   dbg_send_ep_cmd: ep1out: cmd 'End
Transfer' [20d08] params 00000000 00000000 00000000 --> status: Successful
[ 1022.873367912       0x4ae35fd28]   dbg_ep_queue: ep7in: req
ffffff80411f2c00 length 0/65536 zsI ==> -115
[ 1022.873584995       0x4ae360d70]   dbg_prepare: ep7in: trb
ffffffc019c95800 (E129:D0) buf 00000000ed820000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.873920672       0x4ae36269d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.875639318       0x4ae36a783]   dbg_ep_queue: ep7in: req
ffffff80411f3e00 length 0/65536 zsI ==> -115
[ 1022.875859422       0x4ae36b806]   dbg_prepare: ep7in: trb
ffffffc019c95810 (E130:D0) buf 00000000ed830000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.876198224       0x4ae36d16f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.876805360       0x4ae36fef8]   dbg_send_ep_cmd: ep1out: cmd
'Clear Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1022.877437703       0x4ae372e65]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.877918953       0x4ae37527d]   dbg_send_ep_cmd: ep1out: cmd
'Start Transfer' [406] params 00000000 efff8000 00000000 --> status:
Successful
[ 1022.878399943       0x4ae37768f]   dbg_ep_queue: ep7in: req
ffffff80411f3200 length 0/65536 zsI ==> -115
[ 1022.878612495       0x4ae378680]   dbg_prepare: ep7in: trb
ffffffc019c95820 (E131:D0) buf 00000000eefb0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.878961453       0x4ae37a0ac]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.880047964       0x4ae37f229]   dbg_ep_queue: ep7in: req
ffffff8783b85000 length 0/65536 zsI ==> -115
[ 1022.880264162       0x4ae380260]   dbg_prepare: ep7in: trb
ffffffc019c95830 (E132:D0) buf 00000000edbf0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.880618016       0x4ae381cea]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.882651089       0x4ae38b566]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.892666506       0x4ae3ba48e]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep2out)
[ 1022.893373068       0x4ae3bd98c]   dbg_send_ep_cmd: ep2out: cmd 'End
Transfer' [40d08] params 00000000 00000000 00000000 --> status: Successful
[ 1022.893799683       0x4ae3bf98a]   dbg_ep_queue: ep7in: req
ffffff8783b84600 length 0/65536 zsI ==> -115
[ 1022.893977079       0x4ae3c06d8]   dbg_prepare: ep7in: trb
ffffffc019c95840 (E133:D0) buf 00000000edbe0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.894305620       0x4ae3c1f7c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.895391037       0x4ae3c70e4]   dbg_ep_queue: ep7in: req
ffffff8783b85a00 length 0/65536 zsI ==> -115
[ 1022.895609266       0x4ae3c8142]   dbg_prepare: ep7in: trb
ffffffc019c95850 (E134:D0) buf 00000000edbd0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.895956089       0x4ae3c9b45]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.897702495       0x4ae3d1e40]   dbg_ep_queue: ep7in: req
ffffff80410f9d00 length 0/65536 zsI ==> -115
[ 1022.897912860       0x4ae3d2e07]   dbg_prepare: ep7in: trb
ffffffc019c95860 (E135:D0) buf 00000000edbc0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.898272287       0x4ae3d48fc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.899269162       0x4ae3d93c1]   dbg_send_ep_cmd: ep2out: cmd
'Clear Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1022.899932495       0x4ae3dc580]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.900630360       0x4ae3df9d8]   dbg_send_ep_cmd: ep2out: cmd
'Start Transfer' [406] params 00000000 efff6000 00000000 --> status:
Successful
[ 1022.901128745       0x4ae3e1f38]   dbg_ep_queue: ep7in: req
ffffff8036150000 length 0/65536 zsI ==> -115
[ 1022.901330151       0x4ae3e2e53]   dbg_prepare: ep7in: trb
ffffffc019c95870 (E136:D0) buf 00000000eef60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.901672026       0x4ae3e47f7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.904160985       0x4ae3f02a4]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.921364422       0x4ae440ce5]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 6, Length = 4)
[ 1022.921800099       0x4ae442d93]   dbg_ep_queue: ep7in: req
ffffff8036151700 length 0/65536 zsI ==> -115
[ 1022.921997443       0x4ae443c5f]   dbg_prepare: ep7in: trb
ffffffc019c95880 (E137:D0) buf 00000000ead90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.922300829       0x4ae445320]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.923021037       0x4ae448925]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.927955464       0x4ae45fb3a]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.928871558       0x4ae463fef]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.932513120       0x4ae47510d]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.934033797       0x4ae47c319]   dbg_ep_queue: ep7in: req
ffffff8036151e00 length 0/65536 zsI ==> -115
[ 1022.934250099       0x4ae47d352]   dbg_prepare: ep7in: trb
ffffffc019c95890 (E138:D0) buf 00000000ead80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.934584787       0x4ae47ec6c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.935629579       0x4ae483ac8]   dbg_ep_queue: ep7in: req
ffffff8036151500 length 0/65536 zsI ==> -115
[ 1022.935826714       0x4ae484991]   dbg_prepare: ep7in: trb
ffffffc019c958a0 (E139:D0) buf 00000000ead70000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.936146297       0x4ae486189]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.946096141       0x4ae4b4bc7]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 6, Length = 12)
[ 1022.946547808       0x4ae4b6da6]   dbg_ep_queue: ep7in: req
ffffff8036151f00 length 0/65536 zsI ==> -115
[ 1022.946751975       0x4ae4b7cf6]   dbg_prepare: ep7in: trb
ffffffc019c958b0 (E140:D0) buf 00000000ead60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.947053433       0x4ae4b9393]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.947751975       0x4ae4bc7f7]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.952134631       0x4ae4d10aa]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 12/12 zsI ==> 0
[ 1022.953025516       0x4ae4d537a]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.958759475       0x4ae4f0187]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.969596193       0x4ae522e47]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 4)
[ 1022.970075308       0x4ae525236]   dbg_ep_queue: ep7in: req
ffffff8036150900 length 0/65536 zsI ==> -115
[ 1022.970291141       0x4ae526267]   dbg_prepare: ep7in: trb
ffffffc019c958c0 (E141:D0) buf 00000000ec3e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.970599735       0x4ae52798b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.971311350       0x4ae52aeeb]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1022.971822912       0x4ae52d548]   dbg_ep_queue: ep7in: req
ffffff8036151d00 length 0/65536 zsI ==> -115
[ 1022.972027912       0x4ae52e4a8]   dbg_prepare: ep7in: trb
ffffffc019c958d0 (E142:D0) buf 00000000edad0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.972335412       0x4ae52fbb8]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.974049995       0x4ae537c51]   dbg_ep_queue: ep7in: req
ffffff8036151b00 length 0/65536 zsI ==> -115
[ 1022.974229735       0x4ae5389cb]   dbg_prepare: ep7in: trb
ffffffc019c958e0 (E143:D0) buf 00000000edac0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.974516870       0x4ae539f55]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.975572287       0x4ae53ee7c]   dbg_ep_queue: ep7in: req
ffffff8036151200 length 0/65536 zsI ==> -115
[ 1022.975791402       0x4ae53feeb]   dbg_prepare: ep7in: trb
ffffffc019c958f0 (E144:D0) buf 00000000ebfe0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.976107600       0x4ae5416a2]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.976763120       0x4ae5447cd]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 4/4 zsI ==> 0
[ 1022.977552339       0x4ae5482fe]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.978111350       0x4ae54acea]   dbg_ep_queue: ep7in: req
ffffff878b889f00 length 0/65536 zsI ==> -115
[ 1022.978319527       0x4ae54bc87]   dbg_prepare: ep7in: trb
ffffffc019c95900 (E145:D0) buf 00000000ebff0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.978651089       0x4ae54d565]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.979900620       0x4ae55331c]   dbg_ep_queue: ep7in: req
ffffff803594c200 length 0/65536 zsI ==> -115
[ 1022.980128173       0x4ae55442d]   dbg_prepare: ep7in: trb
ffffffc019c95910 (E146:D0) buf 00000000eac80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1022.980458485       0x4ae555cf3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1022.983477443       0x4ae563f60]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1022.996707912       0x4ae5a1fa9]   dbg_trace_log_ctrl: Get String
Descriptor(Index = 3, Length = 18)
[ 1022.997687860       0x4ae5a6928]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1023.003303277       0x4ae5c0e4f]   dbg_gadget_giveback: ep0out: req
ffffff80362f1900 length 18/18 zsI ==> 0
[ 1023.004248589       0x4ae5c5535]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.008228225       0x4ae5d7faf]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.008766246       0x4ae5da808]   dbg_ep_queue: ep7in: req
ffffff803594d800 length 0/65536 zsI ==> -115
[ 1023.008965673       0x4ae5db6fd]   dbg_prepare: ep7in: trb
ffffffc019c95920 (E147:D0) buf 00000000ea1d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.009302183       0x4ae5dd03a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.011210152       0x4ae5e5f53]   dbg_ep_queue: ep7in: req
ffffff803594dd00 length 0/65536 zsI ==> -115
[ 1023.011413798       0x4ae5e6e99]   dbg_prepare: ep7in: trb
ffffffc019c95930 (E148:D0) buf 00000000ea1e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.011735308       0x4ae5e86b6]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.020703277       0x4ae612750]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1023.021306089       0x4ae615486]   dbg_send_ep_cmd: ep5in: cmd 'End
Transfer' [b0d08] params 00000000 00000000 00000000 --> status: Successful
[ 1023.021717183       0x4ae61735a]   dbg_ep_queue: ep7in: req
ffffff803594c100 length 0/65536 zsI ==> -115
[ 1023.021927652       0x4ae618323]   dbg_prepare: ep7in: trb
ffffffc019c95940 (E149:D0) buf 00000000ea860000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.022247339       0x4ae619b1d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.027116454       0x4ae63084e]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1023.027839110       0x4ae633e7f]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1023.031545360       0x4ae645478]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.033938173       0x4ae6507ed]   dbg_ep_queue: ep7in: req
ffffff803594d100 length 0/65536 zsI ==> -115
[ 1023.034156871       0x4ae651854]   dbg_prepare: ep7in: trb
ffffffc019c95950 (E150:D0) buf 00000000ea850000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.034489735       0x4ae65314b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.043397548       0x4ae67cd61]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1023.043979996       0x4ae67f911]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1023.044686558       0x4ae682e0f]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.045223589       0x4ae685655]   dbg_ep_queue: ep7in: req
ffffff803594ca00 length 0/65536 zsI ==> -115
[ 1023.045426141       0x4ae686586]   dbg_prepare: ep7in: trb
ffffffc019c95960 (E151:D0) buf 00000000ea840000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.045776402       0x4ae687fcb]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.117953590       0x4ae7da515]   dbg_ep_queue: ep7in: req
ffffff803594c600 length 0/65536 zsI ==> -115
[ 1023.118069944       0x4ae7dadcf]   dbg_prepare: ep7in: trb
ffffffc019c95970 (E152:D0) buf 00000000ea830000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.118228538       0x4ae7db9b4]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.118744683       0x4ae7de06a]   dbg_ep_queue: ep7in: req
ffffff803594c800 length 0/65536 zsI ==> -115
[ 1023.118850673       0x4ae7de85e]   dbg_prepare: ep7in: trb
ffffffc019c95980 (E153:D0) buf 00000000eab40000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.119006038       0x4ae7df404]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.119531038       0x4ae7e1b64]   dbg_ep_queue: ep7in: req
ffffff803594c700 length 0/65536 zsI ==> -115
[ 1023.119639371       0x4ae7e2384]   dbg_prepare: ep7in: trb
ffffffc019c95990 (E154:D0) buf 00000000eab50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.119798694       0x4ae7e2f77]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.120593850       0x4ae7e6b1a]   dbg_ep_queue: ep7in: req
ffffff803594c300 length 0/65536 zsI ==> -115
[ 1023.120696194       0x4ae7e72c7]   dbg_prepare: ep7in: trb
ffffffc019c959a0 (E155:D0) buf 00000000eab60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.120830204       0x4ae7e7cd4]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.121205673       0x4ae7e98fe]   dbg_ep_queue: ep7in: req
ffffff803594cc00 length 0/65536 zsI ==> -115
[ 1023.121267913       0x4ae7e9da8]   dbg_prepare: ep7in: trb
ffffffc019c959b0 (E156:D0) buf 00000000eab70000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.121368902       0x4ae7ea53b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.121821298       0x4ae7ec729]   dbg_ep_queue: ep7in: req
ffffff803594d400 length 0/65536 zsI ==> -115
[ 1023.121925048       0x4ae7ecef1]   dbg_prepare: ep7in: trb
ffffffc019c959c0 (E157:D0) buf 00000000eab80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.122079996       0x4ae7eda90]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.122589683       0x4ae7f00cb]   dbg_ep_queue: ep7in: req
ffffff878dcfb700 length 0/65536 zsI ==> -115
[ 1023.122690100       0x4ae7f0852]   dbg_prepare: ep7in: trb
ffffffc019c959d0 (E158:D0) buf 00000000eab90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.122843954       0x4ae7f13dc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.123348329       0x4ae7f39b0]   dbg_ep_queue: ep7in: req
ffffff8051647800 length 0/65536 zsI ==> -115
[ 1023.123445985       0x4ae7f4103]   dbg_prepare: ep7in: trb
ffffffc019c959e0 (E159:D0) buf 00000000eaba0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.123606663       0x4ae7f4d10]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.137959163       0x4ae838181]   dbg_ep_queue: ep7in: req
ffffff8051646a00 length 0/65536 zsI ==> -115
[ 1023.138059788       0x4ae83890c]   dbg_prepare: ep7in: trb
ffffffc019c959f0 (E160:D0) buf 00000000eac90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.138204527       0x4ae8393e7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.138663694       0x4ae83b657]   dbg_ep_queue: ep7in: req
ffffff8051647500 length 0/65536 zsI ==> -115
[ 1023.138756298       0x4ae83bd49]   dbg_prepare: ep7in: trb
ffffffc019c95a00 (E161:D0) buf 00000000eaca0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.138899736       0x4ae83c80b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.139371454       0x4ae83eb6c]   dbg_ep_queue: ep7in: req
ffffff8051647e00 length 0/65536 zsI ==> -115
[ 1023.139462756       0x4ae83f245]   dbg_prepare: ep7in: trb
ffffffc019c95a10 (E162:D0) buf 00000000ea940000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.139610569       0x4ae83fd5b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.140145256       0x4ae842575]   dbg_ep_queue: ep7in: req
ffffff8051647300 length 0/65536 zsI ==> -115
[ 1023.140269944       0x4ae842ecf]   dbg_prepare: ep7in: trb
ffffffc019c95a20 (E163:D0) buf 00000000ef2b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.140431715       0x4ae843af1]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.141369996       0x4ae848150]   dbg_ep_queue: ep7in: req
ffffff8051646f00 length 0/65536 zsI ==> -115
[ 1023.141466454       0x4ae84888c]   dbg_prepare: ep7in: trb
ffffffc019c95a30 (E164:D0) buf 00000000ec930000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.141607079       0x4ae849318]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.142078121       0x4ae84b66c]   dbg_ep_queue: ep7in: req
ffffff8051646e00 length 0/65536 zsI ==> -115
[ 1023.142171715       0x4ae84bd71]   dbg_prepare: ep7in: trb
ffffffc019c95a40 (E165:D0) buf 00000000ec920000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.142316715       0x4ae84c851]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.142774892       0x4ae84eaaf]   dbg_ep_queue: ep7in: req
ffffff8051647900 length 0/65536 zsI ==> -115
[ 1023.142865465       0x4ae84f17a]   dbg_prepare: ep7in: trb
ffffffc019c95a50 (E166:D0) buf 00000000ead40000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.143010100       0x4ae84fc52]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.143476975       0x4ae851f56]   dbg_ep_queue: ep7in: req
ffffff8051646000 length 0/65536 zsI ==> -115
[ 1023.143568121       0x4ae85262c]   dbg_prepare: ep7in: trb
ffffffc019c95a60 (E167:D0) buf 00000000ead30000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.143707913       0x4ae8530a8]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.144168381       0x4ae855331]   dbg_ep_queue: ep7in: req
ffffff8051646300 length 0/65536 zsI ==> -115
[ 1023.144263746       0x4ae855a58]   dbg_prepare: ep7in: trb
ffffffc019c95a70 (E168:D0) buf 00000000ead20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.144428850       0x4ae8566ba]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.145168486       0x4ae859e33]   dbg_ep_queue: ep7in: req
ffffff8036be0500 length 0/65536 zsI ==> -115
[ 1023.145260361       0x4ae85a517]   dbg_prepare: ep7in: trb
ffffffc019c95a80 (E169:D0) buf 00000000ead10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.145404527       0x4ae85afe7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.145942496       0x4ae85d841]   dbg_ep_queue: ep7in: req
ffffff8036be0600 length 0/65536 zsI ==> -115
[ 1023.146044111       0x4ae85dfdf]   dbg_prepare: ep7in: trb
ffffffc019c95a90 (E170:D0) buf 00000000ead00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.146197288       0x4ae85eb5c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.146708121       0x4ae8611ac]   dbg_ep_queue: ep7in: req
ffffff8036be0d00 length 0/65536 zsI ==> -115
[ 1023.146819319       0x4ae861a03]   dbg_prepare: ep7in: trb
ffffffc019c95aa0 (E171:D0) buf 00000000eacf0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.146980361       0x4ae862617]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.147499267       0x4ae864d03]   dbg_ep_queue: ep7in: req
ffffff8036be0a00 length 0/65536 zsI ==> -115
[ 1023.147603486       0x4ae8654d3]   dbg_prepare: ep7in: trb
ffffffc019c95ab0 (E172:D0) buf 00000000e9f50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.147759371       0x4ae866084]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.156838069       0x4ae89096b]   dbg_ep_queue: ep7in: req
ffffff8034719f00 length 0/65536 zsI ==> -115
[ 1023.156954319       0x4ae891223]   dbg_prepare: ep7in: trb
ffffffc019c95ac0 (E173:D0) buf 00000000eb850000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.157118433       0x4ae891e72]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.157632756       0x4ae894505]   dbg_ep_queue: ep7in: req
ffffff8034719a00 length 0/65536 zsI ==> -115
[ 1023.157735829       0x4ae894cc0]   dbg_prepare: ep7in: trb
ffffffc019c95ad0 (E174:D0) buf 00000000eb860000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.158022288       0x4ae89623c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.158926871       0x4ae89a614]   dbg_ep_queue: ep7in: req
ffffff8034718d00 length 0/65536 zsI ==> -115
[ 1023.159103590       0x4ae89b355]   dbg_prepare: ep7in: trb
ffffffc019c95ae0 (E175:D0) buf 00000000eb870000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.159384163       0x4ae89c860]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.160989892       0x4ae8a40ce]   dbg_ep_queue: ep7in: req
ffffff8034718e00 length 0/65536 zsI ==> -115
[ 1023.161258694       0x4ae8a54f7]   dbg_prepare: ep7in: trb
ffffffc019c95af0 (E176:D0) buf 00000000ed3b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.161574111       0x4ae8a6c9f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.162484475       0x4ae8ab0e6]   dbg_ep_queue: ep7in: req
ffffff8034719000 length 0/65536 zsI ==> -115
[ 1023.162656663       0x4ae8abdd0]   dbg_prepare: ep7in: trb
ffffffc019c95b00 (E177:D0) buf 00000000ed2b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.162967861       0x4ae8ad527]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.163894631       0x4ae8b1aa9]   dbg_ep_queue: ep7in: req
ffffff8034718300 length 0/65536 zsI ==> -115
[ 1023.164088902       0x4ae8b293b]   dbg_prepare: ep7in: trb
ffffffc019c95b10 (E178:D0) buf 00000000ed2c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.164371767       0x4ae8b3e73]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.165915881       0x4ae8bb242]   dbg_ep_queue: ep7in: req
ffffff8034719d00 length 0/65536 zsI ==> -115
[ 1023.166052027       0x4ae8bbc77]   dbg_prepare: ep7in: trb
ffffffc019c95b20 (E179:D0) buf 00000000ed2d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.166231402       0x4ae8bc9eb]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.166856298       0x4ae8bf8c9]   dbg_ep_queue: ep7in: req
ffffff8034719100 length 0/65536 zsI ==> -115
[ 1023.167108225       0x4ae8c0baf]   dbg_prepare: ep7in: trb
ffffffc019c95b30 (E180:D0) buf 00000000ebec0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.167443381       0x4ae8c24d1]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.169139736       0x4ae8ca40b]   dbg_ep_queue: ep7in: req
ffffff8034719500 length 0/65536 zsI ==> -115
[ 1023.169304736       0x4ae8cb06b]   dbg_prepare: ep7in: trb
ffffffc019c95b40 (E181:D0) buf 00000000ebeb0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.169585934       0x4ae8cc582]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.170661715       0x4ae8d1631]   dbg_ep_queue: ep7in: req
ffffff8034718100 length 0/65536 zsI ==> -115
[ 1023.170886402       0x4ae8d270b]   dbg_prepare: ep7in: trb
ffffffc019c95b50 (E182:D0) buf 00000000ebea0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.171230725       0x4ae8d40df]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.172247184       0x4ae8d8d1b]   dbg_ep_queue: ep7in: req
ffffff8034719600 length 0/65536 zsI ==> -115
[ 1023.172469319       0x4ae8d9dc3]   dbg_prepare: ep7in: trb
ffffffc019c95b60 (E183:D0) buf 00000000ebe90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.172805569       0x4ae8db6fb]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.174974631       0x4ae8e59a9]   dbg_ep_queue: ep7in: req
ffffff803349b600 length 0/65536 zsI ==> -115
[ 1023.175190152       0x4ae8e69d3]   dbg_prepare: ep7in: trb
ffffffc019c95b70 (E184:D0) buf 00000000ebe80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.175539111       0x4ae8e83ff]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.188130882       0x4ae923461]   dbg_ep_queue: ep7in: req
ffffff803349b300 length 0/65536 zsI ==> -115
[ 1023.188321194       0x4ae9242a8]   dbg_prepare: ep7in: trb
ffffffc019c95b80 (E185:D0) buf 00000000ebe70000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.188658746       0x4ae925bf8]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.190428538       0x4ae92e0b4]   dbg_ep_queue: ep7in: req
ffffff803349b200 length 0/65536 zsI ==> -115
[ 1023.190614007       0x4ae92ee9d]   dbg_prepare: ep7in: trb
ffffffc019c95b90 (E186:D0) buf 00000000ebe60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.190940257       0x4ae930715]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.191989996       0x4ae9355d1]   dbg_ep_queue: ep7in: req
ffffff803349a100 length 0/65536 zsI ==> -115
[ 1023.192203954       0x4ae9365dc]   dbg_prepare: ep7in: trb
ffffffc019c95ba0 (E187:D0) buf 00000000ebe50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.192541819       0x4ae937f33]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.194312027       0x4ae9403f7]   dbg_ep_queue: ep7in: req
ffffff803349b000 length 0/65536 zsI ==> -115
[ 1023.194530569       0x4ae94145b]   dbg_prepare: ep7in: trb
ffffffc019c95bb0 (E188:D0) buf 00000000ebe40000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.194877079       0x4ae942e58]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.195929475       0x4ae947d47]   dbg_ep_queue: ep7in: req
ffffff803349ae00 length 0/65536 zsI ==> -115
[ 1023.196142184       0x4ae948d3a]   dbg_prepare: ep7in: trb
ffffffc019c95bc0 (E189:D0) buf 00000000ebe30000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.196469840       0x4ae94a5cd]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.198264319       0x4ae952c63]   dbg_ep_queue: ep7in: req
ffffff803349a000 length 0/65536 zsI ==> -115
[ 1023.198437600       0x4ae953962]   dbg_prepare: ep7in: trb
ffffffc019c95bd0 (E190:D0) buf 00000000ebe20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.198773850       0x4ae95529a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.199845361       0x4ae95a2f7]   dbg_ep_queue: ep7in: req
ffffff80415ef700 length 0/65536 zsI ==> -115
[ 1023.200060152       0x4ae95b313]   dbg_prepare: ep7in: trb
ffffffc019c95be0 (E191:D0) buf 00000000ebe10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.200404111       0x4ae95ccdf]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.202159163       0x4ae965080]   dbg_ep_queue: ep7in: req
ffffff80415ee000 length 0/65536 zsI ==> -115
[ 1023.202372340       0x4ae96607d]   dbg_prepare: ep7in: trb
ffffffc019c95bf0 (E192:D0) buf 00000000ebe00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.202710986       0x4ae9679e3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.203785465       0x4ae96ca79]   dbg_ep_queue: ep7in: req
ffffff80415ee500 length 0/65536 zsI ==> -115
[ 1023.204057548       0x4ae96dee1]   dbg_prepare: ep7in: trb
ffffffc019c95c00 (E193:D0) buf 00000000ebdf0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.204389163       0x4ae96f7c0]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.210107548       0x4ae98a4a1]   dbg_ep_queue: ep7in: req
ffffff80415ee800 length 0/65536 zsI ==> -115
[ 1023.210324892       0x4ae98b4ee]   dbg_prepare: ep7in: trb
ffffffc019c95c10 (E194:D0) buf 00000000ebde0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.210672600       0x4ae98cf02]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.211746819       0x4ae991f93]   dbg_ep_queue: ep7in: req
ffffff80415ef500 length 0/65536 zsI ==> -115
[ 1023.211959059       0x4ae992f7e]   dbg_prepare: ep7in: trb
ffffffc019c95c20 (E195:D0) buf 00000000ebdd0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.212289267       0x4ae994842]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.213948746       0x4ae99c4b8]   dbg_ep_queue: ep7in: req
ffffff885f1b3000 length 0/65536 zsI ==> -115
[ 1023.214117913       0x4ae99d168]   dbg_prepare: ep7in: trb
ffffffc019c95c30 (E196:D0) buf 00000000ebdc0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.214447392       0x4ae99ea1e]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.215538330       0x4ae9a3bf0]   dbg_ep_queue: ep7in: req
ffffff885f1b2200 length 0/65536 zsI ==> -115
[ 1023.215757392       0x4ae9a4c5e]   dbg_prepare: ep7in: trb
ffffffc019c95c40 (E197:D0) buf 00000000ebdb0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.216079996       0x4ae9a6490]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.217743850       0x4ae9ae15a]   dbg_ep_queue: ep7in: req
ffffff8035b0d900 length 0/65536 zsI ==> -115
[ 1023.217955413       0x4ae9af138]   dbg_prepare: ep7in: trb
ffffffc019c95c50 (E198:D0) buf 00000000ebda0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.218278850       0x4ae9b097a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.219367392       0x4ae9b5b1f]   dbg_ep_queue: ep7in: req
ffffff804123b200 length 0/65536 zsI ==> -115
[ 1023.219573590       0x4ae9b6a95]   dbg_prepare: ep7in: trb
ffffffc019c95c60 (E199:D0) buf 00000000ebd90000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.219904111       0x4ae9b835f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.221574632       0x4ae9c00a9]   dbg_ep_queue: ep7in: req
ffffff804123b300 length 0/65536 zsI ==> -115
[ 1023.221764892       0x4ae9c0eee]   dbg_prepare: ep7in: trb
ffffffc019c95c70 (E200:D0) buf 00000000ebd80000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.222103434       0x4ae9c2852]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.223237444       0x4ae9c7d5f]   dbg_ep_queue: ep7in: req
ffffff804123b400 length 0/65536 zsI ==> -115
[ 1023.223448225       0x4ae9c8d2e]   dbg_prepare: ep7in: trb
ffffffc019c95c80 (E201:D0) buf 00000000ebd70000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.223776507       0x4ae9ca5cd]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.225346298       0x4ae9d1b89]   dbg_ep_queue: ep7in: req
ffffff804123ba00 length 0/65536 zsI ==> -115
[ 1023.225529267       0x4ae9d2942]   dbg_prepare: ep7in: trb
ffffffc019c95c90 (E202:D0) buf 00000000ebd60000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.225852652       0x4ae9d4183]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.226903277       0x4ae9d904f]   dbg_ep_queue: ep7in: req
ffffff804123b700 length 0/65536 zsI ==> -115
[ 1023.227120152       0x4ae9da093]   dbg_prepare: ep7in: trb
ffffffc019c95ca0 (E203:D0) buf 00000000ebd50000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.227445257       0x4ae9db8f5]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.232581611       0x4ae9f3a2f]   dbg_ep_queue: ep7in: req
ffffff804123bc00 length 0/65536 zsI ==> -115
[ 1023.232691767       0x4ae9f4272]   dbg_prepare: ep7in: trb
ffffffc019c95cb0 (E204:D0) buf 00000000ebd40000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.232853850       0x4ae9f4e9a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.233267757       0x4ae9f6da5]   dbg_ep_queue: ep7in: req
ffffff804123a200 length 0/65536 zsI ==> -115
[ 1023.233348434       0x4ae9f73b2]   dbg_prepare: ep7in: trb
ffffffc019c95cc0 (E205:D0) buf 00000000ebd30000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.233476038       0x4ae9f7d44]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.233825309       0x4ae9f9776]   dbg_ep_queue: ep7in: req
ffffff804123bf00 length 0/65536 zsI ==> -115
[ 1023.233893017       0x4ae9f9c8a]   dbg_prepare: ep7in: trb
ffffffc019c95cd0 (E206:D0) buf 00000000ebd20000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.233999423       0x4ae9fa485]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.234321246       0x4ae9fbca8]   dbg_ep_queue: ep7in: req
ffffff804123af00 length 0/65536 zsI ==> -115
[ 1023.234386350       0x4ae9fc18a]   dbg_prepare: ep7in: trb
ffffffc019c95ce0 (E207:D0) buf 00000000ebd10000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.234495621       0x4ae9fc9bc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.234831507       0x4ae9fe2ed]   dbg_ep_queue: ep7in: req
ffffff8034115f00 length 0/65536 zsI ==> -115
[ 1023.234896350       0x4ae9fe7ca]   dbg_prepare: ep7in: trb
ffffffc019c95cf0 (E208:D0) buf 00000000ebd00000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.235002705       0x4ae9fefc4]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.235325830       0x4aea00800]   dbg_ep_queue: ep7in: req
ffffff8034115400 length 0/65536 zsI ==> -115
[ 1023.235391194       0x4aea00ce7]   dbg_prepare: ep7in: trb
ffffffc019c95d00 (E209:D0) buf 00000000ebcf0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.235497288       0x4aea014dc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.235823225       0x4aea02d4e]   dbg_ep_queue: ep7in: req
ffffff8034114500 length 0/65536 zsI ==> -115
[ 1023.235889996       0x4aea03250]   dbg_prepare: ep7in: trb
ffffffc019c95d10 (E210:D0) buf 00000000ebce0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.235993590       0x4aea03a15]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.236684892       0x4aea06dee]   dbg_ep_queue: ep7in: req
ffffff8034114600 length 0/65536 zsI ==> -115
[ 1023.236778694       0x4aea074f7]   dbg_prepare: ep7in: trb
ffffffc019c95d20 (E211:D0) buf 00000000ea5f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.236898434       0x4aea07df2]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.237396559       0x4aea0a34f]   dbg_ep_queue: ep7in: req
ffffff882ad06f00 length 0/65536 zsI ==> -115
[ 1023.237501298       0x4aea0ab29]   dbg_prepare: ep7in: trb
ffffffc019c95d30 (E212:D0) buf 00000000ea600000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.237657600       0x4aea0b6e2]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.238187392       0x4aea0de9e]   dbg_ep_queue: ep7in: req
ffffff882ad07b00 length 0/65536 zsI ==> -115
[ 1023.238289007       0x4aea0e63d]   dbg_prepare: ep7in: trb
ffffffc019c95d40 (E213:D0) buf 00000000ea610000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.238450934       0x4aea0f262]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.238958694       0x4aea11877]   dbg_ep_queue: ep7in: req
ffffff882ad07100 length 0/65536 zsI ==> -115
[ 1023.239060152       0x4aea12013]   dbg_prepare: ep7in: trb
ffffffc019c95d50 (E214:D0) buf 00000000ea620000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.239222548       0x4aea12c41]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.239743382       0x4aea15351]   dbg_ep_queue: ep7in: req
ffffff882ad07900 length 0/65536 zsI ==> -115
[ 1023.239845882       0x4aea15b01]   dbg_prepare: ep7in: trb
ffffffc019c95d60 (E215:D0) buf 00000000ea630000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.240004475       0x4aea166e6]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.240832705       0x4aea1a505]   dbg_ep_queue: ep7in: req
ffffff882ad07700 length 0/65536 zsI ==> -115
[ 1023.240938434       0x4aea1acf2]   dbg_prepare: ep7in: trb
ffffffc019c95d70 (E216:D0) buf 00000000ea640000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.241107600       0x4aea1b9a2]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.241623590       0x4aea1e055]   dbg_ep_queue: ep7in: req
ffffff882ad07400 length 0/65536 zsI ==> -115
[ 1023.241734371       0x4aea1e8a4]   dbg_prepare: ep7in: trb
ffffffc019c95d80 (E217:D0) buf 00000000ea650000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.241891038       0x4aea1f465]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.242396819       0x4aea21a53]   dbg_ep_queue: ep7in: req
ffffff80516af300 length 0/65536 zsI ==> -115
[ 1023.242505569       0x4aea2227b]   dbg_prepare: ep7in: trb
ffffffc019c95d90 (E218:D0) buf 00000000ea660000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.242664632       0x4aea22e69]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.243205205       0x4aea256f4]   dbg_ep_queue: ep7in: req
ffffff80516aee00 length 0/65536 zsI ==> -115
[ 1023.243306663       0x4aea25e90]   dbg_prepare: ep7in: trb
ffffffc019c95da0 (E219:D0) buf 00000000ea670000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.243465986       0x4aea26a84]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.243871038       0x4aea288e5]   dbg_ep_queue: ep7in: req
ffffff80516ae800 length 0/65536 zsI ==> -115
[ 1023.243956767       0x4aea28f52]   dbg_prepare: ep7in: trb
ffffffc019c95db0 (E220:D0) buf 00000000ea680000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.244104944       0x4aea29a6f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.244896455       0x4aea2d5cc]   dbg_ep_queue: ep7in: req
ffffff80516af200 length 0/65536 zsI ==> -115
[ 1023.244953590       0x4aea2da15]   dbg_prepare: ep7in: trb
ffffffc019c95dc0 (E221:D0) buf 00000000eb6f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.245065517       0x4aea2e27a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.245422444       0x4aea2fd3f]   dbg_ep_queue: ep7in: req
ffffff80516af400 length 0/65536 zsI ==> -115
[ 1023.245523903       0x4aea304db]   dbg_prepare: ep7in: trb
ffffffc019c95dd0 (E222:D0) buf 00000000eb6e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.245689267       0x4aea31142]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.246187496       0x4aea336a0]   dbg_ep_queue: ep7in: req
ffffff80516ae500 length 0/65536 zsI ==> -115
[ 1023.246288330       0x4aea33e30]   dbg_prepare: ep7in: trb
ffffffc019c95de0 (E223:D0) buf 00000000eb6d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.246424319       0x4aea34863]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.246923278       0x4aea36dcf]   dbg_ep_queue: ep7in: req
ffffff80516ae700 length 0/65536 zsI ==> -115
[ 1023.247020257       0x4aea37515]   dbg_prepare: ep7in: trb
ffffffc019c95df0 (E224:D0) buf 00000000eb6c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.247177600       0x4aea380e2]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.247662653       0x4aea3a543]   dbg_ep_queue: ep7in: req
ffffff80412cad00 length 0/65536 zsI ==> -115
[ 1023.247757913       0x4aea3ac68]   dbg_prepare: ep7in: trb
ffffffc019c95e00 (E225:D0) buf 00000000eb6b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.247914944       0x4aea3b82f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.248863746       0x4aea3ff58]   dbg_ep_queue: ep7in: req
ffffff80412cb300 length 0/65536 zsI ==> -115
[ 1023.248952913       0x4aea40608]   dbg_prepare: ep7in: trb
ffffffc019c95e10 (E226:D0) buf 00000000eb6a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.249104840       0x4aea4116d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.249609007       0x4aea4373d]   dbg_ep_queue: ep7in: req
ffffff80412ca700 length 0/65536 zsI ==> -115
[ 1023.249715934       0x4aea43f42]   dbg_prepare: ep7in: trb
ffffffc019c95e20 (E227:D0) buf 00000000eb690000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.249872444       0x4aea44aff]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.250365725       0x4aea46ffe]   dbg_ep_queue: ep7in: req
ffffff80412cb900 length 0/65536 zsI ==> -115
[ 1023.250480725       0x4aea4789e]   dbg_prepare: ep7in: trb
ffffffc019c95e30 (E228:D0) buf 00000000eb680000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.250644319       0x4aea484e3]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.254240153       0x4aea59293]   dbg_ep_queue: ep7in: req
ffffff8036be7f00 length 0/65536 zsI ==> -115
[ 1023.254346038       0x4aea59a84]   dbg_prepare: ep7in: trb
ffffffc019c95e40 (E229:D0) buf 00000000eb670000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.254505830       0x4aea5a680]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.255009475       0x4aea5cc46]   dbg_ep_queue: ep7in: req
ffffff8036be7400 length 0/65536 zsI ==> -115
[ 1023.255116611       0x4aea5d44f]   dbg_prepare: ep7in: trb
ffffffc019c95e50 (E230:D0) buf 00000000eb660000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.255273642       0x4aea5e016]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.255823850       0x4aea6095a]   dbg_ep_queue: ep7in: req
ffffff8036be7100 length 0/65536 zsI ==> -115
[ 1023.255922965       0x4aea610c9]   dbg_prepare: ep7in: trb
ffffffc019c95e60 (E231:D0) buf 00000000eb650000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.256092809       0x4aea61d86]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.256945309       0x4aea65d76]   dbg_ep_queue: ep7in: req
ffffff8036be6200 length 0/65536 zsI ==> -115
[ 1023.257050048       0x4aea66551]   dbg_prepare: ep7in: trb
ffffffc019c95e70 (E232:D0) buf 00000000eb640000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.257209475       0x4aea67147]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.257722080       0x4aea697b8]   dbg_ep_queue: ep7in: req
ffffff8036be7000 length 0/65536 zsI ==> -115
[ 1023.257825361       0x4aea69f77]   dbg_prepare: ep7in: trb
ffffffc019c95e80 (E233:D0) buf 00000000eb630000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.257986923       0x4aea6ab95]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.258489163       0x4aea6d141]   dbg_ep_queue: ep7in: req
ffffff8036be6400 length 0/65536 zsI ==> -115
[ 1023.258592757       0x4aea6d905]   dbg_prepare: ep7in: trb
ffffffc019c95e90 (E234:D0) buf 00000000eb620000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.258753694       0x4aea6e517]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.259256715       0x4aea70ad1]   dbg_ep_queue: ep7in: req
ffffff8036be7b00 length 0/65536 zsI ==> -115
[ 1023.259360830       0x4aea712a0]   dbg_prepare: ep7in: trb
ffffffc019c95ea0 (E235:D0) buf 00000000eb610000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.259522965       0x4aea71ec9]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.260022236       0x4aea7443b]   dbg_ep_queue: ep7in: req
ffffff8036be7200 length 0/65536 zsI ==> -115
[ 1023.260129684       0x4aea74c4a]   dbg_prepare: ep7in: trb
ffffffc019c95eb0 (E236:D0) buf 00000000eb600000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.260286403       0x4aea7580b]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.260969059       0x4aea78b3e]   dbg_ep_queue: ep7in: req
ffffff8036be7300 length 0/65536 zsI ==> -115
[ 1023.261049423       0x4aea79145]   dbg_prepare: ep7in: trb
ffffffc019c95ec0 (E237:D0) buf 00000000eb5f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.261182444       0x4aea79b3f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.266982496       0x4aea94e41]   dbg_ep_queue: ep7in: req
ffffff8036be7700 length 0/65536 zsI ==> -115
[ 1023.267087809       0x4aea95626]   dbg_prepare: ep7in: trb
ffffffc019c95ed0 (E238:D0) buf 00000000eb5e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.267248121       0x4aea9622c]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.267766350       0x4aea9890a]   dbg_ep_queue: ep7in: req
ffffff87a230a800 length 0/65536 zsI ==> -115
[ 1023.267865465       0x4aea9907a]   dbg_prepare: ep7in: trb
ffffffc019c95ee0 (E239:D0) buf 00000000eb5d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.268021298       0x4aea99c29]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.268850413       0x4aea9da58]   dbg_ep_queue: ep7in: req
ffffff87a230bf00 length 0/65536 zsI ==> -115
[ 1023.268931976       0x4aea9e076]   dbg_prepare: ep7in: trb
ffffffc019c95ef0 (E240:D0) buf 00000000eb5c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.269074267       0x4aea9eb23]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.269570621       0x4aeaa105c]   dbg_ep_queue: ep7in: req
ffffff87a230b800 length 0/65536 zsI ==> -115
[ 1023.269678226       0x4aeaa186e]   dbg_prepare: ep7in: trb
ffffffc019c95f00 (E241:D0) buf 00000000eb5b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.269827965       0x4aeaa23aa]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.270329007       0x4aeaa493d]   dbg_ep_queue: ep7in: req
ffffff87a230a500 length 0/65536 zsI ==> -115
[ 1023.270436246       0x4aeaa5148]   dbg_prepare: ep7in: trb
ffffffc019c95f10 (E242:D0) buf 00000000eb5a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.270594007       0x4aeaa5d1d]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.271095726       0x4aeaa82be]   dbg_ep_queue: ep7in: req
ffffff87a230ad00 length 0/65536 zsI ==> -115
[ 1023.271196976       0x4aeaa8a56]   dbg_prepare: ep7in: trb
ffffffc019c95f20 (E243:D0) buf 00000000eb590000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.271341142       0x4aeaa9526]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.271835153       0x4aeaaba33]   dbg_ep_queue: ep7in: req
ffffff87a230b400 length 0/65536 zsI ==> -115
[ 1023.271927392       0x4aeaac11e]   dbg_prepare: ep7in: trb
ffffffc019c95f30 (E244:D0) buf 00000000eb580000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.272069788       0x4aeaacbcc]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.272873903       0x4aeab081b]   dbg_ep_queue: ep7in: req
ffffff87a230b500 length 0/65536 zsI ==> -115
[ 1023.272967080       0x4aeab0f18]   dbg_prepare: ep7in: trb
ffffffc019c95f40 (E245:D0) buf 00000000eb570000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.273120048       0x4aeab1a91]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.273599476       0x4aeab3e86]   dbg_ep_queue: ep7in: req
ffffff87a230a900 length 0/65536 zsI ==> -115
[ 1023.273693434       0x4aeab4592]   dbg_prepare: ep7in: trb
ffffffc019c95f50 (E246:D0) buf 00000000eb560000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.273837496       0x4aeab5060]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.274332653       0x4aeab7583]   dbg_ep_queue: ep7in: req
ffffff87a230ba00 length 0/65536 zsI ==> -115
[ 1023.274429319       0x4aeab7cc3]   dbg_prepare: ep7in: trb
ffffffc019c95f60 (E247:D0) buf 00000000eb200000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.274575205       0x4aeab87b4]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.275036298       0x4aeabaa49]   dbg_ep_queue: ep7in: req
ffffff87a230a700 length 0/65536 zsI ==> -115
[ 1023.275136194       0x4aeabb1c7]   dbg_prepare: ep7in: trb
ffffffc019c95f70 (E248:D0) buf 00000000eb1f0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.275283694       0x4aeabbcd7]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.275765153       0x4aeabe0f3]   dbg_ep_queue: ep7in: req
ffffff87a230b100 length 0/65536 zsI ==> -115
[ 1023.275870934       0x4aeabe8e2]   dbg_prepare: ep7in: trb
ffffffc019c95f80 (E249:D0) buf 00000000eb1e0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.276023851       0x4aeabf45a]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.278351246       0x4aeaca2e8]   dbg_ep_queue: ep7in: req
ffffff87a230b700 length 0/65536 zsI ==> -115
[ 1023.278454111       0x4aeacaa9f]   dbg_prepare: ep7in: trb
ffffffc019c95f90 (E250:D0) buf 00000000eb1d0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.278606090       0x4aeacb605]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.279121611       0x4aeacdcaf]   dbg_ep_queue: ep7in: req
ffffff87a230b200 length 0/65536 zsI ==> -115
[ 1023.279218278       0x4aeace3ef]   dbg_prepare: ep7in: trb
ffffffc019c95fa0 (E251:D0) buf 00000000eb1c0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.279350465       0x4aeacedd9]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.279762913       0x4aead0cc8]   dbg_ep_queue: ep7in: req
ffffff87a230ab00 length 0/65536 zsI ==> -115
[ 1023.279846246       0x4aead1308]   dbg_prepare: ep7in: trb
ffffffc019c95fb0 (E252:D0) buf 00000000eb1b0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.279981715       0x4aead1d31]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.280774111       0x4aead589f]   dbg_ep_queue: ep7in: req
ffffff87a230bd00 length 0/65536 zsI ==> -115
[ 1023.280875153       0x4aead6033]   dbg_prepare: ep7in: trb
ffffffc019c95fc0 (E253:D0) buf 00000000eb1a0000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.281033278       0x4aead6c0f]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.281477028       0x4aead8d57]   dbg_ep_queue: ep7in: req
ffffff87a230aa00 length 0/65536 zsI ==> -115
[ 1023.281561090       0x4aead93a5]   dbg_prepare: ep7in: trb
ffffffc019c95fd0 (E254:D0) buf 00000000eb190000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.281692132       0x4aead9d79]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.282070101       0x4aeadb9d2]   dbg_ep_queue: ep7in: req
ffffff87a230ac00 length 0/65536 zsI ==> -115
[ 1023.282154892       0x4aeadc02e]   dbg_prepare: ep7in: trb
ffffffc019c95fe0 (E0:D0) buf 00000000ec420000 size 65536 ctrl 00000811
(Hlcs:sC:normal)
[ 1023.282282809       0x4aeadc9c6]   dbg_send_ep_cmd: ep7in: cmd
'Update Transfer' [f0007] params 00000000 00000000 00000000 --> status:
Successful
[ 1023.462871351       0x4aee2b1f1]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1023.463591559       0x4aee2e7f0]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1023.464325726       0x4aee31f00]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1023.475501716       0x4aee66532]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.486669997       0x4aee9aad0]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1023.487402185       0x4aee9e1bb]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1023.488117497       0x4aeea1761]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.900745884       0x4af62fa82]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1023.900949530       0x4af6309c7]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1023.901353280       0x4af632810]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1023.903403800       0x4af63c1da]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1023.912550050       0x4af666fd2]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1023.912934738       0x4af668cab]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1023.913361561       0x4af66acae]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1024.336480573       0x4afe2a29b]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1024.336855573       0x4afe2bebc]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1024.337264531       0x4afe2dd68]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1024.351910156       0x4afe727d4]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1024.363139896       0x4afea720f]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1024.363898281       0x4afeaaaf0]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1024.364734010       0x4afeae99e]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1024.776173803       0x4b063739a]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1024.776907188       0x4b063aa9b]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1024.777646147       0x4b063e208]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1024.788641980       0x4b0671ab8]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1024.799682397       0x4b06a56bf]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1024.800442605       0x4b06a8fc3]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1024.801184584       0x4b06ac769]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1025.222173752       0x4b0e61d99]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1025.222991669       0x4b0e65af1]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1025.223850731       0x4b0e69b5f]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1025.239023492       0x4b0eb0d54]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1025.248963179       0x4b0edf6ce]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1025.249709846       0x4b0ee2ecd]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1025.250533440       0x4b0ee6c93]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1025.667084535       0x4b16875e7]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1025.667827764       0x4b168ada6]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1025.668635993       0x4b168ea44]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1025.674777764       0x4b16ab6e7]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1025.684733597       0x4b16da197]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep4in)
[ 1025.685336150       0x4b16dcec7]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1025.686112608       0x4b16e0904]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
Successful
[ 1025.698842347       0x4b171c3bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
Stall' [404] params 00000000 00000000 00000000 --> status: Successful
[ 1026.444051569       0x4b24c1670]   dbg_send_ep_cmd: ep0out: cmd
'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: No
Resource
[ 1027.225705425       0x4b3311678]   dbg_trace_log_ctrl: Clear Endpoint
Feature(Halt ep5in)
[ 1027.225820165       0x4b3311f14]   dbg_send_ep_cmd: ep5in: cmd 'Clear
Stall' [405] params 00000000 00000000 00000000 --> status: Successful
[ 1027.225931467       0x4b331276c]   dbg_send_ep_cmd: ep0in: cmd 'Start
Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 1027.234311467       0x4b3339bed]   dbg_ep_dequeue: ep7in: req
ffffff87f99b8f00 length 0/61696 zsI ==> -115
[ 1027.247409123       0x4b337723f]   dbg_send_ep_cmd: ep7in: cmd 'End
Transfer' [f0d08] params 00000000 00000000 00000000 --> status: Timed Out
Thinh Nguyen Feb. 25, 2022, 1:26 a.m. UTC | #14
Hi Wesley,

Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/22/2022 6:59 PM, Thinh Nguyen wrote:
>> Hi Wesley,
>>

<snip>

>>
>> Can you provide a full trace?
>>
> Sorry for doing this, but we didn't have a way to share the file
> directly, so I have to paste the trace below. :/
> 
>> Btw, when you experiment with increasing the timeout to 10 seconds, did
>> you use the mdelay() in each loop? The delta time for End Transfer
>> timeout here seems very small.
>>
> This particular run did not modify the timeout for the cmd status polling.
> 
> Is that something that you want to try?  Not pertaining to this dequeue
> situation, during the pullup disable path debug, I noticed that as long
> as there was a pending EP0 SETUP packet (not data/status) cached in the
> controller, it would also have endxfer timeouts on non-control EPs.  We
> were able to capture a bus sniffer log + ftrace, and it showed that at
> the point of the error, the lecroy/bus log saw a SETUP token ACK'ed,
> while on the ftrace, there were endxfer timeouts for all non-control EPs
> (due to the dwc3_gadget_stop_active_transfers() call)
> 
> Thanks
> Wesley
> 
> TRACE
> ---------------------------------------------------------------------
> 

<snip>

> [ 1023.912550050       0x4af666fd2]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep4in)
> [ 1023.912934738       0x4af668cab]   dbg_send_ep_cmd: ep0out: cmd 'Set
> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
> [ 1023.913361561       0x4af66acae]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1024.336480573       0x4afe2a29b]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep5in)
> [ 1024.336855573       0x4afe2bebc]   dbg_send_ep_cmd: ep5in: cmd 'Clear
> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
> [ 1024.337264531       0x4afe2dd68]   dbg_send_ep_cmd: ep0in: cmd 'Start
> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 1024.351910156       0x4afe727d4]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1024.363139896       0x4afea720f]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep4in)
> [ 1024.363898281       0x4afeaaaf0]   dbg_send_ep_cmd: ep0out: cmd 'Set
> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
> [ 1024.364734010       0x4afeae99e]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1024.776173803       0x4b063739a]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep5in)
> [ 1024.776907188       0x4b063aa9b]   dbg_send_ep_cmd: ep5in: cmd 'Clear
> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
> [ 1024.777646147       0x4b063e208]   dbg_send_ep_cmd: ep0in: cmd 'Start
> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 1024.788641980       0x4b0671ab8]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1024.799682397       0x4b06a56bf]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep4in)
> [ 1024.800442605       0x4b06a8fc3]   dbg_send_ep_cmd: ep0out: cmd 'Set
> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
> [ 1024.801184584       0x4b06ac769]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1025.222173752       0x4b0e61d99]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep5in)
> [ 1025.222991669       0x4b0e65af1]   dbg_send_ep_cmd: ep5in: cmd 'Clear
> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
> [ 1025.223850731       0x4b0e69b5f]   dbg_send_ep_cmd: ep0in: cmd 'Start
> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 1025.239023492       0x4b0eb0d54]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1025.248963179       0x4b0edf6ce]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep4in)
> [ 1025.249709846       0x4b0ee2ecd]   dbg_send_ep_cmd: ep0out: cmd 'Set
> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
> [ 1025.250533440       0x4b0ee6c93]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1025.667084535       0x4b16875e7]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep5in)
> [ 1025.667827764       0x4b168ada6]   dbg_send_ep_cmd: ep5in: cmd 'Clear
> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
> [ 1025.668635993       0x4b168ea44]   dbg_send_ep_cmd: ep0in: cmd 'Start
> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 1025.674777764       0x4b16ab6e7]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1025.684733597       0x4b16da197]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep4in)
> [ 1025.685336150       0x4b16dcec7]   dbg_send_ep_cmd: ep0out: cmd 'Set
> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
> [ 1025.686112608       0x4b16e0904]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
> Successful
> [ 1025.698842347       0x4b171c3bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
> [ 1026.444051569       0x4b24c1670]   dbg_send_ep_cmd: ep0out: cmd
> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: No
> Resource

Why did this fail with No Resource? Was it sent before the control TRB
completion?

> [ 1027.225705425       0x4b3311678]   dbg_trace_log_ctrl: Clear Endpoint
> Feature(Halt ep5in)
> [ 1027.225820165       0x4b3311f14]   dbg_send_ep_cmd: ep5in: cmd 'Clear
> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
> [ 1027.225931467       0x4b331276c]   dbg_send_ep_cmd: ep0in: cmd 'Start
> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 1027.234311467       0x4b3339bed]   dbg_ep_dequeue: ep7in: req
> ffffff87f99b8f00 length 0/61696 zsI ==> -115
> [ 1027.247409123       0x4b337723f]   dbg_send_ep_cmd: ep7in: cmd 'End
> Transfer' [f0d08] params 00000000 00000000 00000000 --> status: Timed Out
> 

If the Start Transfer for ep0 failed and the Setup packet can't be
DMA'ed out, the End Transfer may not go through.

Can you leave the log unfiltered and is it possible to send as
attachment? It's missing some important info in this log.

Thanks,
Thinh
Wesley Cheng Feb. 25, 2022, 1:31 a.m. UTC | #15
Hi Thinh,

On 2/24/2022 5:26 PM, Thinh Nguyen wrote:
> Hi Wesley,
> 
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 2/22/2022 6:59 PM, Thinh Nguyen wrote:
>>> Hi Wesley,
>>>
> 
> <snip>
> 
>>>
>>> Can you provide a full trace?
>>>
>> Sorry for doing this, but we didn't have a way to share the file
>> directly, so I have to paste the trace below. :/
>>
>>> Btw, when you experiment with increasing the timeout to 10 seconds, did
>>> you use the mdelay() in each loop? The delta time for End Transfer
>>> timeout here seems very small.
>>>
>> This particular run did not modify the timeout for the cmd status polling.
>>
>> Is that something that you want to try?  Not pertaining to this dequeue
>> situation, during the pullup disable path debug, I noticed that as long
>> as there was a pending EP0 SETUP packet (not data/status) cached in the
>> controller, it would also have endxfer timeouts on non-control EPs.  We
>> were able to capture a bus sniffer log + ftrace, and it showed that at
>> the point of the error, the lecroy/bus log saw a SETUP token ACK'ed,
>> while on the ftrace, there were endxfer timeouts for all non-control EPs
>> (due to the dwc3_gadget_stop_active_transfers() call)
>>
>> Thanks
>> Wesley
>>
>> TRACE
>> ---------------------------------------------------------------------
>>
> 
> <snip>
> 
>> [ 1023.912550050       0x4af666fd2]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep4in)
>> [ 1023.912934738       0x4af668cab]   dbg_send_ep_cmd: ep0out: cmd 'Set
>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>> [ 1023.913361561       0x4af66acae]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1024.336480573       0x4afe2a29b]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep5in)
>> [ 1024.336855573       0x4afe2bebc]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>> [ 1024.337264531       0x4afe2dd68]   dbg_send_ep_cmd: ep0in: cmd 'Start
>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 1024.351910156       0x4afe727d4]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1024.363139896       0x4afea720f]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep4in)
>> [ 1024.363898281       0x4afeaaaf0]   dbg_send_ep_cmd: ep0out: cmd 'Set
>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>> [ 1024.364734010       0x4afeae99e]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1024.776173803       0x4b063739a]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep5in)
>> [ 1024.776907188       0x4b063aa9b]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>> [ 1024.777646147       0x4b063e208]   dbg_send_ep_cmd: ep0in: cmd 'Start
>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 1024.788641980       0x4b0671ab8]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1024.799682397       0x4b06a56bf]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep4in)
>> [ 1024.800442605       0x4b06a8fc3]   dbg_send_ep_cmd: ep0out: cmd 'Set
>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>> [ 1024.801184584       0x4b06ac769]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1025.222173752       0x4b0e61d99]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep5in)
>> [ 1025.222991669       0x4b0e65af1]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>> [ 1025.223850731       0x4b0e69b5f]   dbg_send_ep_cmd: ep0in: cmd 'Start
>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 1025.239023492       0x4b0eb0d54]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1025.248963179       0x4b0edf6ce]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep4in)
>> [ 1025.249709846       0x4b0ee2ecd]   dbg_send_ep_cmd: ep0out: cmd 'Set
>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>> [ 1025.250533440       0x4b0ee6c93]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1025.667084535       0x4b16875e7]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep5in)
>> [ 1025.667827764       0x4b168ada6]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>> [ 1025.668635993       0x4b168ea44]   dbg_send_ep_cmd: ep0in: cmd 'Start
>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 1025.674777764       0x4b16ab6e7]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1025.684733597       0x4b16da197]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep4in)
>> [ 1025.685336150       0x4b16dcec7]   dbg_send_ep_cmd: ep0out: cmd 'Set
>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>> [ 1025.686112608       0x4b16e0904]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>> Successful
>> [ 1025.698842347       0x4b171c3bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>> [ 1026.444051569       0x4b24c1670]   dbg_send_ep_cmd: ep0out: cmd
>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: No
>> Resource
> 
> Why did this fail with No Resource? Was it sent before the control TRB
> completion?
> 
>> [ 1027.225705425       0x4b3311678]   dbg_trace_log_ctrl: Clear Endpoint
>> Feature(Halt ep5in)
>> [ 1027.225820165       0x4b3311f14]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>> [ 1027.225931467       0x4b331276c]   dbg_send_ep_cmd: ep0in: cmd 'Start
>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 1027.234311467       0x4b3339bed]   dbg_ep_dequeue: ep7in: req
>> ffffff87f99b8f00 length 0/61696 zsI ==> -115
>> [ 1027.247409123       0x4b337723f]   dbg_send_ep_cmd: ep7in: cmd 'End
>> Transfer' [f0d08] params 00000000 00000000 00000000 --> status: Timed Out
>>
> 
> If the Start Transfer for ep0 failed and the Setup packet can't be
> DMA'ed out, the End Transfer may not go through.
> 
> Can you leave the log unfiltered and is it possible to send as
> attachment? It's missing some important info in this log.
> 
Are there any specific logs you were looking for?
trace_dwc3_event
trace_dwc3_prepare_trb

Part of reproducing this issue will not allow me to enable tracing, so I
have to make changes in our driver to reroute the logs elsewhere.  So
far I've added changes to do:
	trace_dwc3_ctrl_req
	trace_dwc3_ep_queue
	trace_dwc3_ep_dequeue
	trace_dwc3_gadget_giveback
	trace_dwc3_gadget_ep_cmd

I can add the above 2 tracepoints as well, but wondering if you needed
anything else.

Thanks
Wesley Cheng
Thinh Nguyen Feb. 25, 2022, 1:44 a.m. UTC | #16
Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/24/2022 5:26 PM, Thinh Nguyen wrote:
>> Hi Wesley,
>>
>> Wesley Cheng wrote:
>>> Hi Thinh,
>>>
>>> On 2/22/2022 6:59 PM, Thinh Nguyen wrote:
>>>> Hi Wesley,
>>>>
>>
>> <snip>
>>
>>>>
>>>> Can you provide a full trace?
>>>>
>>> Sorry for doing this, but we didn't have a way to share the file
>>> directly, so I have to paste the trace below. :/
>>>
>>>> Btw, when you experiment with increasing the timeout to 10 seconds, did
>>>> you use the mdelay() in each loop? The delta time for End Transfer
>>>> timeout here seems very small.
>>>>
>>> This particular run did not modify the timeout for the cmd status polling.
>>>
>>> Is that something that you want to try?  Not pertaining to this dequeue
>>> situation, during the pullup disable path debug, I noticed that as long
>>> as there was a pending EP0 SETUP packet (not data/status) cached in the
>>> controller, it would also have endxfer timeouts on non-control EPs.  We
>>> were able to capture a bus sniffer log + ftrace, and it showed that at
>>> the point of the error, the lecroy/bus log saw a SETUP token ACK'ed,
>>> while on the ftrace, there were endxfer timeouts for all non-control EPs
>>> (due to the dwc3_gadget_stop_active_transfers() call)
>>>
>>> Thanks
>>> Wesley
>>>
>>> TRACE
>>> ---------------------------------------------------------------------
>>>
>>
>> <snip>
>>
>>> [ 1023.912550050       0x4af666fd2]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep4in)
>>> [ 1023.912934738       0x4af668cab]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1023.913361561       0x4af66acae]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1024.336480573       0x4afe2a29b]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep5in)
>>> [ 1024.336855573       0x4afe2bebc]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1024.337264531       0x4afe2dd68]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>> [ 1024.351910156       0x4afe727d4]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1024.363139896       0x4afea720f]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep4in)
>>> [ 1024.363898281       0x4afeaaaf0]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1024.364734010       0x4afeae99e]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1024.776173803       0x4b063739a]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep5in)
>>> [ 1024.776907188       0x4b063aa9b]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1024.777646147       0x4b063e208]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>> [ 1024.788641980       0x4b0671ab8]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1024.799682397       0x4b06a56bf]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep4in)
>>> [ 1024.800442605       0x4b06a8fc3]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1024.801184584       0x4b06ac769]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1025.222173752       0x4b0e61d99]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep5in)
>>> [ 1025.222991669       0x4b0e65af1]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1025.223850731       0x4b0e69b5f]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>> [ 1025.239023492       0x4b0eb0d54]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1025.248963179       0x4b0edf6ce]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep4in)
>>> [ 1025.249709846       0x4b0ee2ecd]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1025.250533440       0x4b0ee6c93]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1025.667084535       0x4b16875e7]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep5in)
>>> [ 1025.667827764       0x4b168ada6]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1025.668635993       0x4b168ea44]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>> [ 1025.674777764       0x4b16ab6e7]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1025.684733597       0x4b16da197]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep4in)
>>> [ 1025.685336150       0x4b16dcec7]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1025.686112608       0x4b16e0904]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>> Successful
>>> [ 1025.698842347       0x4b171c3bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1026.444051569       0x4b24c1670]   dbg_send_ep_cmd: ep0out: cmd
>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: No
>>> Resource
>>
>> Why did this fail with No Resource? Was it sent before the control TRB
>> completion?
>>
>>> [ 1027.225705425       0x4b3311678]   dbg_trace_log_ctrl: Clear Endpoint
>>> Feature(Halt ep5in)
>>> [ 1027.225820165       0x4b3311f14]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>> [ 1027.225931467       0x4b331276c]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>> [ 1027.234311467       0x4b3339bed]   dbg_ep_dequeue: ep7in: req
>>> ffffff87f99b8f00 length 0/61696 zsI ==> -115
>>> [ 1027.247409123       0x4b337723f]   dbg_send_ep_cmd: ep7in: cmd 'End
>>> Transfer' [f0d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>
>>
>> If the Start Transfer for ep0 failed and the Setup packet can't be
>> DMA'ed out, the End Transfer may not go through.
>>
>> Can you leave the log unfiltered and is it possible to send as
>> attachment? It's missing some important info in this log.
>>
> Are there any specific logs you were looking for?
> trace_dwc3_event
> trace_dwc3_prepare_trb
> 
> Part of reproducing this issue will not allow me to enable tracing, so I
> have to make changes in our driver to reroute the logs elsewhere.  So
> far I've added changes to do:
> 	trace_dwc3_ctrl_req
> 	trace_dwc3_ep_queue
> 	trace_dwc3_ep_dequeue
> 	trace_dwc3_gadget_giveback
> 	trace_dwc3_gadget_ep_cmd
> 
> I can add the above 2 tracepoints as well, but wondering if you needed
> anything else.
> 

If possible, please have these in addition to the above.

trace_dwc3_event
trace_dwc3_complete_trb

Thanks,
Thinh
Thinh Nguyen March 1, 2022, 1:09 a.m. UTC | #17
Hi Wesley,

Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/24/2022 5:44 PM, Thinh Nguyen wrote:
>> Wesley Cheng wrote:
>>> Hi Thinh,
>>>
>>> On 2/24/2022 5:26 PM, Thinh Nguyen wrote:
>>>> Hi Wesley,
>>>>
>>>> Wesley Cheng wrote:
>>>>> Hi Thinh,
>>>>>
>>>>> On 2/22/2022 6:59 PM, Thinh Nguyen wrote:
>>>>>> Hi Wesley,
>>>>>>
>>>>
>>>> <snip>
>>>>
>>>>>>
>>>>>> Can you provide a full trace?
>>>>>>
>>>>> Sorry for doing this, but we didn't have a way to share the file
>>>>> directly, so I have to paste the trace below. :/
>>>>>
>>>>>> Btw, when you experiment with increasing the timeout to 10 seconds, did
>>>>>> you use the mdelay() in each loop? The delta time for End Transfer
>>>>>> timeout here seems very small.
>>>>>>
>>>>> This particular run did not modify the timeout for the cmd status polling.
>>>>>
>>>>> Is that something that you want to try?  Not pertaining to this dequeue
>>>>> situation, during the pullup disable path debug, I noticed that as long
>>>>> as there was a pending EP0 SETUP packet (not data/status) cached in the
>>>>> controller, it would also have endxfer timeouts on non-control EPs.  We
>>>>> were able to capture a bus sniffer log + ftrace, and it showed that at
>>>>> the point of the error, the lecroy/bus log saw a SETUP token ACK'ed,
>>>>> while on the ftrace, there were endxfer timeouts for all non-control EPs
>>>>> (due to the dwc3_gadget_stop_active_transfers() call)
>>>>>
>>>>> Thanks
>>>>> Wesley
>>>>>
>>>>> TRACE
>>>>> ---------------------------------------------------------------------
>>>>>
>>>>
>>>> <snip>
>>>>
>>>>> [ 1023.912550050       0x4af666fd2]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep4in)
>>>>> [ 1023.912934738       0x4af668cab]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1023.913361561       0x4af66acae]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1024.336480573       0x4afe2a29b]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep5in)
>>>>> [ 1024.336855573       0x4afe2bebc]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1024.337264531       0x4afe2dd68]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>> [ 1024.351910156       0x4afe727d4]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1024.363139896       0x4afea720f]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep4in)
>>>>> [ 1024.363898281       0x4afeaaaf0]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1024.364734010       0x4afeae99e]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1024.776173803       0x4b063739a]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep5in)
>>>>> [ 1024.776907188       0x4b063aa9b]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1024.777646147       0x4b063e208]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>> [ 1024.788641980       0x4b0671ab8]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1024.799682397       0x4b06a56bf]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep4in)
>>>>> [ 1024.800442605       0x4b06a8fc3]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1024.801184584       0x4b06ac769]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1025.222173752       0x4b0e61d99]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep5in)
>>>>> [ 1025.222991669       0x4b0e65af1]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1025.223850731       0x4b0e69b5f]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>> [ 1025.239023492       0x4b0eb0d54]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1025.248963179       0x4b0edf6ce]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep4in)
>>>>> [ 1025.249709846       0x4b0ee2ecd]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1025.250533440       0x4b0ee6c93]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1025.667084535       0x4b16875e7]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep5in)
>>>>> [ 1025.667827764       0x4b168ada6]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1025.668635993       0x4b168ea44]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>> [ 1025.674777764       0x4b16ab6e7]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1025.684733597       0x4b16da197]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep4in)
>>>>> [ 1025.685336150       0x4b16dcec7]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1025.686112608       0x4b16e0904]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>> Successful
>>>>> [ 1025.698842347       0x4b171c3bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1026.444051569       0x4b24c1670]   dbg_send_ep_cmd: ep0out: cmd
>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: No
>>>>> Resource
>>>>
>>>> Why did this fail with No Resource? Was it sent before the control TRB
>>>> completion?
>>>>
>>>>> [ 1027.225705425       0x4b3311678]   dbg_trace_log_ctrl: Clear Endpoint
>>>>> Feature(Halt ep5in)
>>>>> [ 1027.225820165       0x4b3311f14]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 1027.225931467       0x4b331276c]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>> [ 1027.234311467       0x4b3339bed]   dbg_ep_dequeue: ep7in: req
>>>>> ffffff87f99b8f00 length 0/61696 zsI ==> -115
>>>>> [ 1027.247409123       0x4b337723f]   dbg_send_ep_cmd: ep7in: cmd 'End
>>>>> Transfer' [f0d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>>>
>>>>
>>>> If the Start Transfer for ep0 failed and the Setup packet can't be
>>>> DMA'ed out, the End Transfer may not go through.
>>>>
>>>> Can you leave the log unfiltered and is it possible to send as
>>>> attachment? It's missing some important info in this log.
>>>>
>>> Are there any specific logs you were looking for?
>>> trace_dwc3_event
>>> trace_dwc3_prepare_trb
>>>
>>> Part of reproducing this issue will not allow me to enable tracing, so I
>>> have to make changes in our driver to reroute the logs elsewhere.  So
>>> far I've added changes to do:
>>> 	trace_dwc3_ctrl_req
>>> 	trace_dwc3_ep_queue
>>> 	trace_dwc3_ep_dequeue
>>> 	trace_dwc3_gadget_giveback
>>> 	trace_dwc3_gadget_ep_cmd
>>>
>>> I can add the above 2 tracepoints as well, but wondering if you needed
>>> anything else.
>>>
>>
>> If possible, please have these in addition to the above.
>>
>> trace_dwc3_event
>> trace_dwc3_complete_trb
>>
> Enabled the traces you recommended.  I think it captures it pretty clear
> where the status phase was still in progress when the dequeue came in,
> which led to the end transfer timeout.  Let me know if you need another log.
> 

Thanks for the trace! I think I see the problem.

[ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
[ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
[ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
[ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
[ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
[ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
[ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
[ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
[ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
[ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
[ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
[ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
[ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful

The control status isn't completed here.

[ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
[ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out

But the dequeue may come when host already sent a new Setup packet.
The ep0out hasn't started yet at the point.

Due to various system latency, I can see that this can happen when
the dwc3 driver hasn't received the interrupt notified the status stage
event yet.

If that's the case, the host may have already sent the Setup packet
at this point. So the End Transfer may get stuck if the Setup packet
isn't DMA out yet.

Can you try the change below to see if it resolves the issue?
Code is not tested. Let me know if the logic makes sense. The change is
to delay End Transfer when the Start Transfer for ep0out is completed.

Thanks,
Thinh




diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index eb9c1efced05..c55eddff0239 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -736,6 +736,7 @@ struct dwc3_ep {
 #define DWC3_EP_FIRST_STREAM_PRIMED    BIT(10)
 #define DWC3_EP_PENDING_CLEAR_STALL    BIT(11)
 #define DWC3_EP_TXFIFO_RESIZED         BIT(12)
+#define DWC3_EP_DELAY_STOP             BIT(13)
 
        /* This last one is specific to EP0 */
 #define DWC3_EP0_DIR_IN                        BIT(31)
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 658739410992..ccd1bf3e1f18 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -271,6 +271,7 @@ void dwc3_ep0_out_start(struct dwc3 *dwc)
 {
        struct dwc3_ep                  *dep;
        int                             ret;
+       int                             i;
 
        complete(&dwc->ep0_in_setup);
 
@@ -279,6 +280,19 @@ void dwc3_ep0_out_start(struct dwc3 *dwc)
                        DWC3_TRBCTL_CONTROL_SETUP, false);
        ret = dwc3_ep0_start_trans(dep);
        WARN_ON(ret < 0);
+
+       for (i = 2; i < DWC3_ENDPOINTS_NUM; i++) {
+               struct dwc3_ep *dwc3_ep;
+               dwc3_ep = dwc->eps[i];
+               if (!dwc3_ep)
+                       continue;
+
+               if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
+                       continue;
+
+               dep->flags &= ~DWC3_EP_DELAY_STOP;
+               dwc3_stop_active_transfer(dwc3_ep, true, true);
+       }
 }
 
 static struct dwc3_ep *dwc3_wIndex_to_dep(struct dwc3 *dwc, __le16 wIndex_le)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 183b90923f51..e164ecad06ac 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -654,9 +654,6 @@ static int dwc3_gadget_set_ep_config(struct dwc3_ep *dep, unsigned int action)
        return dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETEPCONFIG, &params);
 }
 
-static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
-               bool interrupt);
-
 /**
  * dwc3_gadget_calc_tx_fifo_size - calculates the txfifo size value
  * @dwc: pointer to the DWC3 context
@@ -1898,6 +1895,7 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
         * and endpoint STALL is cleared.
         */
        if ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) ||
+           (dep->flags & DWC3_EP_DELAY_STOP) ||
            (dep->flags & DWC3_EP_WEDGE) ||
            (dep->flags & DWC3_EP_STALL)) {
                dep->flags |= DWC3_EP_DELAY_START;
@@ -2033,6 +2031,9 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
                if (r == req) {
                        struct dwc3_request *t;
 
+                       if (dwc->ep0state != EP0_SETUP_PHASE)
+                               dep->flags |= DWC3_EP_DELAY_STOP;
+
                        /* wait until it is processed */
                        dwc3_stop_active_transfer(dep, true, true);
 
@@ -2116,7 +2117,8 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol)
                list_for_each_entry_safe(req, tmp, &dep->started_list, list)
                        dwc3_gadget_move_cancelled_request(req, DWC3_REQUEST_STATUS_STALLED);
 
-               if (dep->flags & DWC3_EP_END_TRANSFER_PENDING) {
+               if ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) ||
+                   (dep->flags & DWC3_EP_DELAY_STOP)) {
                        dep->flags |= DWC3_EP_PENDING_CLEAR_STALL;
                        return 0;
                }
@@ -3596,7 +3598,7 @@ static void dwc3_reset_gadget(struct dwc3 *dwc)
        }
 }
 
-static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
+void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
        bool interrupt)
 {
        struct dwc3_gadget_ep_cmd_params params;
@@ -3604,6 +3606,7 @@ static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
        int ret;
 
        if (!(dep->flags & DWC3_EP_TRANSFER_STARTED) ||
+           (dep->flags & DWC3_EP_DELAY_STOP) ||
            (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
                return;
 
diff --git a/drivers/usb/dwc3/gadget.h b/drivers/usb/dwc3/gadget.h
index 77df4b6d6c13..f763380e672e 100644
--- a/drivers/usb/dwc3/gadget.h
+++ b/drivers/usb/dwc3/gadget.h
@@ -116,6 +116,7 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
                gfp_t gfp_flags);
 int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol);
 void dwc3_ep0_send_delayed_status(struct dwc3 *dwc);
+void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force, bool interrupt);
 
 /**
  * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW
Wesley Cheng March 1, 2022, 2:09 a.m. UTC | #18
Hi Thinh,

On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
> Hi Wesley,
> 
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 2/24/2022 5:44 PM, Thinh Nguyen wrote:
>>> Wesley Cheng wrote:
>>>> Hi Thinh,
>>>>
>>>> On 2/24/2022 5:26 PM, Thinh Nguyen wrote:
>>>>> Hi Wesley,
>>>>>
>>>>> Wesley Cheng wrote:
>>>>>> Hi Thinh,
>>>>>>
>>>>>> On 2/22/2022 6:59 PM, Thinh Nguyen wrote:
>>>>>>> Hi Wesley,
>>>>>>>
>>>>>
>>>>> <snip>
>>>>>
>>>>>>>
>>>>>>> Can you provide a full trace?
>>>>>>>
>>>>>> Sorry for doing this, but we didn't have a way to share the file
>>>>>> directly, so I have to paste the trace below. :/
>>>>>>
>>>>>>> Btw, when you experiment with increasing the timeout to 10 seconds, did
>>>>>>> you use the mdelay() in each loop? The delta time for End Transfer
>>>>>>> timeout here seems very small.
>>>>>>>
>>>>>> This particular run did not modify the timeout for the cmd status polling.
>>>>>>
>>>>>> Is that something that you want to try?  Not pertaining to this dequeue
>>>>>> situation, during the pullup disable path debug, I noticed that as long
>>>>>> as there was a pending EP0 SETUP packet (not data/status) cached in the
>>>>>> controller, it would also have endxfer timeouts on non-control EPs.  We
>>>>>> were able to capture a bus sniffer log + ftrace, and it showed that at
>>>>>> the point of the error, the lecroy/bus log saw a SETUP token ACK'ed,
>>>>>> while on the ftrace, there were endxfer timeouts for all non-control EPs
>>>>>> (due to the dwc3_gadget_stop_active_transfers() call)
>>>>>>
>>>>>> Thanks
>>>>>> Wesley
>>>>>>
>>>>>> TRACE
>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>
>>>>> <snip>
>>>>>
>>>>>> [ 1023.912550050       0x4af666fd2]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep4in)
>>>>>> [ 1023.912934738       0x4af668cab]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1023.913361561       0x4af66acae]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1024.336480573       0x4afe2a29b]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep5in)
>>>>>> [ 1024.336855573       0x4afe2bebc]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1024.337264531       0x4afe2dd68]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>> [ 1024.351910156       0x4afe727d4]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1024.363139896       0x4afea720f]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep4in)
>>>>>> [ 1024.363898281       0x4afeaaaf0]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1024.364734010       0x4afeae99e]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1024.776173803       0x4b063739a]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep5in)
>>>>>> [ 1024.776907188       0x4b063aa9b]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1024.777646147       0x4b063e208]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>> [ 1024.788641980       0x4b0671ab8]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1024.799682397       0x4b06a56bf]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep4in)
>>>>>> [ 1024.800442605       0x4b06a8fc3]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1024.801184584       0x4b06ac769]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1025.222173752       0x4b0e61d99]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep5in)
>>>>>> [ 1025.222991669       0x4b0e65af1]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1025.223850731       0x4b0e69b5f]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>> [ 1025.239023492       0x4b0eb0d54]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1025.248963179       0x4b0edf6ce]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep4in)
>>>>>> [ 1025.249709846       0x4b0ee2ecd]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1025.250533440       0x4b0ee6c93]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1025.667084535       0x4b16875e7]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep5in)
>>>>>> [ 1025.667827764       0x4b168ada6]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1025.668635993       0x4b168ea44]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>> [ 1025.674777764       0x4b16ab6e7]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1025.684733597       0x4b16da197]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep4in)
>>>>>> [ 1025.685336150       0x4b16dcec7]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1025.686112608       0x4b16e0904]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status:
>>>>>> Successful
>>>>>> [ 1025.698842347       0x4b171c3bf]   dbg_send_ep_cmd: ep0out: cmd 'Set
>>>>>> Stall' [404] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1026.444051569       0x4b24c1670]   dbg_send_ep_cmd: ep0out: cmd
>>>>>> 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: No
>>>>>> Resource
>>>>>
>>>>> Why did this fail with No Resource? Was it sent before the control TRB
>>>>> completion?
>>>>>
>>>>>> [ 1027.225705425       0x4b3311678]   dbg_trace_log_ctrl: Clear Endpoint
>>>>>> Feature(Halt ep5in)
>>>>>> [ 1027.225820165       0x4b3311f14]   dbg_send_ep_cmd: ep5in: cmd 'Clear
>>>>>> Stall' [405] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 1027.225931467       0x4b331276c]   dbg_send_ep_cmd: ep0in: cmd 'Start
>>>>>> Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>> [ 1027.234311467       0x4b3339bed]   dbg_ep_dequeue: ep7in: req
>>>>>> ffffff87f99b8f00 length 0/61696 zsI ==> -115
>>>>>> [ 1027.247409123       0x4b337723f]   dbg_send_ep_cmd: ep7in: cmd 'End
>>>>>> Transfer' [f0d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>>>>
>>>>>
>>>>> If the Start Transfer for ep0 failed and the Setup packet can't be
>>>>> DMA'ed out, the End Transfer may not go through.
>>>>>
>>>>> Can you leave the log unfiltered and is it possible to send as
>>>>> attachment? It's missing some important info in this log.
>>>>>
>>>> Are there any specific logs you were looking for?
>>>> trace_dwc3_event
>>>> trace_dwc3_prepare_trb
>>>>
>>>> Part of reproducing this issue will not allow me to enable tracing, so I
>>>> have to make changes in our driver to reroute the logs elsewhere.  So
>>>> far I've added changes to do:
>>>> 	trace_dwc3_ctrl_req
>>>> 	trace_dwc3_ep_queue
>>>> 	trace_dwc3_ep_dequeue
>>>> 	trace_dwc3_gadget_giveback
>>>> 	trace_dwc3_gadget_ep_cmd
>>>>
>>>> I can add the above 2 tracepoints as well, but wondering if you needed
>>>> anything else.
>>>>
>>>
>>> If possible, please have these in addition to the above.
>>>
>>> trace_dwc3_event
>>> trace_dwc3_complete_trb
>>>
>> Enabled the traces you recommended.  I think it captures it pretty clear
>> where the status phase was still in progress when the dequeue came in,
>> which led to the end transfer timeout.  Let me know if you need another log.
>>
> 
> Thanks for the trace! I think I see the problem.
> 
> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
> 
> The control status isn't completed here.
> 
> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
> 
> But the dequeue may come when host already sent a new Setup packet.
> The ep0out hasn't started yet at the point.
> 
> Due to various system latency, I can see that this can happen when
> the dwc3 driver hasn't received the interrupt notified the status stage
> event yet.
> 
> If that's the case, the host may have already sent the Setup packet
> at this point. So the End Transfer may get stuck if the Setup packet
> isn't DMA out yet.
> 
> Can you try the change below to see if it resolves the issue?
Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
similar to the change proposed here as well:

https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/

One thing to mention is that, I'm not sure how dependable checking soley
the ep0state would be.  I've seen some scenarios where we'd run into the
end transfer timeout during the time between inspecting the SETUP packet
(dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
timing of the data phase can potentially differ if it is a vendor
specific control request.

This is what led me to try w/ marking the endxfer delay after getting a
timed out scenario.  Just something to consider :).  I'll let you know
how it goes!  Thanks again.

Thanks
Wesley Cheng

> Code is not tested. Let me know if the logic makes sense. The change is
> to delay End Transfer when the Start Transfer for ep0out is completed.
> 
> Thanks,
> Thinh
> 
> 
> 
> 
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index eb9c1efced05..c55eddff0239 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -736,6 +736,7 @@ struct dwc3_ep {
>  #define DWC3_EP_FIRST_STREAM_PRIMED    BIT(10)
>  #define DWC3_EP_PENDING_CLEAR_STALL    BIT(11)
>  #define DWC3_EP_TXFIFO_RESIZED         BIT(12)
> +#define DWC3_EP_DELAY_STOP             BIT(13)
>  
>         /* This last one is specific to EP0 */
>  #define DWC3_EP0_DIR_IN                        BIT(31)
> diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
> index 658739410992..ccd1bf3e1f18 100644
> --- a/drivers/usb/dwc3/ep0.c
> +++ b/drivers/usb/dwc3/ep0.c
> @@ -271,6 +271,7 @@ void dwc3_ep0_out_start(struct dwc3 *dwc)
>  {
>         struct dwc3_ep                  *dep;
>         int                             ret;
> +       int                             i;
>  
>         complete(&dwc->ep0_in_setup);
>  
> @@ -279,6 +280,19 @@ void dwc3_ep0_out_start(struct dwc3 *dwc)
>                         DWC3_TRBCTL_CONTROL_SETUP, false);
>         ret = dwc3_ep0_start_trans(dep);
>         WARN_ON(ret < 0);
> +
> +       for (i = 2; i < DWC3_ENDPOINTS_NUM; i++) {
> +               struct dwc3_ep *dwc3_ep;
> +               dwc3_ep = dwc->eps[i];
> +               if (!dwc3_ep)
> +                       continue;
> +
> +               if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
> +                       continue;
> +
> +               dep->flags &= ~DWC3_EP_DELAY_STOP;
> +               dwc3_stop_active_transfer(dwc3_ep, true, true);
> +       }
>  }
>  
>  static struct dwc3_ep *dwc3_wIndex_to_dep(struct dwc3 *dwc, __le16 wIndex_le)
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 183b90923f51..e164ecad06ac 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -654,9 +654,6 @@ static int dwc3_gadget_set_ep_config(struct dwc3_ep *dep, unsigned int action)
>         return dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETEPCONFIG, &params);
>  }
>  
> -static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
> -               bool interrupt);
> -
>  /**
>   * dwc3_gadget_calc_tx_fifo_size - calculates the txfifo size value
>   * @dwc: pointer to the DWC3 context
> @@ -1898,6 +1895,7 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
>          * and endpoint STALL is cleared.
>          */
>         if ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) ||
> +           (dep->flags & DWC3_EP_DELAY_STOP) ||
>             (dep->flags & DWC3_EP_WEDGE) ||
>             (dep->flags & DWC3_EP_STALL)) {
>                 dep->flags |= DWC3_EP_DELAY_START;
> @@ -2033,6 +2031,9 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
>                 if (r == req) {
>                         struct dwc3_request *t;
>  
> +                       if (dwc->ep0state != EP0_SETUP_PHASE)
> +                               dep->flags |= DWC3_EP_DELAY_STOP;
> +
>                         /* wait until it is processed */
>                         dwc3_stop_active_transfer(dep, true, true);
>  
> @@ -2116,7 +2117,8 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol)
>                 list_for_each_entry_safe(req, tmp, &dep->started_list, list)
>                         dwc3_gadget_move_cancelled_request(req, DWC3_REQUEST_STATUS_STALLED);
>  
> -               if (dep->flags & DWC3_EP_END_TRANSFER_PENDING) {
> +               if ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) ||
> +                   (dep->flags & DWC3_EP_DELAY_STOP)) {
>                         dep->flags |= DWC3_EP_PENDING_CLEAR_STALL;
>                         return 0;
>                 }
> @@ -3596,7 +3598,7 @@ static void dwc3_reset_gadget(struct dwc3 *dwc)
>         }
>  }
>  
> -static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
> +void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
>         bool interrupt)
>  {
>         struct dwc3_gadget_ep_cmd_params params;
> @@ -3604,6 +3606,7 @@ static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
>         int ret;
>  
>         if (!(dep->flags & DWC3_EP_TRANSFER_STARTED) ||
> +           (dep->flags & DWC3_EP_DELAY_STOP) ||
>             (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
>                 return;
>  
> diff --git a/drivers/usb/dwc3/gadget.h b/drivers/usb/dwc3/gadget.h
> index 77df4b6d6c13..f763380e672e 100644
> --- a/drivers/usb/dwc3/gadget.h
> +++ b/drivers/usb/dwc3/gadget.h
> @@ -116,6 +116,7 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
>                 gfp_t gfp_flags);
>  int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol);
>  void dwc3_ep0_send_delayed_status(struct dwc3 *dwc);
> +void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force, bool interrupt);
>  
>  /**
>   * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW
> 
> 
>  
>
Thinh Nguyen March 1, 2022, 3:02 a.m. UTC | #19
Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
>> Hi Wesley,
>>

<snip>

>>
>> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
>> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
>> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
>> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
>> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
>> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
>> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
>> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
>> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
>> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
>> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
>> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>
>> The control status isn't completed here.
>>
>> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
>> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>
>> But the dequeue may come when host already sent a new Setup packet.
>> The ep0out hasn't started yet at the point.
>>
>> Due to various system latency, I can see that this can happen when
>> the dwc3 driver hasn't received the interrupt notified the status stage
>> event yet.
>>
>> If that's the case, the host may have already sent the Setup packet
>> at this point. So the End Transfer may get stuck if the Setup packet
>> isn't DMA out yet.
>>
>> Can you try the change below to see if it resolves the issue?
> Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
> similar to the change proposed here as well:
> 
> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/__;!!A4F2R9G_pg!KlgSpNELOXQydIQuarA3A4NJXIcvHslXqzOdBwYqUIR97Mqdp8zdyezhOC9EJ6UqxLxM$ 
> 

Not sure if this completely resolves the issue here. The change seems to
issue the End Transfer command before Start Transfer for the next Setup
stage completes. Also it's missing some checks for async calls to the
endpoint that's pending dequeue. Also, we may not need to wait for End
Transfer command to time out if we know the condition to avoid.

> One thing to mention is that, I'm not sure how dependable checking soley
> the ep0state would be.  I've seen some scenarios where we'd run into the
> end transfer timeout during the time between inspecting the SETUP packet
> (dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
> timing of the data phase can potentially differ if it is a vendor
> specific control request.

This timeout should only apply to Setup packet and Setup stage. Even if
it's vendor specific control request, it should be fine. Host should not
issue a Setup packet until it receives a status stage (unless there's a
disconnect in the middle of a control transfer, but that's a different
issue).

If you do see a problem. We can take a look further.

> 
> This is what led me to try w/ marking the endxfer delay after getting a
> timed out scenario.  Just something to consider :).  I'll let you know
> how it goes!  Thanks again.
> 
> Thanks
> Wesley Cheng
> 
>> Code is not tested. Let me know if the logic makes sense. The change is
>> to delay End Transfer when the Start Transfer for ep0out is completed.
>>

Thanks,
Thinh
Wesley Cheng March 4, 2022, 9:58 p.m. UTC | #20
Hi Thinh,

On 2/28/2022 7:02 PM, Thinh Nguyen wrote:
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
>>> Hi Wesley,
>>>
> 
> <snip>
> 
>>>
>>> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
>>> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
>>> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
>>> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
>>> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
>>> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
>>> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
>>> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
>>> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
>>> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
>>> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
>>> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>
>>> The control status isn't completed here.
>>>
>>> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
>>> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>
>>> But the dequeue may come when host already sent a new Setup packet.
>>> The ep0out hasn't started yet at the point.
>>>
>>> Due to various system latency, I can see that this can happen when
>>> the dwc3 driver hasn't received the interrupt notified the status stage
>>> event yet.
>>>
>>> If that's the case, the host may have already sent the Setup packet
>>> at this point. So the End Transfer may get stuck if the Setup packet
>>> isn't DMA out yet.
>>>
>>> Can you try the change below to see if it resolves the issue?
>> Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
>> similar to the change proposed here as well:
>>
>> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/__;!!A4F2R9G_pg!KlgSpNELOXQydIQuarA3A4NJXIcvHslXqzOdBwYqUIR97Mqdp8zdyezhOC9EJ6UqxLxM$ 
>>
> 
> Not sure if this completely resolves the issue here. The change seems to
> issue the End Transfer command before Start Transfer for the next Setup
> stage completes. Also it's missing some checks for async calls to the
> endpoint that's pending dequeue. Also, we may not need to wait for End
> Transfer command to time out if we know the condition to avoid.
> 
>> One thing to mention is that, I'm not sure how dependable checking soley
>> the ep0state would be.  I've seen some scenarios where we'd run into the
>> end transfer timeout during the time between inspecting the SETUP packet
>> (dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
>> timing of the data phase can potentially differ if it is a vendor
>> specific control request.
> 
> This timeout should only apply to Setup packet and Setup stage. Even if
> it's vendor specific control request, it should be fine. Host should not
> issue a Setup packet until it receives a status stage (unless there's a
> disconnect in the middle of a control transfer, but that's a different
> issue).
> 
> If you do see a problem. We can take a look further.
> 
So far so good w/ the testing.  Had to make a small change in your patch
to fix a typo:
                if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
                        continue;

                dwc3_ep->flags &= ~DWC3_EP_DELAY_STOP;
                ret = dwc3_stop_active_transfer(dwc3_ep, true, true);

Was using dep instead of dwc3_ep.  Will let this run over the weekend
and get back to you.

Thanks
Wesley Cheng

>>
>> This is what led me to try w/ marking the endxfer delay after getting a
>> timed out scenario.  Just something to consider :).  I'll let you know
>> how it goes!  Thanks again.
>>
>> Thanks
>> Wesley Cheng
>>
>>> Code is not tested. Let me know if the logic makes sense. The change is
>>> to delay End Transfer when the Start Transfer for ep0out is completed.
>>>
> 
> Thanks,
> Thinh
Thinh Nguyen March 5, 2022, 12:53 a.m. UTC | #21
Wesley Cheng wrote:
> Hi Thinh,
> 
> On 2/28/2022 7:02 PM, Thinh Nguyen wrote:
>> Wesley Cheng wrote:
>>> Hi Thinh,
>>>
>>> On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
>>>> Hi Wesley,
>>>>
>>
>> <snip>
>>
>>>>
>>>> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
>>>> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
>>>> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
>>>> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
>>>> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
>>>> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
>>>> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
>>>> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
>>>> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
>>>> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
>>>> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
>>>> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>
>>>> The control status isn't completed here.
>>>>
>>>> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
>>>> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>>
>>>> But the dequeue may come when host already sent a new Setup packet.
>>>> The ep0out hasn't started yet at the point.
>>>>
>>>> Due to various system latency, I can see that this can happen when
>>>> the dwc3 driver hasn't received the interrupt notified the status stage
>>>> event yet.
>>>>
>>>> If that's the case, the host may have already sent the Setup packet
>>>> at this point. So the End Transfer may get stuck if the Setup packet
>>>> isn't DMA out yet.
>>>>
>>>> Can you try the change below to see if it resolves the issue?
>>> Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
>>> similar to the change proposed here as well:
>>>
>>> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/__;!!A4F2R9G_pg!KlgSpNELOXQydIQuarA3A4NJXIcvHslXqzOdBwYqUIR97Mqdp8zdyezhOC9EJ6UqxLxM$ 
>>>
>>
>> Not sure if this completely resolves the issue here. The change seems to
>> issue the End Transfer command before Start Transfer for the next Setup
>> stage completes. Also it's missing some checks for async calls to the
>> endpoint that's pending dequeue. Also, we may not need to wait for End
>> Transfer command to time out if we know the condition to avoid.
>>
>>> One thing to mention is that, I'm not sure how dependable checking soley
>>> the ep0state would be.  I've seen some scenarios where we'd run into the
>>> end transfer timeout during the time between inspecting the SETUP packet
>>> (dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
>>> timing of the data phase can potentially differ if it is a vendor
>>> specific control request.
>>
>> This timeout should only apply to Setup packet and Setup stage. Even if
>> it's vendor specific control request, it should be fine. Host should not
>> issue a Setup packet until it receives a status stage (unless there's a
>> disconnect in the middle of a control transfer, but that's a different
>> issue).
>>
>> If you do see a problem. We can take a look further.
>>
> So far so good w/ the testing.  Had to make a small change in your patch
> to fix a typo:
>                 if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
>                         continue;
> 
>                 dwc3_ep->flags &= ~DWC3_EP_DELAY_STOP;
>                 ret = dwc3_stop_active_transfer(dwc3_ep, true, true);
> 
> Was using dep instead of dwc3_ep.  Will let this run over the weekend
> and get back to you.
> 

Ok. This seems to confirm my suspicion. Can you update the patch with
the following adjustment:

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 3e75eaa13abc..c3f7529f64fc 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2309,6 +2309,10 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
                if (r == req) {
                        struct dwc3_request *t;

+                       if (dwc->ep0state != EP0_SETUP_PHASE &&
+                           !dwc->delayed_status)
+                               dep->flags |= DWC3_EP_DELAY_STOP;
+
                        /* wait until it is processed */
                        dwc3_stop_active_transfer(dep, true, true);

This is to avoid a case if the function driver has some dependency for
requests to return before sending the control status using delayed
status, which can cause a hang.

We only need to make sure not to issue End Transfer after the status
transfer started and before its completion interrupt, which may prevent
the driver from starting the Setup stage.

Thanks,
Thinh
Wesley Cheng March 7, 2022, 10:57 p.m. UTC | #22
Hi Thinh,

On 3/4/2022 4:53 PM, Thinh Nguyen wrote:
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 2/28/2022 7:02 PM, Thinh Nguyen wrote:
>>> Wesley Cheng wrote:
>>>> Hi Thinh,
>>>>
>>>> On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
>>>>> Hi Wesley,
>>>>>
>>>
>>> <snip>
>>>
>>>>>
>>>>> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
>>>>> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
>>>>> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
>>>>> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
>>>>> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
>>>>> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
>>>>> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
>>>>> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
>>>>> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
>>>>> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
>>>>> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
>>>>> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>
>>>>> The control status isn't completed here.
>>>>>
>>>>> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
>>>>> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>>>
>>>>> But the dequeue may come when host already sent a new Setup packet.
>>>>> The ep0out hasn't started yet at the point.
>>>>>
>>>>> Due to various system latency, I can see that this can happen when
>>>>> the dwc3 driver hasn't received the interrupt notified the status stage
>>>>> event yet.
>>>>>
>>>>> If that's the case, the host may have already sent the Setup packet
>>>>> at this point. So the End Transfer may get stuck if the Setup packet
>>>>> isn't DMA out yet.
>>>>>
>>>>> Can you try the change below to see if it resolves the issue?
>>>> Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
>>>> similar to the change proposed here as well:
>>>>
>>>> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/__;!!A4F2R9G_pg!KlgSpNELOXQydIQuarA3A4NJXIcvHslXqzOdBwYqUIR97Mqdp8zdyezhOC9EJ6UqxLxM$ 
>>>>
>>>
>>> Not sure if this completely resolves the issue here. The change seems to
>>> issue the End Transfer command before Start Transfer for the next Setup
>>> stage completes. Also it's missing some checks for async calls to the
>>> endpoint that's pending dequeue. Also, we may not need to wait for End
>>> Transfer command to time out if we know the condition to avoid.
>>>
>>>> One thing to mention is that, I'm not sure how dependable checking soley
>>>> the ep0state would be.  I've seen some scenarios where we'd run into the
>>>> end transfer timeout during the time between inspecting the SETUP packet
>>>> (dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
>>>> timing of the data phase can potentially differ if it is a vendor
>>>> specific control request.
>>>
>>> This timeout should only apply to Setup packet and Setup stage. Even if
>>> it's vendor specific control request, it should be fine. Host should not
>>> issue a Setup packet until it receives a status stage (unless there's a
>>> disconnect in the middle of a control transfer, but that's a different
>>> issue).
>>>
>>> If you do see a problem. We can take a look further.
>>>
>> So far so good w/ the testing.  Had to make a small change in your patch
>> to fix a typo:
>>                 if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
>>                         continue;
>>
>>                 dwc3_ep->flags &= ~DWC3_EP_DELAY_STOP;
>>                 ret = dwc3_stop_active_transfer(dwc3_ep, true, true);
>>
>> Was using dep instead of dwc3_ep.  Will let this run over the weekend
>> and get back to you.
>>
> 
> Ok. This seems to confirm my suspicion. Can you update the patch with
> the following adjustment:
> 
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 3e75eaa13abc..c3f7529f64fc 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -2309,6 +2309,10 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
>                 if (r == req) {
>                         struct dwc3_request *t;
> 
> +                       if (dwc->ep0state != EP0_SETUP_PHASE &&
> +                           !dwc->delayed_status)
> +                               dep->flags |= DWC3_EP_DELAY_STOP;
> +
>                         /* wait until it is processed */
>                         dwc3_stop_active_transfer(dep, true, true);
> 
> This is to avoid a case if the function driver has some dependency for
> requests to return before sending the control status using delayed
> status, which can cause a hang.
> 
> We only need to make sure not to issue End Transfer after the status
> transfer started and before its completion interrupt, which may prevent
> the driver from starting the Setup stage.
> 

Added the above change, and tested it over the weekend and it was
working well for me.  However, I wasn't able to really test the
delayed_status flag too much, since we don't have a function driver that
utilizes the USB_GADGET_DELAYED_STATUS too much. (we only have a FFS
interface, which will do it during enum, which is part of the test case
I ran)

Would it also make sense to check for the dwc->setup_packet_pending flag
as well in the same IF condition?  That would mean that there was a
SETUP packet cached in the controller, which would need to be handled.
I heard from our CC w/ Synopsys that we need to ensure any pending SETUP
packets stored in internal memory needed to be cleared as well before
issuing the endxfer.

This sounds similar to your statement previously about if the SETUP
packet wasn't DMA'ed out yet.

Thanks
Wesley Cheng
Thinh Nguyen March 7, 2022, 11:51 p.m. UTC | #23
Hi Wesley,

Wesley Cheng wrote:
> Hi Thinh,
> 
> On 3/4/2022 4:53 PM, Thinh Nguyen wrote:
>> Wesley Cheng wrote:
>>> Hi Thinh,
>>>
>>> On 2/28/2022 7:02 PM, Thinh Nguyen wrote:
>>>> Wesley Cheng wrote:
>>>>> Hi Thinh,
>>>>>
>>>>> On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
>>>>>> Hi Wesley,
>>>>>>
>>>>
>>>> <snip>
>>>>
>>>>>>
>>>>>> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
>>>>>> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
>>>>>> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
>>>>>> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
>>>>>> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
>>>>>> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
>>>>>> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
>>>>>> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
>>>>>> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
>>>>>> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
>>>>>> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
>>>>>> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>>
>>>>>> The control status isn't completed here.
>>>>>>
>>>>>> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
>>>>>> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>>>>
>>>>>> But the dequeue may come when host already sent a new Setup packet.
>>>>>> The ep0out hasn't started yet at the point.
>>>>>>
>>>>>> Due to various system latency, I can see that this can happen when
>>>>>> the dwc3 driver hasn't received the interrupt notified the status stage
>>>>>> event yet.
>>>>>>
>>>>>> If that's the case, the host may have already sent the Setup packet
>>>>>> at this point. So the End Transfer may get stuck if the Setup packet
>>>>>> isn't DMA out yet.
>>>>>>
>>>>>> Can you try the change below to see if it resolves the issue?
>>>>> Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
>>>>> similar to the change proposed here as well:
>>>>>
>>>>> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/__;!!A4F2R9G_pg!KlgSpNELOXQydIQuarA3A4NJXIcvHslXqzOdBwYqUIR97Mqdp8zdyezhOC9EJ6UqxLxM$ 
>>>>>
>>>>
>>>> Not sure if this completely resolves the issue here. The change seems to
>>>> issue the End Transfer command before Start Transfer for the next Setup
>>>> stage completes. Also it's missing some checks for async calls to the
>>>> endpoint that's pending dequeue. Also, we may not need to wait for End
>>>> Transfer command to time out if we know the condition to avoid.
>>>>
>>>>> One thing to mention is that, I'm not sure how dependable checking soley
>>>>> the ep0state would be.  I've seen some scenarios where we'd run into the
>>>>> end transfer timeout during the time between inspecting the SETUP packet
>>>>> (dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
>>>>> timing of the data phase can potentially differ if it is a vendor
>>>>> specific control request.
>>>>
>>>> This timeout should only apply to Setup packet and Setup stage. Even if
>>>> it's vendor specific control request, it should be fine. Host should not
>>>> issue a Setup packet until it receives a status stage (unless there's a
>>>> disconnect in the middle of a control transfer, but that's a different
>>>> issue).
>>>>
>>>> If you do see a problem. We can take a look further.
>>>>
>>> So far so good w/ the testing.  Had to make a small change in your patch
>>> to fix a typo:
>>>                 if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
>>>                         continue;
>>>
>>>                 dwc3_ep->flags &= ~DWC3_EP_DELAY_STOP;
>>>                 ret = dwc3_stop_active_transfer(dwc3_ep, true, true);
>>>
>>> Was using dep instead of dwc3_ep.  Will let this run over the weekend
>>> and get back to you.
>>>
>>
>> Ok. This seems to confirm my suspicion. Can you update the patch with
>> the following adjustment:
>>
>> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
>> index 3e75eaa13abc..c3f7529f64fc 100644
>> --- a/drivers/usb/dwc3/gadget.c
>> +++ b/drivers/usb/dwc3/gadget.c
>> @@ -2309,6 +2309,10 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
>>                 if (r == req) {
>>                         struct dwc3_request *t;
>>
>> +                       if (dwc->ep0state != EP0_SETUP_PHASE &&
>> +                           !dwc->delayed_status)
>> +                               dep->flags |= DWC3_EP_DELAY_STOP;
>> +
>>                         /* wait until it is processed */
>>                         dwc3_stop_active_transfer(dep, true, true);
>>
>> This is to avoid a case if the function driver has some dependency for
>> requests to return before sending the control status using delayed
>> status, which can cause a hang.
>>
>> We only need to make sure not to issue End Transfer after the status
>> transfer started and before its completion interrupt, which may prevent
>> the driver from starting the Setup stage.
>>
> 
> Added the above change, and tested it over the weekend and it was
> working well for me.  However, I wasn't able to really test the
> delayed_status flag too much, since we don't have a function driver that
> utilizes the USB_GADGET_DELAYED_STATUS too much. (we only have a FFS
> interface, which will do it during enum, which is part of the test case
> I ran)
> 

Thanks for the test. The delayed status check is only meant for a
special case if the function driver waits for dequeued requests to
return before sending the control status. No function driver is doing
this at the moment, but I want to put the check here anyway for robustness.

> Would it also make sense to check for the dwc->setup_packet_pending flag
> as well in the same IF condition?  That would mean that there was a
> SETUP packet cached in the controller, which would need to be handled.
> I heard from our CC w/ Synopsys that we need to ensure any pending SETUP
> packets stored in internal memory needed to be cleared as well before
> issuing the endxfer.

Currently the dwc3 driver doesn't handle setup_packet_pending. It only
uses that flag to handle some quirk. It should be fine when it is
implemented (at some point eventually :)).

If the EP0_SETUP_PHASE flag is set, that means that the driver had setup
the TRB for the Setup stage, so the Setup packet can be DMA'ed out
within the End Transfer timeout. When the handling of
setup_packet_pending is implemented, it should properly update the ep0state.

Note: hitting the pending setup packet should be rare. It can happen when
1) Host aborts the control transfer for some reason and start a new one
2) The device is disconnected in the middle of the control transfer

If you plan to implement/handle this scenario, I'll be happy to review
your changes.


> 
> This sounds similar to your statement previously about if the SETUP
> packet wasn't DMA'ed out yet.
> 
> Thanks
> Wesley Cheng
> 

Please submit this fix separately from your other RFC patches so it can
go into the driver.

Thanks,
Thinh
Wesley Cheng March 8, 2022, 7:20 p.m. UTC | #24
Hi Thinh,

On 3/7/2022 3:51 PM, Thinh Nguyen wrote:
> Hi Wesley,
> 
> Wesley Cheng wrote:
>> Hi Thinh,
>>
>> On 3/4/2022 4:53 PM, Thinh Nguyen wrote:
>>> Wesley Cheng wrote:
>>>> Hi Thinh,
>>>>
>>>> On 2/28/2022 7:02 PM, Thinh Nguyen wrote:
>>>>> Wesley Cheng wrote:
>>>>>> Hi Thinh,
>>>>>>
>>>>>> On 2/28/2022 5:09 PM, Thinh Nguyen wrote:
>>>>>>> Hi Wesley,
>>>>>>>
>>>>>
>>>>> <snip>
>>>>>
>>>>>>>
>>>>>>> [ 2181.481956865       0x9dc63f265]   dbg_complete: ep6in: trb ffffffc01e7f52a0 (E43:D43) buf 00000000ebaf0000 size 1x 0 ctrl 00000810 (hlcs:sC:normal)
>>>>>>> [ 2181.482044730       0x9dc63f8fc]   dbg_gadget_giveback: ep6in: req ffffff8860657500 length 8/8 zsI ==> 0
>>>>>>> [ 2181.482222490       0x9dc640651]   event (0000c040): ep0out: Transfer Complete (sIL) [Setup Phase]
>>>>>>> [ 2181.482273271       0x9dc640a20]   dbg_trace_log_ctrl: Get Interface Status(Intf = 4, Length = 20)
>>>>>>> [ 2181.482334782       0x9dc640ebc]   dbg_ep_queue: ep6in: req ffffff8860657500 length 0/8 zsI ==> -115
>>>>>>> [ 2181.482357386       0x9dc64106e]   dbg_prepare: ep6in: trb ffffffc01e7f52b0 (E44:D43) buf 00000000ea578000 size 1x 8 ctrl 00000811 (Hlcs:sC:normal)
>>>>>>> [ 2181.482391865       0x9dc641304]   dbg_send_ep_cmd: ep6in: cmd 'Update Transfer' [d0007] params 00000000 00000000 00000000 --> status: Successful
>>>>>>> [ 2181.482485615       0x9dc641a0d]   dbg_send_ep_cmd: ep0out: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>>> [ 2181.482565303       0x9dc642006]   event (000010c0): ep0out: Transfer Not Ready [0] (Not Active) [Data Phase]
>>>>>>> [ 2181.482719417       0x9dc642b96]   event (00002040): ep0out: Transfer Complete (Sil) [Data Phase]
>>>>>>> [ 2181.482814938       0x9dc6432c0]   dbg_gadget_giveback: ep0out: req ffffff87df84d900 length 20/20 zsI ==> 0
>>>>>>> [ 2181.482926084       0x9dc643b16]   event (000020c2): ep0in: Transfer Not Ready [0] (Not Active) [Status Phase]
>>>>>>> [ 2181.483024261       0x9dc644272]   dbg_send_ep_cmd: ep0in: cmd 'Start Transfer' [406] params 00000000 efffa000 00000000 --> status: Successful
>>>>>>>
>>>>>>> The control status isn't completed here.
>>>>>>>
>>>>>>> [ 2181.483069521       0x9dc6445d7]   dbg_ep_dequeue: ep2in: req ffffff879f5a8b00 length 0/63680 zsI ==> -115
>>>>>>> [ 2181.496068792       0x9dc6814c9]   dbg_send_ep_cmd: ep2in: cmd 'End Transfer' [50d08] params 00000000 00000000 00000000 --> status: Timed Out
>>>>>>>
>>>>>>> But the dequeue may come when host already sent a new Setup packet.
>>>>>>> The ep0out hasn't started yet at the point.
>>>>>>>
>>>>>>> Due to various system latency, I can see that this can happen when
>>>>>>> the dwc3 driver hasn't received the interrupt notified the status stage
>>>>>>> event yet.
>>>>>>>
>>>>>>> If that's the case, the host may have already sent the Setup packet
>>>>>>> at this point. So the End Transfer may get stuck if the Setup packet
>>>>>>> isn't DMA out yet.
>>>>>>>
>>>>>>> Can you try the change below to see if it resolves the issue?
>>>>>> Thanks, Thinh.  Sure I'll give it a try with this change.  This is very
>>>>>> similar to the change proposed here as well:
>>>>>>
>>>>>> https://urldefense.com/v3/__https://lore.kernel.org/linux-usb/20220216000835.25400-3-quic_wcheng@quicinc.com/__;!!A4F2R9G_pg!KlgSpNELOXQydIQuarA3A4NJXIcvHslXqzOdBwYqUIR97Mqdp8zdyezhOC9EJ6UqxLxM$ 
>>>>>>
>>>>>
>>>>> Not sure if this completely resolves the issue here. The change seems to
>>>>> issue the End Transfer command before Start Transfer for the next Setup
>>>>> stage completes. Also it's missing some checks for async calls to the
>>>>> endpoint that's pending dequeue. Also, we may not need to wait for End
>>>>> Transfer command to time out if we know the condition to avoid.
>>>>>
>>>>>> One thing to mention is that, I'm not sure how dependable checking soley
>>>>>> the ep0state would be.  I've seen some scenarios where we'd run into the
>>>>>> end transfer timeout during the time between inspecting the SETUP packet
>>>>>> (dwc3_ep0_inspect_setup()) and when the data phase is queued.  The
>>>>>> timing of the data phase can potentially differ if it is a vendor
>>>>>> specific control request.
>>>>>
>>>>> This timeout should only apply to Setup packet and Setup stage. Even if
>>>>> it's vendor specific control request, it should be fine. Host should not
>>>>> issue a Setup packet until it receives a status stage (unless there's a
>>>>> disconnect in the middle of a control transfer, but that's a different
>>>>> issue).
>>>>>
>>>>> If you do see a problem. We can take a look further.
>>>>>
>>>> So far so good w/ the testing.  Had to make a small change in your patch
>>>> to fix a typo:
>>>>                 if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
>>>>                         continue;
>>>>
>>>>                 dwc3_ep->flags &= ~DWC3_EP_DELAY_STOP;
>>>>                 ret = dwc3_stop_active_transfer(dwc3_ep, true, true);
>>>>
>>>> Was using dep instead of dwc3_ep.  Will let this run over the weekend
>>>> and get back to you.
>>>>
>>>
>>> Ok. This seems to confirm my suspicion. Can you update the patch with
>>> the following adjustment:
>>>
>>> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
>>> index 3e75eaa13abc..c3f7529f64fc 100644
>>> --- a/drivers/usb/dwc3/gadget.c
>>> +++ b/drivers/usb/dwc3/gadget.c
>>> @@ -2309,6 +2309,10 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
>>>                 if (r == req) {
>>>                         struct dwc3_request *t;
>>>
>>> +                       if (dwc->ep0state != EP0_SETUP_PHASE &&
>>> +                           !dwc->delayed_status)
>>> +                               dep->flags |= DWC3_EP_DELAY_STOP;
>>> +
>>>                         /* wait until it is processed */
>>>                         dwc3_stop_active_transfer(dep, true, true);
>>>
>>> This is to avoid a case if the function driver has some dependency for
>>> requests to return before sending the control status using delayed
>>> status, which can cause a hang.
>>>
>>> We only need to make sure not to issue End Transfer after the status
>>> transfer started and before its completion interrupt, which may prevent
>>> the driver from starting the Setup stage.
>>>
>>
>> Added the above change, and tested it over the weekend and it was
>> working well for me.  However, I wasn't able to really test the
>> delayed_status flag too much, since we don't have a function driver that
>> utilizes the USB_GADGET_DELAYED_STATUS too much. (we only have a FFS
>> interface, which will do it during enum, which is part of the test case
>> I ran)
>>
> 
> Thanks for the test. The delayed status check is only meant for a
> special case if the function driver waits for dequeued requests to
> return before sending the control status. No function driver is doing
> this at the moment, but I want to put the check here anyway for robustness.
> 
>> Would it also make sense to check for the dwc->setup_packet_pending flag
>> as well in the same IF condition?  That would mean that there was a
>> SETUP packet cached in the controller, which would need to be handled.
>> I heard from our CC w/ Synopsys that we need to ensure any pending SETUP
>> packets stored in internal memory needed to be cleared as well before
>> issuing the endxfer.
> 
> Currently the dwc3 driver doesn't handle setup_packet_pending. It only
> uses that flag to handle some quirk. It should be fine when it is
> implemented (at some point eventually :)).
> 
> If the EP0_SETUP_PHASE flag is set, that means that the driver had setup
> the TRB for the Setup stage, so the Setup packet can be DMA'ed out
> within the End Transfer timeout. When the handling of
> setup_packet_pending is implemented, it should properly update the ep0state.
> 
> Note: hitting the pending setup packet should be rare. It can happen when
> 1) Host aborts the control transfer for some reason and start a new one
> 2) The device is disconnected in the middle of the control transfer
> 
> If you plan to implement/handle this scenario, I'll be happy to review
> your changes.
> 
> 

Thanks for the explanation, Thinh.  Let me see if I can revisit the
setup_packet_pending scenario we ran into in the past, and if its still
applicable, I'll submit a separate fix for it.  Its been a few years
since we've seen that :).

>>
>> This sounds similar to your statement previously about if the SETUP
>> packet wasn't DMA'ed out yet.
>>
>> Thanks
>> Wesley Cheng
>>
> 
> Please submit this fix separately from your other RFC patches so it can
> go into the driver.
> 

Sounds good.  Will take this change outside the RFC series and submit it
to go in.

Thanks
Wesley Cheng
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 183b90923f51..3ad3bc5813ca 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2044,6 +2044,12 @@  static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
 				dwc3_gadget_move_cancelled_request(r,
 						DWC3_REQUEST_STATUS_DEQUEUED);
 
+			/* If ep cmd fails, then force to giveback cancelled requests here */
+			if (!(dep->flags & DWC3_EP_END_TRANSFER_PENDING)) {
+				dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
+				dwc3_gadget_ep_cleanup_cancelled_requests(dep);
+			}
+
 			dep->flags &= ~DWC3_EP_WAIT_TRANSFER_COMPLETE;
 
 			goto out;
@@ -3645,7 +3651,7 @@  static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
 
 	if (!interrupt)
 		dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
-	else
+	else if (!ret)
 		dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
 }