On 01/12/2018 12:26 PM, Felipe Balbi wrote:
>
> Hi,
>
> Lars-Peter Clausen <[email protected]> writes:
>> Some UDC drivers (like the DWC3) expect that the response to a setup()
>
> not some, but *all*. You can only queue a response later IFF you return
> USB_GADGET_DELAYED_STATUS.
Yeah, but most drivers don't care. DWC3 is one of two which handles
USB_GADGET_DELAYED_STATUS.
>
>> request is queued from within the setup function itself so that it is
>> available as soon as setup() has completed.
>>
>> Upon receiving a setup request the function fs driver creates an event that
>> is made available to userspace. And only once userspace has acknowledged
>> that event the response to the setup request is queued.
>>
>> So it violates the requirement of those UDC drivers and random failures can
>> be observed. This is basically a race condition and if userspace is able to
>> read the event and queue the response fast enough all is good. But if it is
>> not, for example because other processes are currently scheduled to run,
>> the USB host that sent the setup request will observe an error.
>>
>> To avoid this the gadget framework provides the USB_GADGET_DELAYED_STATUS
>> return code. If a setup() callback returns this value the UDC driver is
>> aware that response is not yet available and can uses the appropriate
>> methods to handle this case.
>>
>> Since in the case of function fs the response will never be available when
>> the setup() function returns make sure that this status code is used.
>>
>> This fixed random occasional failures that were previously observed on a
>> DWC3 based system under high system load.
>
> I need to see tracepoint capture from the failure ;-) Care to send them
> to me for analysis?
I've attached the full trace up to the point where the failure occurs. (The
tracing infrastructure in the DWC3 driver was very helpful in tracking this
down btw.).
The important parts are around:
125.504109: dwc3_complete_trb: ep0out: ...
125.504111: dwc3_prepare_trb: ep0out: ...
Then a few moments later
125.508529: dwc3_ep0: queueing request ffffffc8787b6d00 to ep0out ...
Usually the queuing would happen before the dwc3_complete_trb and this
function would remove the URB from the queue. But now it will just sit on
the pending list waiting for something to happen since the original transfer
is already over.
When the next control request comes in and we try to queue something for EP0
the 'list_empty(&dep->pending_list)' check will fail, we return an error and
the endpoint is stalled and the host will observe an error.
- Lars
# tracer: nop
#
# entries-in-buffer/entries-written: 3779/3779 #P:4
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
<idle>-0 [000] d.h. 125.495083: dwc3_readl: addr
ffffff800948040c value 00000008
<idle>-0 [000] d.h. 125.495090: dwc3_readl: addr
ffffff8009480408 value 00000100
<idle>-0 [000] d.h. 125.495093: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.495159: dwc3_event: event (0000c040):
ep0out: Transfer Complete
irq/221-dwc3-3336 [003] d... 125.495165: dwc3_ep0: ep0out: Transfer
Complete: state 'Setup Phase'
irq/221-dwc3-3336 [003] d... 125.495167: dwc3_ep0: Setup Phase
irq/221-dwc3-3336 [003] d... 125.495169: dwc3_ctrl_req: bRequestType 41
bRequest 00 wValue 0000 wIndex 0000 wLength 0
irq/221-dwc3-3336 [003] d... 125.499466: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.499468: dwc3_event: event (000020c2):
ep0in: Transfer Not Ready (Not Active)
irq/221-dwc3-3336 [003] d... 125.499470: dwc3_ep0: ep0in: Transfer Not
Ready (Not Active): state 'Setup Phase'
irq/221-dwc3-3336 [003] d... 125.499472: dwc3_ep0: Control Status
irq/221-dwc3-3336 [003] d... 125.499474: dwc3_prepare_trb: ep0in: 0/0
trb ffffff800944b000 buf 0000000078079000 size 0 ctrl 00000c33 (HLcs:SC:status2)
irq/221-dwc3-3336 [003] d... 125.499477: dwc3_writel: addr
ffffff8009480818 value 00000000
irq/221-dwc3-3336 [003] d... 125.499480: dwc3_writel: addr
ffffff8009480814 value 7807a000
irq/221-dwc3-3336 [003] d... 125.499482: dwc3_writel: addr
ffffff8009480810 value 00000000
irq/221-dwc3-3336 [003] d... 125.499484: dwc3_writel: addr
ffffff800948081c value 00000406
irq/221-dwc3-3336 [003] d... 125.499486: dwc3_readl: addr
ffffff800948081c value 00010006
irq/221-dwc3-3336 [003] d... 125.499489: dwc3_gadget_ep_cmd: ep0in: cmd
'Start Transfer' [6] params 00000000 7807a000 00000000 --> status: Successful
irq/221-dwc3-3336 [003] d... 125.499490: dwc3_readl: addr
ffffff800948081c value 00010006
irq/221-dwc3-3336 [003] d... 125.499492: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.499495: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.499496: dwc3_writel: addr
ffffff8009480408 value 00000100
iiod-3335 [000] d... 125.499499: dwc3_ep0: queueing request
ffffffc8787b6d00 to ep0out length 0 state 'Status Phase'
iiod-3335 [000] d.H. 125.499513: dwc3_readl: addr
ffffff800948040c value 00000004
iiod-3335 [000] d.H. 125.499516: dwc3_readl: addr
ffffff8009480408 value 00000100
iiod-3335 [000] d.H. 125.499518: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.499555: dwc3_event: event (0000c042):
ep0in: Transfer Complete
irq/221-dwc3-3336 [003] d... 125.499558: dwc3_ep0: ep0in: Transfer
Complete: state 'Status Phase'
irq/221-dwc3-3336 [003] d... 125.499559: dwc3_ep0: Status Phase
irq/221-dwc3-3336 [003] d... 125.499561: dwc3_complete_trb: ep0out: 0/2
trb ffffff800944b000 buf 0000000078079000 size 0 ctrl 00000c32 (hLcs:SC:status2)
irq/221-dwc3-3336 [003] d... 125.499565: dwc3_gadget_giveback: ep0out:
req ffffffc8787b6d00 length 0/0 zsI ==> 0
irq/221-dwc3-3336 [003] d... 125.499568: dwc3_prepare_trb: ep0out: 0/2
trb ffffff800944b000 buf 0000000078079000 size 8 ctrl 00000c23 (HLcs:SC:setup)
irq/221-dwc3-3336 [003] d... 125.499571: dwc3_writel: addr
ffffff8009480808 value 00000000
irq/221-dwc3-3336 [003] d... 125.499573: dwc3_writel: addr
ffffff8009480804 value 7807a000
irq/221-dwc3-3336 [003] d... 125.499575: dwc3_writel: addr
ffffff8009480800 value 00000000
irq/221-dwc3-3336 [003] d... 125.499576: dwc3_writel: addr
ffffff800948080c value 00000406
irq/221-dwc3-3336 [003] d... 125.499578: dwc3_readl: addr
ffffff800948080c value 00000006
irq/221-dwc3-3336 [003] d... 125.499580: dwc3_gadget_ep_cmd: ep0out: cmd
'Start Transfer' [6] params 00000000 7807a000 00000000 --> status: Successful
irq/221-dwc3-3336 [003] d... 125.499581: dwc3_readl: addr
ffffff800948080c value 00000006
irq/221-dwc3-3336 [003] d... 125.499584: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.499586: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.499588: dwc3_writel: addr
ffffff8009480408 value 00000100
<idle>-0 [000] dnh. 125.499632: dwc3_readl: addr
ffffff800948040c value 00000008
<idle>-0 [000] dnh. 125.499635: dwc3_readl: addr
ffffff8009480408 value 00000100
<idle>-0 [000] dnh. 125.499637: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.499645: dwc3_event: event (0000c040):
ep0out: Transfer Complete
irq/221-dwc3-3336 [003] d... 125.499648: dwc3_ep0: ep0out: Transfer
Complete: state 'Setup Phase'
irq/221-dwc3-3336 [003] d... 125.499650: dwc3_ep0: Setup Phase
irq/221-dwc3-3336 [003] d... 125.499651: dwc3_ctrl_req: bRequestType 41
bRequest 01 wValue 0000 wIndex 0000 wLength 0
irq/221-dwc3-3336 [003] d... 125.499665: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.499667: dwc3_event: event (000020c2):
ep0in: Transfer Not Ready (Not Active)
irq/221-dwc3-3336 [003] d... 125.499669: dwc3_ep0: ep0in: Transfer Not
Ready (Not Active): state 'Setup Phase'
irq/221-dwc3-3336 [003] d... 125.499671: dwc3_ep0: Control Status
irq/221-dwc3-3336 [003] d... 125.499672: dwc3_prepare_trb: ep0in: 0/0
trb ffffff800944b000 buf 0000000078079000 size 0 ctrl 00000c33 (HLcs:SC:status2)
irq/221-dwc3-3336 [003] d... 125.499674: dwc3_writel: addr
ffffff8009480818 value 00000000
irq/221-dwc3-3336 [003] d... 125.499675: dwc3_writel: addr
ffffff8009480814 value 7807a000
irq/221-dwc3-3336 [003] d... 125.499677: dwc3_writel: addr
ffffff8009480810 value 00000000
irq/221-dwc3-3336 [003] d... 125.499679: dwc3_writel: addr
ffffff800948081c value 00000406
irq/221-dwc3-3336 [003] d... 125.499681: dwc3_readl: addr
ffffff800948081c value 00010006
irq/221-dwc3-3336 [003] d... 125.499683: dwc3_gadget_ep_cmd: ep0in: cmd
'Start Transfer' [6] params 00000000 7807a000 00000000 --> status: Successful
irq/221-dwc3-3336 [003] d... 125.499685: dwc3_readl: addr
ffffff800948081c value 00010006
irq/221-dwc3-3336 [003] d... 125.499687: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.499688: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.499690: dwc3_writel: addr
ffffff8009480408 value 00000100
iiod-3335 [000] d.H. 125.504090: dwc3_readl: addr
ffffff800948040c value 00000004
iiod-3335 [000] d.H. 125.504093: dwc3_readl: addr
ffffff8009480408 value 00000100
iiod-3335 [000] d.H. 125.504095: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.504102: dwc3_event: event (0000c042):
ep0in: Transfer Complete
irq/221-dwc3-3336 [003] d... 125.504106: dwc3_ep0: ep0in: Transfer
Complete: state 'Status Phase'
irq/221-dwc3-3336 [003] d... 125.504107: dwc3_ep0: Status Phase
irq/221-dwc3-3336 [003] d... 125.504109: dwc3_complete_trb: ep0out: 0/2
trb ffffff800944b000 buf 0000000078079000 size 0 ctrl 00000c32 (hLcs:SC:status2)
irq/221-dwc3-3336 [003] d... 125.504111: dwc3_prepare_trb: ep0out: 0/2
trb ffffff800944b000 buf 0000000078079000 size 8 ctrl 00000c23 (HLcs:SC:setup)
irq/221-dwc3-3336 [003] d... 125.504113: dwc3_writel: addr
ffffff8009480808 value 00000000
irq/221-dwc3-3336 [003] d... 125.504115: dwc3_writel: addr
ffffff8009480804 value 7807a000
irq/221-dwc3-3336 [003] d... 125.504117: dwc3_writel: addr
ffffff8009480800 value 00000000
irq/221-dwc3-3336 [003] d... 125.504119: dwc3_writel: addr
ffffff800948080c value 00000406
irq/221-dwc3-3336 [003] d... 125.504121: dwc3_readl: addr
ffffff800948080c value 00000006
irq/221-dwc3-3336 [003] d... 125.504123: dwc3_gadget_ep_cmd: ep0out: cmd
'Start Transfer' [6] params 00000000 7807a000 00000000 --> status: Successful
irq/221-dwc3-3336 [003] d... 125.504125: dwc3_readl: addr
ffffff800948080c value 00000006
irq/221-dwc3-3336 [003] d... 125.504126: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.504128: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.504130: dwc3_writel: addr
ffffff8009480408 value 00000100
iiod-3335 [000] d... 125.508529: dwc3_ep0: queueing request
ffffffc8787b6d00 to ep0out length 0 state 'Setup Phase'
iiod-4110 [001] d... 125.511937: dwc3_alloc_request: ep1out: req
ffffffc86ec8da00 length 0/0 zsI ==> 0
iiod-4110 [001] d... 125.511942: dwc3_ep_queue: ep1out: req
ffffffc86ec8da00 length 0/8192 zsI ==> -115
iiod-4110 [001] d... 125.511947: dwc3_gadget: ep1out: req
ffffffc86ec8da00 dma 877f00000 length 8192
iiod-4110 [001] d... 125.511951: dwc3_prepare_trb: ep1out: 1/2
trb ffffff800944f6e0 buf 0000000877f00000 size 8192 ctrl 00000c19
(HlcS:SC:normal)
iiod-4110 [001] d... 125.511953: dwc3_writel: addr
ffffff8009480828 value 00000000
iiod-4110 [001] d... 125.511955: dwc3_writel: addr
ffffff8009480824 value 7807c6e0
iiod-4110 [001] d... 125.511957: dwc3_writel: addr
ffffff8009480820 value 00000000
iiod-4110 [001] d... 125.511960: dwc3_writel: addr
ffffff800948082c value 00000406
iiod-4110 [001] d... 125.511962: dwc3_readl: addr
ffffff800948082c value 00020006
iiod-4110 [001] d... 125.511963: dwc3_gadget_ep_cmd: ep1out: cmd
'Start Transfer' [6] params 00000000 7807c6e0 00000000 --> status: Successful
iiod-4110 [001] d... 125.511965: dwc3_readl: addr
ffffff800948082c value 00020006
<idle>-0 [000] dnh. 125.511979: dwc3_readl: addr
ffffff800948040c value 00000004
<idle>-0 [000] dnh. 125.511982: dwc3_readl: addr
ffffff8009480408 value 00000100
<idle>-0 [000] dnh. 125.511984: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.511993: dwc3_event: event (00006084):
ep1out: Transfer In-Progress
irq/221-dwc3-3336 [003] d... 125.511995: dwc3_complete_trb: ep1out: 0/2
trb ffffff800944f6e0 buf 0000000877f00000 size 8185 ctrl 00000c18
(hlcS:SC:normal)
irq/221-dwc3-3336 [003] d... 125.512002: dwc3_gadget_giveback: ep1out:
req ffffffc86ec8da00 length 7/8192 zsI ==> 0
irq/221-dwc3-3336 [003] d... 125.512011: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.512013: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.512015: dwc3_writel: addr
ffffff8009480408 value 00000100
kworker/3:1-416 [003] .... 125.512028: dwc3_free_request: ep1out: req
ffffffc86ec8da00 length 7/8192 zsI ==> 0
iiod-4110 [001] d... 125.523562: dwc3_alloc_request: ep1in: req
ffffffc87aae4300 length 0/0 zsI ==> 0
iiod-4110 [001] d... 125.523564: dwc3_ep_queue: ep1in: req
ffffffc87aae4300 length 0/5 zsI ==> -115
iiod-4110 [001] d... 125.523567: dwc3_gadget: ep1in: req
ffffffc87aae4300 dma 87848ad00 length 5
iiod-4110 [001] d... 125.523571: dwc3_prepare_trb: ep1in: 1/2
trb ffffff8009459d40 buf 000000087848ad00 size 5 ctrl 00000c19 (HlcS:SC:normal)
iiod-4110 [001] d... 125.523572: dwc3_writel: addr
ffffff8009480838 value 00000000
iiod-4110 [001] d... 125.523574: dwc3_writel: addr
ffffff8009480834 value 78099d40
iiod-4110 [001] d... 125.523576: dwc3_writel: addr
ffffff8009480830 value 00000000
iiod-4110 [001] d... 125.523578: dwc3_writel: addr
ffffff800948083c value 00000406
iiod-4110 [001] d... 125.523580: dwc3_readl: addr
ffffff800948083c value 00030006
iiod-4110 [001] d... 125.523581: dwc3_gadget_ep_cmd: ep1in: cmd
'Start Transfer' [6] params 00000000 78099d40 00000000 --> status: Successful
iiod-4110 [001] d... 125.523584: dwc3_readl: addr
ffffff800948083c value 00030006
<idle>-0 [000] dnh. 125.523607: dwc3_readl: addr
ffffff800948040c value 00000004
<idle>-0 [000] dnh. 125.523611: dwc3_readl: addr
ffffff8009480408 value 00000100
<idle>-0 [000] dnh. 125.523613: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.523621: dwc3_event: event (00004086):
ep1in: Transfer In-Progress
irq/221-dwc3-3336 [003] d... 125.523623: dwc3_complete_trb: ep1in: 0/2
trb ffffff8009459d40 buf 000000087848ad00 size 0 ctrl 00000c18 (hlcS:SC:normal)
irq/221-dwc3-3336 [003] d... 125.523629: dwc3_gadget_giveback: ep1in:
req ffffffc87aae4300 length 5/5 zsI ==> 0
irq/221-dwc3-3336 [003] d... 125.523636: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.523639: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.523641: dwc3_writel: addr
ffffff8009480408 value 00000100
kworker/3:1-416 [003] .... 125.523649: dwc3_free_request: ep1in: req
ffffffc87aae4300 length 5/5 zsI ==> 0
iiod-4110 [001] d... 125.535283: dwc3_alloc_request: ep1in: req
ffffffc87a9cf200 length 0/0 zsI ==> 0
iiod-4110 [001] d... 125.535285: dwc3_ep_queue: ep1in: req
ffffffc87a9cf200 length 0/5721 zsI ==> -115
iiod-4110 [001] d... 125.535288: dwc3_gadget: ep1in: req
ffffffc87a9cf200 dma 87aca8000 length 5721
iiod-4110 [001] d... 125.535291: dwc3_prepare_trb: ep1in: 1/2
trb ffffff8009459d50 buf 000000087aca8000 size 5721 ctrl 00000c19
(HlcS:SC:normal)
iiod-4110 [001] d... 125.535293: dwc3_writel: addr
ffffff8009480838 value 00000000
iiod-4110 [001] d... 125.535295: dwc3_writel: addr
ffffff8009480834 value 00000000
iiod-4110 [001] d... 125.535297: dwc3_writel: addr
ffffff8009480830 value 00000000
iiod-4110 [001] d... 125.535299: dwc3_writel: addr
ffffff800948083c value 00030407
iiod-4110 [001] d... 125.535301: dwc3_readl: addr
ffffff800948083c value 00030007
iiod-4110 [001] d... 125.535302: dwc3_gadget_ep_cmd: ep1in: cmd
'Update Transfer' [196615] params 00000000 00000000 00000000 --> status:
Successful
in:imklog-2923 [000] d.h. 125.535317: dwc3_readl: addr
ffffff800948040c value 00000004
in:imklog-2923 [000] d.h. 125.535321: dwc3_readl: addr
ffffff8009480408 value 00000100
in:imklog-2923 [000] d.h. 125.535323: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.535332: dwc3_event: event (00004086):
ep1in: Transfer In-Progress
irq/221-dwc3-3336 [003] d... 125.535333: dwc3_complete_trb: ep1in: 0/2
trb ffffff8009459d50 buf 000000087aca8000 size 0 ctrl 00000c18 (hlcS:SC:normal)
irq/221-dwc3-3336 [003] d... 125.535339: dwc3_gadget_giveback: ep1in:
req ffffffc87a9cf200 length 5721/5721 zsI ==> 0
irq/221-dwc3-3336 [003] d... 125.535345: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.535347: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.535350: dwc3_writel: addr
ffffff8009480408 value 00000100
kworker/3:1-416 [003] .... 125.535358: dwc3_free_request: ep1in: req
ffffffc87a9cf200 length 5721/5721 zsI ==> 0
iiod-4110 [001] d... 125.546998: dwc3_alloc_request: ep1in: req
ffffffc877c75900 length 0/0 zsI ==> 0
iiod-4110 [001] d... 125.547000: dwc3_ep_queue: ep1in: req
ffffffc877c75900 length 0/1 zsI ==> -115
iiod-4110 [001] d... 125.547002: dwc3_gadget: ep1in: req
ffffffc877c75900 dma 87ab04400 length 1
iiod-4110 [001] d... 125.547006: dwc3_prepare_trb: ep1in: 1/2
trb ffffff8009459d60 buf 000000087ab04400 size 1 ctrl 00000c19 (HlcS:SC:normal)
iiod-4110 [001] d... 125.547008: dwc3_writel: addr
ffffff8009480838 value 00000000
iiod-4110 [001] d... 125.547010: dwc3_writel: addr
ffffff8009480834 value 00000000
iiod-4110 [001] d... 125.547011: dwc3_writel: addr
ffffff8009480830 value 00000000
iiod-4110 [001] d... 125.547013: dwc3_writel: addr
ffffff800948083c value 00030407
iiod-4110 [001] d... 125.547015: dwc3_readl: addr
ffffff800948083c value 00030007
iiod-4110 [001] d... 125.547017: dwc3_gadget_ep_cmd: ep1in: cmd
'Update Transfer' [196615] params 00000000 00000000 00000000 --> status:
Successful
<idle>-0 [000] dnh. 125.547044: dwc3_readl: addr
ffffff800948040c value 00000004
<idle>-0 [000] dnh. 125.547048: dwc3_readl: addr
ffffff8009480408 value 00000100
<idle>-0 [000] dnh. 125.547050: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.547058: dwc3_event: event (00004086):
ep1in: Transfer In-Progress
irq/221-dwc3-3336 [003] d... 125.547060: dwc3_complete_trb: ep1in: 0/2
trb ffffff8009459d60 buf 000000087ab04400 size 0 ctrl 00000c18 (hlcS:SC:normal)
irq/221-dwc3-3336 [003] d... 125.547066: dwc3_gadget_giveback: ep1in:
req ffffffc877c75900 length 1/1 zsI ==> 0
irq/221-dwc3-3336 [003] d... 125.547072: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.547074: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.547076: dwc3_writel: addr
ffffff8009480408 value 00000100
kworker/3:1-416 [003] .... 125.547085: dwc3_free_request: ep1in: req
ffffffc877c75900 length 1/1 zsI ==> 0
<idle>-0 [000] d.h. 125.547503: dwc3_readl: addr
ffffff800948040c value 00000008
<idle>-0 [000] d.h. 125.547506: dwc3_readl: addr
ffffff8009480408 value 00000100
<idle>-0 [000] d.h. 125.547509: dwc3_writel: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.547518: dwc3_event: event (0000c040):
ep0out: Transfer Complete
irq/221-dwc3-3336 [003] d... 125.547521: dwc3_ep0: ep0out: Transfer
Complete: state 'Setup Phase'
irq/221-dwc3-3336 [003] d... 125.547522: dwc3_ep0: Setup Phase
irq/221-dwc3-3336 [003] d... 125.547524: dwc3_ctrl_req: bRequestType 80
bRequest 06 wValue 0300 wIndex 0000 wLength 255
irq/221-dwc3-3336 [003] d... 125.547525: dwc3_ep0: Forwarding to gadget
driver
irq/221-dwc3-3336 [003] d... 125.547542: dwc3_writel: addr
ffffff8009480808 value 00000000
irq/221-dwc3-3336 [003] d... 125.547544: dwc3_writel: addr
ffffff8009480804 value 00000000
irq/221-dwc3-3336 [003] d... 125.547546: dwc3_writel: addr
ffffff8009480800 value 00000000
irq/221-dwc3-3336 [003] d... 125.547549: dwc3_writel: addr
ffffff800948080c value 00000404
irq/221-dwc3-3336 [003] d... 125.547550: dwc3_readl: addr
ffffff800948080c value 00000004
irq/221-dwc3-3336 [003] d... 125.547552: dwc3_gadget_ep_cmd: ep0out: cmd
'Set Stall' [4] params 00000000 00000000 00000000 --> status: Successful
irq/221-dwc3-3336 [003] d... 125.547557: dwc3_gadget_giveback: ep0out:
req ffffffc8787b6d00 length 0/0 zsI ==> -104
irq/221-dwc3-3336 [003] d... 125.547560: dwc3_prepare_trb: ep0out: 0/2
trb ffffff800944b000 buf 0000000078079000 size 8 ctrl 00000c23 (HLcs:SC:setup)
irq/221-dwc3-3336 [003] d... 125.547562: dwc3_writel: addr
ffffff8009480808 value 00000000
irq/221-dwc3-3336 [003] d... 125.547564: dwc3_writel: addr
ffffff8009480804 value 7807a000
irq/221-dwc3-3336 [003] d... 125.547567: dwc3_writel: addr
ffffff8009480800 value 00000000
irq/221-dwc3-3336 [003] d... 125.547568: dwc3_writel: addr
ffffff800948080c value 00000406
irq/221-dwc3-3336 [003] d... 125.547570: dwc3_readl: addr
ffffff800948080c value 00000006
irq/221-dwc3-3336 [003] d... 125.547572: dwc3_gadget_ep_cmd: ep0out: cmd
'Start Transfer' [6] params 00000000 7807a000 00000000 --> status: Successful
irq/221-dwc3-3336 [003] d... 125.547573: dwc3_readl: addr
ffffff800948080c value 00000006
irq/221-dwc3-3336 [003] d... 125.547575: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.547577: dwc3_event: event (000010c2):
ep0in: Transfer Not Ready (Not Active)
irq/221-dwc3-3336 [003] d... 125.547579: dwc3_ep0: ep0in: Transfer Not
Ready (Not Active): state 'Setup Phase'
irq/221-dwc3-3336 [003] d... 125.547581: dwc3_ep0: Control Data
irq/221-dwc3-3336 [003] d... 125.547582: dwc3_writel: addr
ffffff800948040c value 00000004
irq/221-dwc3-3336 [003] d... 125.547584: dwc3_readl: addr
ffffff8009480408 value 80000100
irq/221-dwc3-3336 [003] d... 125.547585: dwc3_writel: addr
ffffff8009480408 value 00000100