int msm_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl) { int rc; struct msm_camera_power_ctrl_t *power_info; struct msm_camera_i2c_client *sensor_i2c_client; struct msm_camera_slave_info *slave_info; const char *sensor_name; uint32_t retry = 0; if (!s_ctrl) { pr_err("%s:%d failed: %p\n", __func__, __LINE__, s_ctrl); return -EINVAL; } power_info = &s_ctrl->sensordata->power_info; sensor_i2c_client = s_ctrl->sensor_i2c_client; slave_info = s_ctrl->sensordata->slave_info; sensor_name = s_ctrl->sensordata->sensor_name; if (!power_info || !sensor_i2c_client || !slave_info || !sensor_name) { pr_err("%s:%d failed: %p %p %p %p\n", __func__, __LINE__, power_info, sensor_i2c_client, slave_info, sensor_name); return -EINVAL; } if (s_ctrl->set_mclk_23880000) msm_sensor_adjust_mclk(power_info); for (retry = 0; retry < 3; retry++) { rc = msm_camera_power_up(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); if (rc < 0) return rc; rc = msm_sensor_check_id(s_ctrl); if (rc < 0) { msm_camera_power_down(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); msleep(20); continue; } else { break; } } return rc; }
int msm_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl) { int rc; struct msm_camera_power_ctrl_t *power_info; struct msm_camera_i2c_client *sensor_i2c_client; struct msm_camera_slave_info *slave_info; const char *sensor_name; #if defined(CONFIG_MACH_LGE) /* Add sensor On/Off log */ pr_info("%s E, sensor name = %s\n", __func__, s_ctrl->sensordata->sensor_name); #endif if (!s_ctrl) { pr_err("%s:%d failed: %p\n", __func__, __LINE__, s_ctrl); return -EINVAL; } power_info = &s_ctrl->sensordata->power_info; sensor_i2c_client = s_ctrl->sensor_i2c_client; slave_info = s_ctrl->sensordata->slave_info; sensor_name = s_ctrl->sensordata->sensor_name; if (!power_info || !sensor_i2c_client || !slave_info || !sensor_name) { pr_err("%s:%d failed: %p %p %p %p\n", __func__, __LINE__, power_info, sensor_i2c_client, slave_info, sensor_name); return -EINVAL; } rc = msm_camera_power_up(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); if (rc < 0) return rc; rc = msm_sensor_check_id(s_ctrl); if (rc < 0) msm_camera_power_down(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); #if defined(CONFIG_MACH_LGE) /* Add sensor On/Off log */ pr_info("%s X, sensor name = %s\n", __func__, s_ctrl->sensordata->sensor_name); #endif return rc; }
int msm_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl, struct msm_camera_power_ctrl_t *power_info, struct msm_camera_i2c_client *sensor_i2c_client, struct msm_camera_slave_info *slave_info, const char *sensor_name) { int rc; pr_err("%s\n", __func__); if (!s_ctrl || !power_info || !sensor_i2c_client || !slave_info || !sensor_name) { pr_err("%s:%d failed: %p %p %p %p %p\n", __func__, __LINE__, s_ctrl, power_info, sensor_i2c_client, slave_info, sensor_name); return -EINVAL; } if (s_ctrl->sensor_state == MSM_SENSOR_POWER_UP) { pr_err("%s:%d invalid sensor state %d\n", __func__, __LINE__, s_ctrl->sensor_state); return -EINVAL; } pr_warn("[%s:%d] %s", __func__, __LINE__, sensor_name); rc = msm_camera_power_up(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); if (rc < 0) { pr_err("%s : power up failed", __func__); return rc; } s_ctrl->sensor_state = MSM_SENSOR_POWER_UP; pr_err("%s: %d\n", __func__, s_ctrl->sensor_state); #if 1 rc = msm_sensor_check_id(s_ctrl, sensor_i2c_client, slave_info, sensor_name); // if (rc < 0) // msm_sensor_power_down(power_info, s_ctrl->sensor_device_type, // sensor_i2c_client); #endif return rc; }
int msm_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl) { int rc; struct msm_camera_power_ctrl_t *power_info; struct msm_camera_i2c_client *sensor_i2c_client; struct msm_camera_slave_info *slave_info; const char *sensor_name; if (!s_ctrl) { pr_err("%s:%d failed: %p\n", __func__, __LINE__, s_ctrl); return -EINVAL; } power_info = &s_ctrl->sensordata->power_info; sensor_i2c_client = s_ctrl->sensor_i2c_client; slave_info = s_ctrl->sensordata->slave_info; sensor_name = s_ctrl->sensordata->sensor_name; if (!power_info || !sensor_i2c_client || !slave_info || !sensor_name) { pr_err("%s:%d failed: %p %p %p %p\n", __func__, __LINE__, power_info, sensor_i2c_client, slave_info, sensor_name); return -EINVAL; } rc = msm_camera_power_up(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); if (rc < 0) return rc; rc = msm_sensor_check_id(s_ctrl); if (rc < 0) msm_camera_power_down(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); return rc; }
int msm_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl) { int rc; struct msm_camera_power_ctrl_t *power_info; struct msm_camera_i2c_client *sensor_i2c_client; struct msm_camera_slave_info *slave_info; const char *sensor_name; uint32_t retry = 0; /*LGE_CHANGE, power up retry, 2014-12-29, [email protected]*/ if (!s_ctrl) { pr_err("%s:%d failed: %p\n", __func__, __LINE__, s_ctrl); return -EINVAL; } power_info = &s_ctrl->sensordata->power_info; sensor_i2c_client = s_ctrl->sensor_i2c_client; slave_info = s_ctrl->sensordata->slave_info; sensor_name = s_ctrl->sensordata->sensor_name; if (!power_info || !sensor_i2c_client || !slave_info || !sensor_name) { pr_err("%s:%d failed: %p %p %p %p\n", __func__, __LINE__, power_info, sensor_i2c_client, slave_info, sensor_name); return -EINVAL; } /*LGE_CHANGE_S, power up retry, 2014-12-29, [email protected]*/ for (retry = 0; retry < 3; retry++) { /*LGE_CHANGE_E, power up retry, 2014-12-29, [email protected]*/ rc = msm_camera_power_up(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); if (rc < 0) return rc; rc = msm_sensor_check_id(s_ctrl); /*LGE_CHANGE_S, mipi end packet issue, 2013-10-15, [email protected]*/ if(strncmp(s_ctrl->sensordata->sensor_name, "hi707", strlen("hi707")) == 0) s_ctrl->isFirstStream = TRUE; /*LGE_CHANGE_E, mipi end packet issue, 2013-10-15, [email protected]*/ /*LGE_CHANGE_S, power up retry, 2014-12-29, [email protected]*/ #if 0 //QCT Original if (rc < 0) msm_camera_power_down(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); #else if (rc < 0) { msm_camera_power_down(power_info, s_ctrl->sensor_device_type, sensor_i2c_client); msleep(20); continue; } else { break; } } #endif /*LGE_CHANGE_E, power up retry, 2014-12-29, [email protected]*/ return rc; }