Hi,
On 04/19/2016 11:07 AM, Felipe Balbi wrote:
Hi,
Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> writes:
Is something definitely wrong with initialization and enumeration traces?
I'll go read them
> irq/19-dwc3-96 [000] d..2 824.785778: dwc3_event: event 00150301
Link State change -> RX.Detect
> irq/19-dwc3-96 [000] d..2 824.877339: dwc3_event: event 00040301
Link State Change SS.Disconnect
Not to SS.Disabled?
> irq/19-dwc3-96 [000] d..2 824.877343: dwc3_event: event 00000301
Link State Change U0
> irq/19-dwc3-96 [000] d..2 824.881192: dwc3_event: event 00050301
Link State Change RX.Detect
> irq/19-dwc3-96 [000] d..2 824.885004: dwc3_event: event 00030301
Link State Change U3
> irq/19-dwc3-96 [000] d..2 825.218156: dwc3_event: event 00000101
USB Reset
> irq/19-dwc3-96 [000] d..2 825.229241: dwc3_event: event 00000201
Conncect Done
> irq/19-dwc3-96 [000] d..2 825.229248: dwc3_gadget: Enabling ep0out
enable ep0 with correct parameters
> irq/19-dwc3-96 [000] d..2 825.229252: dwc3_gadget_ep_cmd: ep0out: cmd 'Set Endpoint Configuration' [1] params 80000200 00000500 00000000
aram0: 64bytes wMaxPacketSize, Ignore Sequence Number set
param1: XferComplete and XferNotReady for physical ep0
param2: nothing
> irq/19-dwc3-96 [000] d..2 825.229257: dwc3_gadget: Command Complete --> 0
completes fine
> irq/19-dwc3-96 [000] d..2 825.229259: dwc3_gadget: Enabling ep0in
> irq/19-dwc3-96 [000] d..2 825.229260: dwc3_gadget_ep_cmd: ep0in: cmd 'Set Endpoint Configuration' [1] params 80000200 02000500 00000000
param0: 64bytes wMaxPacketSize, Ignore Sequence Number set
param1: XferComplete and XferNotReady for physical ep1
param2: nothing
> irq/19-dwc3-96 [000] d..2 825.229264: dwc3_gadget: Command Complete --> 0
completes fine
So, basically everything here is fine. There's nothing wrong
here. However, Right after these you get:
> irq/19-dwc3-96 [000] d..2 825.229265: dwc3_event: event 00000301
Link change U3 [3] -> U0 [0]
Host reports: " new high-speed USB device number XX using ehci-pci"
Host Sends USB_REQ_GET_DESCRIPTOR 3 times, gets r=-71. No events
detected on dwc3 side - this is the root issue.
Then host initiates device reset.
> irq/19-dwc3-96 [000] d..2 825.322544: dwc3_event: event 00050301
Link state change U0[0] -> Rx.Detect [5]
> irq/19-dwc3-96 [000] d..2 825.323162: dwc3_event: event 00000101
Reset interrupt
> irq/19-dwc3-96 [000] d..2 825.329773: dwc3_event: event 00000201
Conndone interrupt
> irq/19-dwc3-96 [000] d..2 825.329777: dwc3_gadget: Enabling ep0out
> irq/19-dwc3-96 [000] d..2 825.329782: dwc3_gadget_ep_cmd: ep0out: cmd 'Set Endpoint Configuration' [1] params 80000200 00000500 00000000
> irq/19-dwc3-96 [000] d..2 825.329786: dwc3_gadget: Command Complete --> 0
> irq/19-dwc3-96 [000] d..2 825.329788: dwc3_gadget: Enabling ep0in
> irq/19-dwc3-96 [000] d..2 825.329789: dwc3_gadget_ep_cmd: ep0in: cmd 'Set Endpoint Configuration' [1] params 80000200 02000500 00000000
> irq/19-dwc3-96 [000] d..2 825.329793: dwc3_gadget: Command Complete --> 0
All over again. And this repeats forever.
Well, actually it follows host enumeration process - with
usb_contorl_msg and hub_set_address returning -71,
and hub-initiated reset resulting in following sequence:
Link U0->Rx.Detect
reset interrupt
conndone interrupt
Link Rx.Detect -> U0
Did you load a gadget driver ?
Which gadget driver did you load ?
It's gadget zero. At least it's reported in dwc3_gadget_run_stop() -
see the last line in dwc3-init.trace:
insmod-95 [000] d..2 603.695374: dwc3_gadget: gadget zero data
soft-connect
------
regards,
Kirill
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html