int msm_sensor_bayer_s_ctrl_by_enum(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; CDBG("%s enter\n", __func__); rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); return rc; }
int ov7692_sharpness_msm_sensor_s_ctrl_by_enum( struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; if (effect_value == CAMERA_EFFECT_OFF) { rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); } return rc; }
int ov7692_msm_sensor_s_ctrl_by_enum(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); if (rc < 0) { CDBG("write faield\n"); return rc; } return rc; }
int ov7692_saturation_msm_sensor_s_ctrl_by_enum( struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; if (effect_value == CAMERA_EFFECT_OFF) { rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); } if (value <= MSM_V4L2_SATURATION_L8) SAT_U = SAT_V = value * 0x10; CDBG("--CAMERA-- %s ...(End)\n", __func__); return rc; }
int ov7692_effect_msm_sensor_s_ctrl_by_enum(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; effect_value = value; if (effect_value == CAMERA_EFFECT_OFF) { rc = msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->no_effect_settings, 0); if (rc < 0) { CDBG("write faield\n"); return rc; } msm_camera_i2c_write(s_ctrl->sensor_i2c_client, 0xda, SAT_U, MSM_CAMERA_I2C_BYTE_DATA); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, 0xdb, SAT_V, MSM_CAMERA_I2C_BYTE_DATA); } else { rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); } return rc; }
/* int hi351_effect_msm_sensor_s_ctrl_by_enum(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; pr_err("%s is called effect=%d\n", __func__, value); if (PREV_EFFECT == value || PREV_EFFECT == -1) { PREV_EFFECT = value; pr_err("%s: SKIP: EFFECT called previous value :%d\n", __func__,value); return rc; } PREV_EFFECT = value; if (PREV_EFFECT == CAMERA_EFFECT_OFF) { rc = msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->no_effect_settings, 0); if (rc < 0) { pr_err("%s: write faield\n", __FUNCTION__); return rc; } } else { rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); } return rc; } */ int hi351_msm_sensor_s_ctrl_by_enum(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; int retry = 0; pr_err("%s is called enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); switch(ctrl_info->ctrl_id) { case V4L2_CID_WHITE_BALANCE_TEMPERATURE: if(PREV_WB == value || PREV_WB == -1) { PREV_WB = value; pr_err("%s SKIP due to duplicate enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); return rc; }else { PREV_WB = value; } break; case V4L2_CID_SPECIAL_EFFECT: if(PREV_EFFECT == value || PREV_EFFECT == -1) { PREV_EFFECT = value; pr_err("%s SKIP due to duplicate enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); return rc; }else { PREV_EFFECT = value; } break; case MSM_V4L2_PID_ISO: if(PREV_ISO == value || PREV_ISO == -1) { PREV_ISO = value; pr_err("%s SKIP due to duplicate enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); return rc; }else { PREV_ISO = value; } break; case V4L2_CID_FPS_RANGE: if(PREV_FPS == value || PREV_FPS == -1) { PREV_FPS = value; pr_err("%s SKIP due to duplicate enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); return rc; }else { PREV_FPS = value; } break; case V4L2_CID_BESTSHOT_MODE: if(PREV_BESTSHOT == value || PREV_BESTSHOT == -1) { PREV_BESTSHOT = value; pr_err("%s SKIP due to duplicate enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); return rc; }else { PREV_BESTSHOT = value; } break; default: break; } for (retry = 0; retry < 3; ++retry) { rc = msm_sensor_write_enum_conf_array( s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); if (rc < 0) printk(KERN_ERR "[ERROR]%s:write failed for enum num: %d, value = %d, retry = %d\n", __func__, ctrl_info->ctrl_id, value, retry); else break; } pr_err("%s: write done for enum num: %d , value = %d\n", __func__, ctrl_info->ctrl_id, value); return rc; }
int s5k5ca_msm_sensor_s_ctrl_by_enum(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; //printk(" s5k5ca_msm_sensor_s_ctrl_by_enum() ctrl_id:%x value:%d\n",ctrl_info->ctrl_id,value); switch(ctrl_info->ctrl_id){ case V4L2_CID_SPECIAL_EFFECT: { switch(value){ case MSM_V4L2_EFFECT_SOLARIZE: case MSM_V4L2_EFFECT_POSTERAIZE: case MSM_V4L2_EFFECT_WHITEBOARD: case MSM_V4L2_EFFECT_BLACKBOARD: case MSM_V4L2_EFFECT_EMBOSS: case MSM_V4L2_EFFECT_NEON: return -EINVAL; } } break; case MSM_V4L2_PID_ISO: { } break; case V4L2_CID_POWER_LINE_FREQUENCY: { } break; case V4L2_CID_WHITE_BALANCE_TEMPERATURE: { if(value == MSM_V4L2_WB_CUSTOM){ return -EINVAL; } } break; case MSM_V4L2_PID_BEST_SHOT: { night_mode_flag=value; switch(value){ case msm_v4l2_best_shot_normal: value=0; break; case msm_v4l2_best_shot_landscape: value=1; break; case msm_v4l2_best_shot_sunset: value=2; break; case msm_v4l2_best_shot_night: value=3; break; case msm_v4l2_best_shot_portrait: value=4; break; case msm_v4l2_best_shot_sports: value=5; break; case msm_v4l2_best_shot_flowers: value=6; break; } } default: break; } rc = msm_sensor_write_enum_conf_array(s_ctrl->sensor_i2c_client, ctrl_info->enum_cfg_settings, value); return rc; }