TI中文支持网
TI专业的中文技术问题搜集分享网站

am3354 使用两个uvc标准的usb摄像头报错

基于am3354芯片的开发板上进行测试

摄像头驱动识别为SMI;

内核版本:Linux-3.2.0;

PSP版本号:04.06.00.10;

SDK版本号:05.07.00.00;

    测试时用的qt4.8.5版程序,程序在单独打开使用两个摄像头中任意一个时都能正常显示,但是修改程序同时打开两个摄像头时,

驱动报错:uvcvideo: Failed to submit URB 0 (-28).

在Google搜索时好多网友讨论是因为usb带宽问题,在修改摄像头分辨率和帧数能够输出最小无果后,看到下面国外论坛位网友提供的patch:

diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
index b6eae48..f633700 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
 <at>  <at>  -2130,6 +2130,15  <at>  <at>  static structusb_device_id uvc_ids[] = {.bInterfaceProtocol	= 0,.driver_info 		= UVC_QUIRK_PROBE_MINMAX
 				| UVC_QUIRK_BUILTIN_ISIGHT },
+	/* Foxlink ("HP Webcam" on HP Mini 5103) */
+	{ .match_flags		=USB_DEVICE_ID_MATCH_DEVICE
+				|USB_DEVICE_ID_MATCH_INT_INFO,
+.idVendor		= 0x05c8,
+.idProduct		= 0x0403,
+.bInterfaceClass	=USB_CLASS_VIDEO,
+.bInterfaceSubClass	= 1,
+.bInterfaceProtocol	= 0,
+.driver_info		= UVC_QUIRK_FIX_BANDWIDTH },
 	/* Genesys LogicUSB 2.0 PC Camera */
 	{ .match_flags		=USB_DEVICE_ID_MATCH_DEVICE
 				|USB_DEVICE_ID_MATCH_INT_INFO,
修改后发现也不起作用,报错仍然相同;于是又换了一款210开发板测试,没有打patch之前也是同样原因,打完patch后,210开发板成功
打开两个摄像头并且正常显示。
这应该算是kernel的bug,因此问一下TI官方有没有解决办法?
Steven Liu1:

请问,在你使用的这个版本中有USB CPPI DMA的支持吗?有的话使能了吗?

210开发板是指什么?你提这个案例的意思,是想说用这个patch能把这个问题解决,但是需要TI官方的肯定是吗?

ryan zhang:

回复 Steven Liu1:

首先非常感谢 @Steven Liu 的回复,我用的内核里有配置CONFIG_USB_TI_CPPI41_DMA_HW的

第二个问题确实是你理解的意思,昨天又试了下通过otg和host两个控制器分别连接两个摄像头,是能正常工作的

感觉跟usb带宽确实有关系,不知道TI官方的demo板是不是也有这样的问题?如果是的话,有没有解决方法

Steven Liu1:

回复 ryan zhang:

目前,我这边没有实际案例这么用过,所以没有人汇报过这个问题。建议发到E2E论坛的Sitara专区,会有产品线的人来进行解答:http://e2e.ti.com/support/arm/sitara_arm/f/791

赞(0)
未经允许不得转载:TI中文支持网 » am3354 使用两个uvc标准的usb摄像头报错
分享到: 更多 (0)