Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3d7ece9 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: sensor: Add flag for valid lens position"

parents 387d725e ee4ad1a6
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -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);
@@ -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;
@@ -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;
}
@@ -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;
}
@@ -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) ||
@@ -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;
@@ -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;
@@ -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;
@@ -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");
@@ -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;
}
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -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