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

Commit da024dad authored by Xu Han's avatar Xu Han Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: Add actuator state



Add support to track actuator powerup/powerdown state.
Avoid powerdown twice.

Change-Id: I61a4e1b49c3798adb550febc591cbc6982524dfc
Signed-off-by: default avatarXu Han <hanxu@codeaurora.org>
parent 574c92ae
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -414,6 +414,7 @@ static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl)
{
	int32_t rc = 0;
	CDBG("Enter\n");
	if (a_ctrl->actuator_state != ACTUATOR_POWER_DOWN) {
		if (a_ctrl->vcm_enable) {
			rc = gpio_direction_output(a_ctrl->vcm_pwd, 0);
			if (!rc)
@@ -425,6 +426,8 @@ static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl)
		kfree(a_ctrl->i2c_reg_tbl);
		a_ctrl->i2c_reg_tbl = NULL;
		a_ctrl->i2c_tbl_index = 0;
		a_ctrl->actuator_state = ACTUATOR_POWER_DOWN;
	}
	CDBG("Exit\n");
	return rc;
}
@@ -552,6 +555,7 @@ static int32_t msm_actuator_init(struct msm_actuator_ctrl_t *a_ctrl,

	a_ctrl->curr_step_pos = 0;
	a_ctrl->curr_region_index = 0;
	a_ctrl->actuator_state = ACTUATOR_POWER_UP;
	CDBG("Exit\n");

	return rc;
+6 −0
Original line number Diff line number Diff line
@@ -24,6 +24,11 @@

struct msm_actuator_ctrl_t;

enum msm_actuator_state_t {
	ACTUATOR_POWER_UP,
	ACTUATOR_POWER_DOWN,
};

struct msm_actuator_func_tbl {
	int32_t (*actuator_i2c_write_b_af)(struct msm_actuator_ctrl_t *,
			uint8_t,
@@ -81,6 +86,7 @@ struct msm_actuator_ctrl_t {
	uint16_t i2c_tbl_index;
	enum cci_i2c_master_t cci_master;
	uint32_t subdev_id;
	enum msm_actuator_state_t actuator_state;
};

#endif