Loading drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c +12 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ static int32_t msm_actuator_piezo_set_default_focus( struct msm_camera_i2c_reg_setting reg_setting; CDBG("Enter\n"); if (a_ctrl->curr_step_pos != 0) { if (a_ctrl->curr_step_pos != 0 || !a_ctrl->valid_position) { a_ctrl->i2c_tbl_index = 0; a_ctrl->func_tbl->actuator_parse_i2c_params(a_ctrl, a_ctrl->initial_code, 0, 0); Loading @@ -62,6 +62,7 @@ static int32_t msm_actuator_piezo_set_default_focus( } a_ctrl->i2c_tbl_index = 0; a_ctrl->curr_step_pos = 0; a_ctrl->valid_position = 1; } CDBG("Exit\n"); return rc; Loading Loading @@ -190,6 +191,7 @@ static int32_t msm_actuator_init_focus(struct msm_actuator_ctrl_t *a_ctrl, } a_ctrl->curr_step_pos = 0; a_ctrl->valid_position = 0; CDBG("Exit\n"); return rc; } Loading Loading @@ -267,6 +269,7 @@ static int32_t msm_actuator_piezo_move_focus( } a_ctrl->i2c_tbl_index = 0; a_ctrl->curr_step_pos = dest_step_position; a_ctrl->valid_position = 1; CDBG("Exit\n"); return rc; } Loading Loading @@ -297,7 +300,7 @@ static int32_t msm_actuator_move_focus( CDBG("called, dir %d, num_steps %d\n", dir, num_steps); if (dest_step_pos == a_ctrl->curr_step_pos) if (dest_step_pos == a_ctrl->curr_step_pos && a_ctrl->valid_position) return rc; if ((sign_dir > MSM_ACTUATOR_MOVE_SIGNED_NEAR) || Loading Loading @@ -350,6 +353,7 @@ static int32_t msm_actuator_move_focus( a_ctrl->curr_region_index += sign_dir; } a_ctrl->curr_step_pos = target_step_pos; a_ctrl->valid_position = 1; } move_params->curr_lens_pos = curr_lens_pos; Loading Loading @@ -437,7 +441,7 @@ static int32_t msm_actuator_set_default_focus( int32_t rc = 0; CDBG("Enter\n"); if (a_ctrl->curr_step_pos != 0) if (a_ctrl->curr_step_pos != 0 || !a_ctrl->valid_position) rc = a_ctrl->func_tbl->actuator_move_focus(a_ctrl, move_params); CDBG("Exit\n"); return rc; Loading Loading @@ -491,6 +495,7 @@ static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl) a_ctrl->i2c_reg_tbl = NULL; a_ctrl->i2c_tbl_index = 0; a_ctrl->actuator_state = ACTUATOR_POWER_DOWN; a_ctrl->valid_position = 0; } CDBG("Exit\n"); return rc; Loading Loading @@ -660,6 +665,7 @@ static int32_t msm_actuator_set_param(struct msm_actuator_ctrl_t *a_ctrl, actuator_init_step_table(a_ctrl, set_info); a_ctrl->curr_step_pos = 0; a_ctrl->valid_position = 0; a_ctrl->curr_region_index = 0; a_ctrl->actuator_state = ACTUATOR_POWER_UP; CDBG("Exit\n"); Loading Loading @@ -975,6 +981,8 @@ static int32_t msm_actuator_power_up(struct msm_actuator_ctrl_t *a_ctrl) gpio_direction_output(a_ctrl->vcm_pwd, 1); } } a_ctrl->valid_position = 0; CDBG("Exit\n"); return rc; } Loading Loading @@ -1046,6 +1054,7 @@ static int32_t msm_actuator_i2c_probe(struct i2c_client *client, act_ctrl_t->i2c_driver = &msm_actuator_i2c_driver; act_ctrl_t->i2c_client.client = client; act_ctrl_t->curr_step_pos = 0, act_ctrl_t->valid_position = 0; act_ctrl_t->curr_region_index = 0, /* Set device type as I2C */ act_ctrl_t->act_device_type = MSM_CAMERA_I2C_DEVICE; Loading drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.h +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ struct msm_actuator_ctrl_t { uint32_t subdev_id; enum msm_actuator_state_t actuator_state; struct msm_actuator_vreg vreg_cfg; uint32_t valid_position; }; #endif Loading
drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c +12 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ static int32_t msm_actuator_piezo_set_default_focus( struct msm_camera_i2c_reg_setting reg_setting; CDBG("Enter\n"); if (a_ctrl->curr_step_pos != 0) { if (a_ctrl->curr_step_pos != 0 || !a_ctrl->valid_position) { a_ctrl->i2c_tbl_index = 0; a_ctrl->func_tbl->actuator_parse_i2c_params(a_ctrl, a_ctrl->initial_code, 0, 0); Loading @@ -62,6 +62,7 @@ static int32_t msm_actuator_piezo_set_default_focus( } a_ctrl->i2c_tbl_index = 0; a_ctrl->curr_step_pos = 0; a_ctrl->valid_position = 1; } CDBG("Exit\n"); return rc; Loading Loading @@ -190,6 +191,7 @@ static int32_t msm_actuator_init_focus(struct msm_actuator_ctrl_t *a_ctrl, } a_ctrl->curr_step_pos = 0; a_ctrl->valid_position = 0; CDBG("Exit\n"); return rc; } Loading Loading @@ -267,6 +269,7 @@ static int32_t msm_actuator_piezo_move_focus( } a_ctrl->i2c_tbl_index = 0; a_ctrl->curr_step_pos = dest_step_position; a_ctrl->valid_position = 1; CDBG("Exit\n"); return rc; } Loading Loading @@ -297,7 +300,7 @@ static int32_t msm_actuator_move_focus( CDBG("called, dir %d, num_steps %d\n", dir, num_steps); if (dest_step_pos == a_ctrl->curr_step_pos) if (dest_step_pos == a_ctrl->curr_step_pos && a_ctrl->valid_position) return rc; if ((sign_dir > MSM_ACTUATOR_MOVE_SIGNED_NEAR) || Loading Loading @@ -350,6 +353,7 @@ static int32_t msm_actuator_move_focus( a_ctrl->curr_region_index += sign_dir; } a_ctrl->curr_step_pos = target_step_pos; a_ctrl->valid_position = 1; } move_params->curr_lens_pos = curr_lens_pos; Loading Loading @@ -437,7 +441,7 @@ static int32_t msm_actuator_set_default_focus( int32_t rc = 0; CDBG("Enter\n"); if (a_ctrl->curr_step_pos != 0) if (a_ctrl->curr_step_pos != 0 || !a_ctrl->valid_position) rc = a_ctrl->func_tbl->actuator_move_focus(a_ctrl, move_params); CDBG("Exit\n"); return rc; Loading Loading @@ -491,6 +495,7 @@ static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl) a_ctrl->i2c_reg_tbl = NULL; a_ctrl->i2c_tbl_index = 0; a_ctrl->actuator_state = ACTUATOR_POWER_DOWN; a_ctrl->valid_position = 0; } CDBG("Exit\n"); return rc; Loading Loading @@ -660,6 +665,7 @@ static int32_t msm_actuator_set_param(struct msm_actuator_ctrl_t *a_ctrl, actuator_init_step_table(a_ctrl, set_info); a_ctrl->curr_step_pos = 0; a_ctrl->valid_position = 0; a_ctrl->curr_region_index = 0; a_ctrl->actuator_state = ACTUATOR_POWER_UP; CDBG("Exit\n"); Loading Loading @@ -975,6 +981,8 @@ static int32_t msm_actuator_power_up(struct msm_actuator_ctrl_t *a_ctrl) gpio_direction_output(a_ctrl->vcm_pwd, 1); } } a_ctrl->valid_position = 0; CDBG("Exit\n"); return rc; } Loading Loading @@ -1046,6 +1054,7 @@ static int32_t msm_actuator_i2c_probe(struct i2c_client *client, act_ctrl_t->i2c_driver = &msm_actuator_i2c_driver; act_ctrl_t->i2c_client.client = client; act_ctrl_t->curr_step_pos = 0, act_ctrl_t->valid_position = 0; act_ctrl_t->curr_region_index = 0, /* Set device type as I2C */ act_ctrl_t->act_device_type = MSM_CAMERA_I2C_DEVICE; Loading
drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.h +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ struct msm_actuator_ctrl_t { uint32_t subdev_id; enum msm_actuator_state_t actuator_state; struct msm_actuator_vreg vreg_cfg; uint32_t valid_position; }; #endif