瑞芯微Rockchip开发者社区
直播中

刘杰

7年用户 1292经验值
私信 关注
[经验]

RK3288 USB UVC Camera只能识别一颗摄像头的问题

Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92

现象:

之前有处理过 如何区分两颗相同的USB UVC Camera,是通过usb bus number来区分, 最近又出现了只能识别一颗摄像头的问题,后来发现是和bus number有关。

分析:

分析发现,两颗Camera的Facing属性都变成一样了。再查看kernel log,发现USB的root hub多了一个。

1.jpg

而正常的情况只有3个hub:

1.jpg

而区分usb camera属性正好用到了bus number中的hub 3, 异常时对应的Hub变成了hub 4。

原因:

CPU使用了rk3288-w版本, 此版本对usb有做功能上的扩展,多了对OHCI的支持,详细见:RK3288和RK3288-W版本说明

解决方法:

static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
{
......
memset(cap, 0, sizeof *cap);
strlcpy(cap->driver, "uvcvideo", sizeof cap->driver);
/Kris {/
#if 0
strlcpy(cap->card, vdev->name, sizeof cap->card);
#else
if( stream->dev->udev->bus->busnum == 1) {
strcpy(cap->card, "back");
} else {
strcpy(cap->card, "front");
}
#endif
/Kris }/
......
}

原作者:KrisFei

更多回帖

发帖
×
20
完善资料,
赚取积分