|
尝试在设备树里添加摄像头属性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的例子
|
|