return ret;
}
+void sensor_2p7sq_cis_select_setfile(struct v4l2_subdev *subdev)
+{
+ u8 rev = 0;
+ struct fimc_is_cis *cis = NULL;
+
+ WARN_ON(!subdev);
+
+ cis = (struct fimc_is_cis *)v4l2_get_subdevdata(subdev);
+ WARN_ON(!cis);
+ WARN_ON(!cis->cis_data);
+
+ rev = cis->cis_data->cis_rev;
+
+ switch (rev) {
+ case 0xA0: /* 2P7SQ */
+ pr_info("%s setfile_A(2P7SQ)\n", __func__);
+ sensor_2p7sq_global = sensor_2p7sq_setfile_A_Global;
+ sensor_2p7sq_global_size = ARRAY_SIZE(sensor_2p7sq_setfile_A_Global);
+ sensor_2p7sq_setfiles = sensor_2p7sq_setfiles_A;
+ sensor_2p7sq_setfile_sizes = sensor_2p7sq_setfile_A_sizes;
+ sensor_2p7sq_max_setfile_num = ARRAY_SIZE(sensor_2p7sq_setfiles_A);
+ sensor_2p7sq_pllinfos = sensor_2p7sq_pllinfos_A;
+ break;
+ default:
+ err("Unsupported 2p7sq sensor revision(%#x) use setfile_A for default\n", rev);
+ sensor_2p7sq_global = sensor_2p7sq_setfile_A_Global;
+ sensor_2p7sq_global_size = ARRAY_SIZE(sensor_2p7sq_setfile_A_Global);
+ sensor_2p7sq_setfiles = sensor_2p7sq_setfiles_A;
+ sensor_2p7sq_setfile_sizes = sensor_2p7sq_setfile_A_sizes;
+ sensor_2p7sq_max_setfile_num = ARRAY_SIZE(sensor_2p7sq_setfiles_A);
+ sensor_2p7sq_pllinfos = sensor_2p7sq_pllinfos_A;
+ break;
+ }
+}
+
/* CIS OPS */
int sensor_2p7sq_cis_init(struct v4l2_subdev *subdev)
{
ret = 0;
}
+ sensor_2p7sq_cis_select_setfile(subdev);
+
cis->cis_data->cur_width = SENSOR_2P7SQ_MAX_WIDTH;
cis->cis_data->cur_height = SENSOR_2P7SQ_MAX_HEIGHT;
cis->cis_data->low_expo_start = 33000;
setfile = "default";
}
- if (strcmp(setfile, "default") == 0 ||
- strcmp(setfile, "setA") == 0) {
- probe_info("%s setfile_A\n", __func__);
- sensor_2p7sq_global = sensor_2p7sq_setfile_A_Global;
- sensor_2p7sq_global_size = ARRAY_SIZE(sensor_2p7sq_setfile_A_Global);
- sensor_2p7sq_setfiles = sensor_2p7sq_setfiles_A;
- sensor_2p7sq_setfile_sizes = sensor_2p7sq_setfile_A_sizes;
- sensor_2p7sq_pllinfos = sensor_2p7sq_pllinfos_A;
- sensor_2p7sq_max_setfile_num = ARRAY_SIZE(sensor_2p7sq_setfiles_A);
- } else if (strcmp(setfile, "setB") == 0) {
- probe_info("%s setfile_B\n", __func__);
- sensor_2p7sq_global = sensor_2p7sq_setfile_B_Global;
- sensor_2p7sq_global_size = ARRAY_SIZE(sensor_2p7sq_setfile_B_Global);
- sensor_2p7sq_setfiles = sensor_2p7sq_setfiles_B;
- sensor_2p7sq_setfile_sizes = sensor_2p7sq_setfile_B_sizes;
- sensor_2p7sq_pllinfos = sensor_2p7sq_pllinfos_B;
- sensor_2p7sq_max_setfile_num = ARRAY_SIZE(sensor_2p7sq_setfiles_B);
- } else {
- err("%s setfile index out of bound, take default (setfile_A)", __func__);
- sensor_2p7sq_global = sensor_2p7sq_setfile_A_Global;
- sensor_2p7sq_global_size = ARRAY_SIZE(sensor_2p7sq_setfile_A_Global);
- sensor_2p7sq_setfiles = sensor_2p7sq_setfiles_A;
- sensor_2p7sq_setfile_sizes = sensor_2p7sq_setfile_A_sizes;
- sensor_2p7sq_pllinfos = sensor_2p7sq_pllinfos_A;
- sensor_2p7sq_max_setfile_num = ARRAY_SIZE(sensor_2p7sq_setfiles_A);
- }
-
cis->use_initial_ae = of_property_read_bool(dnode, "use_initial_ae");
probe_info("%s use initial_ae(%d)\n", __func__, cis->use_initial_ae);
return ret;
}
+void sensor_2t7sx_cis_select_setfile(struct v4l2_subdev *subdev)
+{
+ u8 rev = 0;
+ struct fimc_is_cis *cis = NULL;
+
+ WARN_ON(!subdev);
+
+ cis = (struct fimc_is_cis *)v4l2_get_subdevdata(subdev);
+ WARN_ON(!cis);
+ WARN_ON(!cis->cis_data);
+
+ rev = cis->cis_data->cis_rev;
+
+ switch (rev) {
+ case 0xA0: /* 2T7SX */
+ pr_info("%s setfile_A(2T7SX)\n", __func__);
+ sensor_2t7sx_global = sensor_2t7sx_setfile_A_Global;
+ sensor_2t7sx_global_size = ARRAY_SIZE(sensor_2t7sx_setfile_A_Global);
+ sensor_2t7sx_setfiles = sensor_2t7sx_setfiles_A;
+ sensor_2t7sx_setfile_sizes = sensor_2t7sx_setfile_A_sizes;
+ sensor_2t7sx_max_setfile_num = ARRAY_SIZE(sensor_2t7sx_setfiles_A);
+ sensor_2t7sx_pllinfos = sensor_2t7sx_pllinfos_A;
+ break;
+ default:
+ err("Unsupported 2p7sq sensor revision(%#x) use setfile_A for default\n", rev);
+ sensor_2t7sx_global = sensor_2t7sx_setfile_A_Global;
+ sensor_2t7sx_global_size = ARRAY_SIZE(sensor_2t7sx_setfile_A_Global);
+ sensor_2t7sx_setfiles = sensor_2t7sx_setfiles_A;
+ sensor_2t7sx_setfile_sizes = sensor_2t7sx_setfile_A_sizes;
+ sensor_2t7sx_max_setfile_num = ARRAY_SIZE(sensor_2t7sx_setfiles_A);
+ sensor_2t7sx_pllinfos = sensor_2t7sx_pllinfos_A;
+ break;
+ }
+}
+
/* CIS OPS */
int sensor_2t7sx_cis_init(struct v4l2_subdev *subdev)
{
ret = 0;
}
+ sensor_2t7sx_cis_select_setfile(subdev);
+
cis->cis_data->cur_width = SENSOR_2T7SX_MAX_WIDTH;
cis->cis_data->cur_height = SENSOR_2T7SX_MAX_HEIGHT;
cis->cis_data->low_expo_start = 33000;
setfile = "default";
}
- if (strcmp(setfile, "default") == 0 ||
- strcmp(setfile, "setA") == 0) {
- probe_info("%s setfile_A\n", __func__);
- sensor_2t7sx_global = sensor_2t7sx_setfile_A_Global;
- sensor_2t7sx_global_size = ARRAY_SIZE(sensor_2t7sx_setfile_A_Global);
- sensor_2t7sx_setfiles = sensor_2t7sx_setfiles_A;
- sensor_2t7sx_setfile_sizes = sensor_2t7sx_setfile_A_sizes;
- sensor_2t7sx_pllinfos = sensor_2t7sx_pllinfos_A;
- sensor_2t7sx_max_setfile_num = ARRAY_SIZE(sensor_2t7sx_setfiles_A);
- } else if (strcmp(setfile, "setB") == 0) {
- probe_info("%s setfile_B\n", __func__);
- sensor_2t7sx_global = sensor_2t7sx_setfile_B_Global;
- sensor_2t7sx_global_size = ARRAY_SIZE(sensor_2t7sx_setfile_B_Global);
- sensor_2t7sx_setfiles = sensor_2t7sx_setfiles_B;
- sensor_2t7sx_setfile_sizes = sensor_2t7sx_setfile_B_sizes;
- sensor_2t7sx_pllinfos = sensor_2t7sx_pllinfos_B;
- sensor_2t7sx_max_setfile_num = ARRAY_SIZE(sensor_2t7sx_setfiles_B);
- } else {
- err("%s setfile index out of bound, take default (setfile_A)", __func__);
- sensor_2t7sx_global = sensor_2t7sx_setfile_A_Global;
- sensor_2t7sx_global_size = ARRAY_SIZE(sensor_2t7sx_setfile_A_Global);
- sensor_2t7sx_setfiles = sensor_2t7sx_setfiles_A;
- sensor_2t7sx_setfile_sizes = sensor_2t7sx_setfile_A_sizes;
- sensor_2t7sx_pllinfos = sensor_2t7sx_pllinfos_A;
- sensor_2t7sx_max_setfile_num = ARRAY_SIZE(sensor_2t7sx_setfiles_A);
- }
-
cis->use_initial_ae = of_property_read_bool(dnode, "use_initial_ae");
probe_info("%s use initial_ae(%d)\n", __func__, cis->use_initial_ae);