Toybrick

rk3568在Ubuntu下开启gc2093的HDR

harryxiong

新手上路

积分
11
楼主
发表于 6 天前    查看: 200|回复: 1 | [复制链接]    打印 | 只看该作者
尝试在设备树里添加摄像头属性rockchip,camera-hdr-mode = <5>;上电后观察到
root@ubuntu:~# dmesg | grep gc2093
[    6.032191] gc2093 2-0037: driver version: 00.01.02
[    6.032295] gc2093 2-0037: hdr_mode: 5, <0,5>, 5
[    6.032384] gc2093 2-0037: supply dovdd not found, using dummy regulator
[    6.032520] gc2093 2-0037: supply avdd not found, using dummy regulator
[    6.032573] gc2093 2-0037: supply dvdd not found, using dummy regulator
[    6.047905] gc2093 2-0037: Detected GC2093 sensor
[    6.047968] rockchip-csi2-dphy csi2-dphy1: dphy1 matches m00_b_gc2093 2-0037:bus type 5
[    7.307349] gc2093 2-0037: sensor mode set: 5, 0
[    7.307371] gc2093 2-0037: sensor mode: 0, 0
root@ubuntu:~# dmesg | grep rkaiq
[    6.784926] systemd[1]: Configuration file /lib/systemd/system/rkaiq_3A.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway.
[    6.951813] systemd[1]: Starting Enable Rockchip camera engine rkaiq...
[    7.012629] systemd[1]: Started Enable Rockchip camera engine rkaiq.

打印代码在gc2093.c,
6.032295对应于find_terminal_resolution函数最后一行
        dev_info(gc2093->dev, "hdr_mode: %d, <%d,%d>, %d\n", hdr_mode, NO_HDR, HDR_X2, gc2093->cur_mode->hdr_mode);

7.307349对应于gc2093_ioctl函数
        case RKMODULE_SET_HDR_CFG:
                hdr_cfg = (struct rkmodule_hdr_cfg *)arg;
                w = gc2093->cur_mode->width;
                h = gc2093->cur_mode->height;
               
                dev_info(gc2093->dev, "sensor mode set: %d, %d\n",
                                gc2093->cur_mode->hdr_mode, hdr_cfg->hdr_mode);

7.307371对应于gc2093_ioctl函数
        case RKMODULE_SET_HDR_CFG:
                // 这里省略,直到case内的最后一个判断
                if (i == ARRAY_SIZE(supported_modes)) {
                        dev_err(gc2093->dev, "not find hdr mode:%d %dx%d config\n",
                                hdr_cfg->hdr_mode, w, h);
                        ret = -EINVAL;
                } else {
                        w = gc2093->cur_mode->hts_def - gc2093->cur_mode->width;
                        h = gc2093->cur_mode->vts_def - gc2093->cur_mode->height;
                        __v4l2_ctrl_modify_range(gc2093->hblank, w, w, 1, w);
                        __v4l2_ctrl_modify_range(gc2093->vblank, h,
                                                 GC2093_VTS_MAX - gc2093->cur_mode->height,
                                                 1, h);
                        gc2093->cur_vts = gc2093->cur_mode->vts_def;
                        gc2093->cur_fps = gc2093->cur_mode->max_fps;
                        dev_info(gc2093->dev, "sensor mode: %d, %d\n",
                                 gc2093->cur_mode->hdr_mode, hdr_cfg->hdr_mode);
                }

从输出结果猜测,HDR配置被rkaiq_3A_server启动后置为0了。
请给出一个ubuntu下开启HDR的例子
回复

使用道具 举报

harryxiong

新手上路

积分
11
沙发
 楼主| 发表于 5 天前 | 只看该作者
打开/dev/v4l-subdev3,并配置RKMODULE_SET_HDR_CFG命令,配置为HDR_X2;从串口监测数据上看,配置成功下发,但是v4l2接不到数据,检查调试信息,发现rkisp-vir0: hdrmge is not supported。RK3566不支持多帧合成HDR吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表