Hi Champs
Can you please give us any helpful guidance to support UVC in PSDK lateset release even Linux kernel should take care of it?
The general guidance to enable and test the UVC is needed.
Thanks.
Regards,
Jack
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi Champs
Can you please give us any helpful guidance to support UVC in PSDK lateset release even Linux kernel should take care of it?
The general guidance to enable and test the UVC is needed.
Thanks.
Regards,
Jack
Hi Jack,
Is there anything that you are specifically looking for?
The UVC support on AM437x has no difference from any other platforms including x86 Linux. So any information of UVC you found on internet would be applicable to AM437x too.
Hi Bin Liu
There's an issue when customer tried to enable UVC feature on top of PSDK release.
They identified UVC device is recognized as /dev/video1. However the 1 frame is only transferred. then the error is occurred by UVC driver.
They tried to use the newest uvc-gadget from https://github.com/wlhe/uvc-gadget.
root@am437x-aum100:~# ./uvc-gadget.sh start Detecting platform: board : ACROWELL AM437x AUM100 udc : 48390000.usb Creating the USB gadget Creating gadget directory g1 OK Setting Vendor and Product ID's OK Setting English strings OK Creating Config Creating functions... Creating UVC gadget functionality : uvc.0 OK Binding USB Device Controller [ 14.206664] configfs-gadget gadget: uvc: uvc_function_bind() OK root@am437x-aum100:~# ls /dev/video* /dev/video0 /dev/video1 root@am437x-aum100:~# ./uvc-gadget -v /dev/video0 -u /dev/video1 V4L2 device is TI AM437x VPFE on bus platform:vpfe 48326000.vpfe V4L2: Getting current format: YUYV 640x480 V4L2: Setting format to: YUYV 640x480 V4L2: Getting current format: YUYV 640x480 v4l2 open succeeded, file descriptor = 3 uvc device is dwc3-gadget on bus gadget uvc open succeeded, file descriptor = 4 V4L2: Buffer 0 mapped at address 0xb6eb2000. V4L2: Buffer 1 mapped at address 0xb6e1c000. V4L2: Buffer 2 mapped at address 0xb6d86000. V4L2: 3 buffers allocated. [ 31.211402] configfs-gadget gadget: high-speed config #1: c [ 31.217022] configfs-gadget gadget: uvc: uvc_function_set_alt(0, 0) [ 31.223317] configfs-gadget gadget: uvc: reset UVC Control [ 31.228852] configfs-gadget gadget: uvc: uvc_function_set_alt(1, 0) [ 31.235413] configfs-gadget gadget: uvc: uvc_function_set_alt(1, 0) control request (req 86 cs 02)[ 31.289446] configfs-gadget gadget: uvc: uvc_function_set_alt(1, 0) control request (req 86 cs 02) streaming request (req 87 cs 01) streaming request (req 01 cs 01) setting probe control, length = 26 streaming request (req 81 cs 01) control request (req 87 cs 02) control request (req 82 cs 02) control request (req 83 cs 02) control request (req 84 cs 02) control request (req 87 cs 02) control request (req 84 cs 02) control request (req 81 cs 02) control request (req 81 cs 02) streaming request (req 01 cs 01) setting probe control, length = 26 streaming request (req 82 cs 01) streaming request (req 83 cs 01) streaming request (req 01 cs 01) setting probe control, length = 26 streaming request (req 81 cs 01) streaming request (req 01 cs 01) setting probe control, length = 26 streaming request (req 82 cs 01) streaming request (req 83 cs 01) streaming request (req 01 cs 01) setting probe control, length = 26 streaming request (req 81 cs 01) streaming request (req 01 cs 02)[ 45.303311] configfs-gadget gadget: uvc: uvc_function_set_alt(1, 1) [ 45.310729] configfs-gadget gadget: uvc: reset UVC setting commit control, length = 26 [ 45.316955] pc7080d 1-0033: AGAPAO>>pc7080d_power_on: UVC: 2 buffers allocated. V4L2: Starting video stream. UVC: Starting video stream. [ 45.507357] configfs-gadget gadget: uvc: uvc_function_set_alt(1, 0) [ 45.524163] pc7080d 1-0033: AGAPAO>>pc7080d_power_off: [ 45.529447] dwc3 48390000.usb: request 81c55bbc was not queued to ep2in [ 45.536477] dwc3 48390000.usb: request ea09816b was not queued to ep2in [ 45.543134] dwc3 48390000.usb: request 30c7006d was not queued to ep2in [ 45.550060] dwc3 48390000.usb: request 2fab4a07 was not queued to ep2in UVC: Stopping video stream. streaming request (req 01 cs 01) setting probe control, lengt[ 45.563384] configfs-gadget gadget: uvc: uvc_function_set_alt(1, 1) [ 45.571199] configfs-gadget gadget: uvc: reset UVC h = 26 streaming request (req 82 cs 01) streaming request (req[ 45.577573] pc7080d 1-0033: AGAPAO>>pc7080d_power_on: 83 cs 01) streaming request (req 01 cs 01) setting probe control, length = 26 streaming request (req 81 cs 01) streaming request (req 01 cs 02) setting commit control, length = 26 UVC: 2 buffers allocated. V4L2: Starting video stream. UVC: Starting video stream. [ 45.786810] configfs-gadget gadget: uvc: VS request completed with status -18. [ 45.794107] configfs-gadget gadget: uvc: VS request completed with status -18. UVC: Possible USB shutdown requested from Host, seen during VIDIOC_DQBUF select timeout [ 47.814106] pc7080d 1-0033: AGAPAO>>pc7080d_power_off: [ 47.820667] dwc3 48390000.usb: request 2fab4a07 was not queued to ep2in [ 47.828143] dwc3 48390000.usb: request 30c7006d was not queued to ep2in [ 47.835704] dwc3 48390000.usb: request ea09816b was not queued to ep2in [ 47.842502] dwc3 48390000.usb: request 81c55bbc was not queued to ep2in UVC: Stopping video stream.[ 47.850419] configfs-gadget gadget: uvc: uvc_function_disable()
The following is their captured result.
Can you please help this issue to suppoprt UVC gadget succefully?
Their target goal is 640x480@30fps by UVC gadget to stream video over USB to a host PC.