camerad_qcom: init sensors with array (#20275)

Co-authored-by: ZwX1616 <zwx1616@gmail.com>
pull/20571/head
Dean Lee 4 years ago committed by GitHub
parent 540b853c9f
commit 26fa6e1644
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 39
      selfdrive/camerad/cameras/camera_qcom.cc

@ -324,14 +324,8 @@ static void do_autoexposure(CameraState *s, float grey_frac) {
} }
static void sensors_init(MultiCameraState *s) { static void sensors_init(MultiCameraState *s) {
unique_fd sensorinit_fd; msm_camera_sensor_slave_info slave_infos[2] = {
sensorinit_fd = open("/dev/v4l-subdev11", O_RDWR | O_NONBLOCK); (msm_camera_sensor_slave_info){ // road camera
assert(sensorinit_fd >= 0);
// init road camera sensor
struct msm_camera_sensor_slave_info slave_info = {0};
slave_info = (struct msm_camera_sensor_slave_info){
.sensor_name = "imx298", .sensor_name = "imx298",
.eeprom_name = "sony_imx298", .eeprom_name = "sony_imx298",
.actuator_name = "dw9800w", .actuator_name = "dw9800w",
@ -366,15 +360,8 @@ static void sensors_init(MultiCameraState *s) {
.is_init_params_valid = 0, .is_init_params_valid = 0,
.sensor_init_params = {.modes_supported = 1, .position = BACK_CAMERA_B, .sensor_mount_angle = 90}, .sensor_init_params = {.modes_supported = 1, .position = BACK_CAMERA_B, .sensor_mount_angle = 90},
.output_format = MSM_SENSOR_BAYER, .output_format = MSM_SENSOR_BAYER,
}; },
slave_info.power_setting_array.power_setting = &slave_info.power_setting_array.power_setting_a[0]; (msm_camera_sensor_slave_info){ // driver camera
slave_info.power_setting_array.power_down_setting = &slave_info.power_setting_array.power_down_setting_a[0];
sensor_init_cfg_data sensor_init_cfg = {.cfgtype = CFG_SINIT_PROBE, .cfg.setting = &slave_info};
int err = cam_ioctl(sensorinit_fd, VIDIOC_MSM_SENSOR_INIT_CFG, &sensor_init_cfg, "sensor init cfg (road camera)");
assert(err >= 0);
struct msm_camera_sensor_slave_info slave_info2 = {0};
slave_info2 = (struct msm_camera_sensor_slave_info){
.sensor_name = "ov8865_sunny", .sensor_name = "ov8865_sunny",
.eeprom_name = "ov8865_plus", .eeprom_name = "ov8865_plus",
.actuator_name = "", .actuator_name = "",
@ -407,13 +394,17 @@ static void sensors_init(MultiCameraState *s) {
.is_init_params_valid = 0, .is_init_params_valid = 0,
.sensor_init_params = {.modes_supported = 1, .position = FRONT_CAMERA_B, .sensor_mount_angle = 270}, .sensor_init_params = {.modes_supported = 1, .position = FRONT_CAMERA_B, .sensor_mount_angle = 270},
.output_format = MSM_SENSOR_BAYER, .output_format = MSM_SENSOR_BAYER,
}; }};
slave_info2.power_setting_array.power_setting = &slave_info2.power_setting_array.power_setting_a[0];
slave_info2.power_setting_array.power_down_setting = &slave_info2.power_setting_array.power_down_setting_a[0]; unique_fd sensorinit_fd = open("/dev/v4l-subdev11", O_RDWR | O_NONBLOCK);
sensor_init_cfg.cfgtype = CFG_SINIT_PROBE; assert(sensorinit_fd >= 0);
sensor_init_cfg.cfg.setting = &slave_info2; for (auto &info : slave_infos) {
err = cam_ioctl(sensorinit_fd, VIDIOC_MSM_SENSOR_INIT_CFG, &sensor_init_cfg, "sensor init cfg (driver camera)"); info.power_setting_array.power_setting = &info.power_setting_array.power_setting_a[0];
assert(err >= 0); info.power_setting_array.power_down_setting = &info.power_setting_array.power_down_setting_a[0];
sensor_init_cfg_data sensor_init_cfg = {.cfgtype = CFG_SINIT_PROBE, .cfg.setting = &info};
int err = cam_ioctl(sensorinit_fd, VIDIOC_MSM_SENSOR_INIT_CFG, &sensor_init_cfg, "sensor init cfg");
assert(err >= 0);
}
} }
static void camera_open(CameraState *s, bool is_road_cam) { static void camera_open(CameraState *s, bool is_road_cam) {

Loading…
Cancel
Save