int pn544_htc_get_bootmode(void) { char sbootmode[30] = "default"; #if NFC_GET_BOOTMODE strcpy(sbootmode,htc_get_bootmode()); #endif if (strcmp(sbootmode, "offmode_charging") == 0) { I("%s: Check bootmode done NFC_BOOT_MODE_OFF_MODE_CHARGING\n",__func__); return NFC_BOOT_MODE_OFF_MODE_CHARGING; } else if (strcmp(sbootmode, "ftm") == 0) { I("%s: Check bootmode done NFC_BOOT_MODE_FTM\n",__func__); return NFC_BOOT_MODE_FTM; } else if (strcmp(sbootmode, "download") == 0) { I("%s: Check bootmode done NFC_BOOT_MODE_DOWNLOAD\n",__func__); return NFC_BOOT_MODE_DOWNLOAD; } else { I("%s: Check bootmode done NFC_BOOT_MODE_NORMAL mode = %s\n",__func__,sbootmode); return NFC_BOOT_MODE_NORMAL; } }
int32_t ov2722_sub_sensor_config32(struct msm_sensor_ctrl_t *s_ctrl, void __user *argp) { struct sensorb_cfg_data32 *cdata = (struct sensorb_cfg_data32 *)argp; long rc = 0; switch (cdata->cfgtype) { case CFG_WRITE_I2C_ARRAY: { struct msm_camera_i2c_reg_setting32 conf_array32; struct msm_camera_i2c_reg_setting conf_array; struct msm_camera_i2c_reg_array *reg_setting = NULL; struct msm_camera_i2c_reg_array *reg_setting_temp = NULL; int start_stream = 0; mutex_lock(s_ctrl->msm_sensor_mutex); if (s_ctrl->sensor_state != MSM_SENSOR_POWER_UP) { pr_err("[CAM]-sub, %s:%d failed: invalid state %d\n", __func__, __LINE__, s_ctrl->sensor_state); rc = -EFAULT; break; } if (copy_from_user(&conf_array32, (void *)compat_ptr(cdata->cfg.setting), sizeof(struct msm_camera_i2c_reg_setting32))) { pr_err("[CAM]-sub, %s:%d failed\n", __func__, __LINE__); rc = -EFAULT; break; } conf_array.addr_type = conf_array32.addr_type; conf_array.data_type = conf_array32.data_type; conf_array.delay = conf_array32.delay; conf_array.size = conf_array32.size; conf_array.reg_setting = compat_ptr(conf_array32.reg_setting); if (!conf_array.size) { pr_err("[CAM]-sub, %s:%d failed\n", __func__, __LINE__); rc = -EFAULT; break; } reg_setting = kzalloc(conf_array.size * (sizeof(struct msm_camera_i2c_reg_array)), GFP_KERNEL); if (!reg_setting) { pr_err("[CAM]-sub, %s:%d failed\n", __func__, __LINE__); rc = -ENOMEM; break; } if (copy_from_user(reg_setting, (void *)(conf_array.reg_setting), conf_array.size * sizeof(struct msm_camera_i2c_reg_array))) { pr_err("[CAM]-sub, %s:%d failed\n", __func__, __LINE__); kfree(reg_setting); rc = -EFAULT; break; } conf_array.reg_setting = reg_setting; reg_setting_temp = reg_setting; if (reg_setting_temp->reg_addr == 0x0100 && reg_setting_temp->reg_data == 0x01) { g_subcam_SOF = 0; start_stream = 1; pr_info("[CAM]-sub, %s:start_stream = 1\n", __func__); } if (reg_setting_temp->reg_addr == 0x0100 && reg_setting_temp->reg_data == 0x00) { g_subcam_no_ack = 0; } rc = s_ctrl->sensor_i2c_client->i2c_func_tbl-> i2c_write_table(s_ctrl->sensor_i2c_client, &conf_array); kfree(reg_setting); if (start_stream == 1) { if (!strcmp(htc_get_bootmode(), "factory2")) pr_info("[CAM]-sub, %s: MFG skip ov2722_check_SOF\n", __func__); else rc = ov2722_check_SOF(s_ctrl); } mutex_unlock(s_ctrl->msm_sensor_mutex); break; } default: rc = msm_sensor_config32(s_ctrl, argp); break; } return rc; }