[RK3288][Android6.0] 调试笔记 --- RK3288-W引起USB摄像头只能识别一个

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kris_fei/article/details/86631112

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多了一个。
在这里插入图片描述

而正常的情况只有3个hub:
在这里插入图片描述

而区分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 }*/
......
}

猜你喜欢

转载自blog.csdn.net/kris_fei/article/details/86631112
今日推荐