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

Commit f6283b73 authored by Vasko Kalanoski's avatar Vasko Kalanoski Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: Make sure the init happens before release in actuator



Add conditional checks to make sure that init happens before
release operation in actuator and ois drivers.

Change-Id: Icabce32ab67d577a068dfd2e2f6fc70bcf73fa3e
Signed-off-by: default avatarVasko Kalanoski <vaskok@codeaurora.org>
parent b940677f
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -736,7 +736,7 @@ static int32_t msm_actuator_park_lens(struct msm_actuator_ctrl_t *a_ctrl)
		(!a_ctrl->func_tbl->actuator_parse_i2c_params)) {
		pr_err("%s:%d Failed to park lens.\n",
			__func__, __LINE__);
		return 0;
		return -EFAULT;
	}

	if (a_ctrl->park_lens.max_step > a_ctrl->max_code_size)
@@ -1366,7 +1366,8 @@ static int msm_actuator_close(struct v4l2_subdev *sd,
	int rc = 0;
	struct msm_actuator_ctrl_t *a_ctrl =  v4l2_get_subdevdata(sd);
	CDBG("Enter\n");
	if (!a_ctrl) {
	if (!a_ctrl || !a_ctrl->i2c_client.i2c_func_tbl) {
		/* check to make sure that init happens before release */
		pr_err("failed\n");
		return -EINVAL;
	}
@@ -1400,8 +1401,12 @@ static long msm_actuator_subdev_ioctl(struct v4l2_subdev *sd,
	case VIDIOC_MSM_ACTUATOR_CFG:
		return msm_actuator_config(a_ctrl, argp);
	case MSM_SD_SHUTDOWN:
		msm_actuator_close(sd, NULL);
		return 0;
		if (!a_ctrl->i2c_client.i2c_func_tbl) {
			pr_err("a_ctrl->i2c_client.i2c_func_tbl NULL\n");
			return -EINVAL;
		} else {
			return msm_actuator_close(sd, NULL);
		}
	default:
		return -ENOIOCTLCMD;
	}
+8 −3
Original line number Diff line number Diff line
@@ -383,7 +383,8 @@ static int msm_ois_close(struct v4l2_subdev *sd,
	int rc = 0;
	struct msm_ois_ctrl_t *o_ctrl =  v4l2_get_subdevdata(sd);
	CDBG("Enter\n");
	if (!o_ctrl) {
	if (!o_ctrl || !o_ctrl->i2c_client.i2c_func_tbl) {
		/* check to make sure that init happens before release */
		pr_err("failed\n");
		return -EINVAL;
	}
@@ -415,8 +416,12 @@ static long msm_ois_subdev_ioctl(struct v4l2_subdev *sd,
	case VIDIOC_MSM_OIS_CFG:
		return msm_ois_config(o_ctrl, argp);
	case MSM_SD_SHUTDOWN:
		msm_ois_close(sd, NULL);
		return 0;
		if (!o_ctrl->i2c_client.i2c_func_tbl) {
			pr_err("o_ctrl->i2c_client.i2c_func_tbl NULL\n");
			return -EINVAL;
		} else {
			return msm_ois_close(sd, NULL);
		}
	default:
		return -ENOIOCTLCMD;
	}