int32_t ov5693_power_down(struct msm_sensor_ctrl_t *s_ctrl)
{
	int rc = 0;
	struct msm_camera_sensor_info *sdata = NULL;
	pr_info(" %s\n", __func__);

	if (s_ctrl && s_ctrl->sensordata)
		sdata = s_ctrl->sensordata;
	else {
		pr_err(" %s: s_ctrl sensordata NULL\n", __func__);
		return (-1);
	}

	if (sdata->camera_power_off == NULL) {
		pr_err(" %s: sensor platform_data didn't register\n", __func__);
		return -EIO;
	}

	rc = sdata->camera_power_off();
	if (rc < 0) {
		pr_err(" %s failed to disable power\n", __func__);
	}
	rc = msm_sensor_set_power_down(s_ctrl);
	if (rc < 0)
		pr_err("%s msm_sensor_power_down failed\n", __func__);

	if (!sdata->use_rawchip) {
		msm_camio_clk_disable(sdata,CAMIO_CAM_MCLK_CLK);
		if (rc < 0)
			pr_err(" %s: msm_camio_clk_disable failed:%d\n",
				 __func__, rc);
	}

	return rc;
}
Example #2
0
int32_t s5k6a2ya_power_down(struct msm_sensor_ctrl_t *s_ctrl)//(const struct msm_camera_sensor_info *sdata)
{
	int rc;
	struct msm_camera_sensor_info *sdata = NULL;
	pr_info("%s\n", __func__);

	if (s_ctrl && s_ctrl->sensordata)
		sdata = s_ctrl->sensordata;
	else {
		pr_err("%s: s_ctrl sensordata NULL\n", __func__);
		return (-1);
	}

	if (sdata->camera_power_off == NULL) {
		pr_err(" sensor platform_data didn't register\n");
		return -EIO;
	}
#ifndef CONFIG_DISABLE_MCLK_RAWCHIP_TO_MAINCAM
	if (!sdata->use_rawchip && (sdata->htc_image != HTC_CAMERA_IMAGE_YUSHANII_BOARD)) {
		rc = msm_camio_clk_disable(sdata,CAMIO_CAM_MCLK_CLK);
		if (rc < 0)
			pr_err("%s: msm_camio_clk_disable failed:%d\n",
				 __func__, rc);
	}
#else
	rc = msm_camio_clk_disable(sdata,CAMIO_CAM_MCLK_CLK);
	if (rc < 0)
		pr_err("%s: msm_camio_clk_disable failed:%d\n", __func__, rc);
#endif

#ifndef CONFIG_DISABLE_MCLK_RAWCHIP_TO_MAINCAM
	rc = msm_sensor_set_power_down(s_ctrl);//(sdata);
	if (rc < 0)
		pr_err("%s msm_sensor_power_down failed\n", __func__);
#endif

	rc = sdata->camera_power_off();
	if (rc < 0) {
		pr_err(" %s failed to disable power\n", __func__);
	}

	return rc;  /*msm_sensor_power_down(sdata);*/
}