/* Static function definition */ static long msm_sensor_driver_cmd(struct msm_sensor_init_t *s_init, void *arg) { int32_t rc = 0; struct sensor_init_cfg_data *cfg = (struct sensor_init_cfg_data *)arg; /* Validate input parameters */ if (!s_init || !cfg) { pr_err("failed: s_init %p cfg %p", s_init, cfg); return -EINVAL; } switch (cfg->cfgtype) { case CFG_SINIT_PROBE: pr_warn("%s : CFG_SINIT_PROBE", __func__); rc = msm_sensor_driver_probe(cfg->cfg.setting); if (rc < 0) pr_err("failed: msm_sensor_driver_probe rc %d", rc); break; default: pr_err("%s : default", __func__); break; } return rc; }
/* Static function definition */ static int32_t msm_sensor_driver_cmd(struct msm_sensor_init_t *s_init, void *arg) { int32_t rc = 0; struct sensor_init_cfg_data *cfg = (struct sensor_init_cfg_data *)arg; /* Validate input parameters */ if (!s_init || !cfg) { pr_err("failed: s_init %p cfg %p", s_init, cfg); return -EINVAL; } switch (cfg->cfgtype) { case CFG_SINIT_PROBE: #ifdef CONFIG_HUAWEI_DSM camera_is_in_probe = 1; #endif mutex_lock(&s_init->imutex); s_init->module_init_status = 0; rc = msm_sensor_driver_probe(cfg->cfg.setting, &cfg->probed_info, cfg->entity_name); mutex_unlock(&s_init->imutex); if (rc < 0) pr_err("failed: msm_sensor_driver_probe rc %d", rc); break; case CFG_SINIT_PROBE_DONE: s_init->module_init_status = 1; wake_up(&s_init->state_wait); #ifdef CONFIG_HUAWEI_DSM camera_is_in_probe = 0; #endif break; case CFG_SINIT_PROBE_WAIT_DONE: msm_sensor_wait_for_probe_done(s_init); break; /*use dtsi get sensor name instead of board id string*/ case CFG_SINIT_GET_HW_PRODUCT_NAME: rc = msm_get_probe_hw_product_name(cfg->cfg.setting); break; default: pr_err("default"); break; } return rc; }
/* Static function definition */ static int32_t msm_sensor_driver_cmd(struct msm_sensor_init_t *s_init, void *arg) { int32_t rc = 0; struct sensor_init_cfg_data *cfg = (struct sensor_init_cfg_data *)arg; /* Validate input parameters */ if (!s_init || !cfg) { pr_err("failed: s_init %p cfg %p", s_init, cfg); return -EINVAL; } switch (cfg->cfgtype) { case CFG_SINIT_PROBE: mutex_lock(&s_init->imutex); s_init->module_init_status = 0; rc = msm_sensor_driver_probe(cfg->cfg.setting); mutex_unlock(&s_init->imutex); if (rc < 0) pr_err("failed: msm_sensor_driver_probe rc %d", rc); break; case CFG_SINIT_PROBE_DONE: s_init->module_init_status = 1; wake_up(&s_init->state_wait); break; case CFG_SINIT_PROBE_WAIT_DONE: msm_sensor_wait_for_probe_done(s_init); break; default: pr_err("default"); break; } return rc; }