AnsweredAssumed Answered

dwc3 timeout in transmission on ls1046a

Question asked by Andy Hsu on Feb 26, 2020
Latest reply on Mar 4, 2020 by bpe

I tried to test uvc-gadget function on LS1046ARDB board.

I brought up g_webcam module to get a video node in /dev/video0 and executed the uvc-gadget function.

# ./uvc-gadget -c /dev/video0

Device /dev/video0 opened: dwc3-gadget (gadget).
Device /dev/video0 opened: dwc3-gadget (gadget).


Then, USB cable connected peripheral port on the device to host (PC).


I try to get video capture on host and got some of message from device

setting probe control, length = 26
bRequestType a1 bRequest 81 wValue 0100 wIndex 0001 wLength 001a
streaming request (req 81 cs 01)
bRequestType 21 bRequest 01 wValue 0200 wIndex 0001 wLength 001a
streaming request (req 01 cs 02)
setting commit control, length = 26
Setting format to 0x56595559 640x360
=== Setting frame rate to 15 fps
/dev/video0: unable to set frame rate (25).
Starting video stream.
/dev/video0: 4 buffers requested.
Failed to export buffer 0.
Failed to export buffers on source: Inappropriate ioctl for device (25)


I also printed kernel message

[ 209.630678] BUG: scheduling while atomic: uvc-gadget/4993/0x00000002
[ 210.153582] dwc3 3000000.usb: timed out waiting for SETUP phase
[ 210.159574] Kernel panic - not syncing: Aiee, killing interrupt handler!
[ 210.166283] CPU: 3 PID: 4993 Comm: uvc-gadget Tainted: G W 4.19.68-dirty #40
[ 210.174639] Hardware name: LS1046A RDB Board (DT)
[ 210.179342] Call trace:


It seems that dwc3 driver timeout when transmission.

Is the dwc3 driver unstable and unavailable on the LS1046A device ?

How do I figure out this issue ?