这篇教程C++ v4l2_subdev_notify函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中v4l2_subdev_notify函数的典型用法代码示例。如果您正苦于以下问题:C++ v4l2_subdev_notify函数的具体用法?C++ v4l2_subdev_notify怎么用?C++ v4l2_subdev_notify使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了v4l2_subdev_notify函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: msm_sensor_setting1int32_t msm_sensor_setting1(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; static int csi_config; s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msleep(30); if (update_type == MSM_SENSOR_REG_INIT) { printk("Register INIT/n"); s_ctrl->curr_csi_params = NULL; msm_sensor_enable_debugfs(s_ctrl); msm_sensor_write_init_settings(s_ctrl); if (NULL != s_ctrl->func_tbl->sensor_download_af_firmware) { pr_err("+++++download af firmware+++++++++++ %s /n",__func__); rc=s_ctrl->func_tbl->sensor_download_af_firmware(s_ctrl); if(!rc) { printk("%s:ov5640 AF FW download success/n",__func__); #ifdef CONFIG_OV5640 download_flag=1; //download success is 1 #endif } } csi_config = 0; } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { printk("PERIODIC : %d/n", res); printk("%s:sensor_name = %s, res = %d/n",__func__, s_ctrl->sensordata->sensor_name, res); msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->mode_settings, res); msleep(30); if (!csi_config) { s_ctrl->curr_csic_params = s_ctrl->csic_params[res]; printk("CSI config in progress/n"); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSIC_CFG, s_ctrl->curr_csic_params); printk("CSI config is done/n"); mb(); msleep(30); csi_config = 1; } v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->sensordata->pdata->ioclk.vfe_clk_rate); s_ctrl->func_tbl->sensor_start_stream(s_ctrl); msleep(50); } return rc;}
开发者ID:xdatravelbug,项目名称:N909D_Kernel_JB_4.1.2,代码行数:60,
示例2: hi542_sensor_settingint32_t hi542_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; static int csi_config; if (update_type == MSM_SENSOR_REG_INIT) { CDBG("Register INIT/n"); printk("##### %s line%d: Register INIT/n",__func__,__LINE__); s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msleep(66); s_ctrl->curr_csi_params = NULL; msm_sensor_enable_debugfs(s_ctrl); printk("##### %s line%d: begin to write init setting !/n",__func__,__LINE__); msm_sensor_write_init_settings(s_ctrl); printk("##### %s line%d: init setting end !/n",__func__,__LINE__); csi_config = 0; } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { CDBG("PERIODIC : %d/n", res); s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msleep(66); msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->mode_settings, res); msleep(100); if (!csi_config) { s_ctrl->curr_csic_params = s_ctrl->csic_params[res]; CDBG("CSI config in progress/n"); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSIC_CFG, s_ctrl->curr_csic_params); CDBG("CSI config is done/n"); mb(); msleep(30); csi_config = 1; } //zxj ++ #ifdef ORIGINAL_VERSION v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->sensordata->pdata->ioclk.vfe_clk_rate); #else printk("##### %s line%d: vfe_clk_rate = %d/n",__func__,__LINE__,vfe_clk_rate); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &vfe_clk_rate); #endif //zxj -- s_ctrl->func_tbl->sensor_start_stream(s_ctrl); msleep(100); } return rc;}
开发者ID:android-armv7a-belalang-tempur,项目名称:gp-peak-kernel,代码行数:54,
示例3: imx111_sensor_settingint32_t imx111_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; printk("%s: E: update_type=%d, res=%d/n", __func__, update_type, res); s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msleep(30); if (update_type == MSM_SENSOR_REG_INIT) { s_ctrl->curr_csi_params = NULL; msm_sensor_enable_debugfs(s_ctrl); msm_sensor_write_init_settings(s_ctrl); } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { if (res == 0) { msm_camera_i2c_write_tbl(s_ctrl->sensor_i2c_client, (struct msm_camera_i2c_reg_conf *) imx111_comm_confs[0].conf, imx111_comm_confs[0].size, imx111_comm_confs[0].data_type); } else { msm_sensor_write_res_settings(s_ctrl, res); if (s_ctrl->curr_csi_params != s_ctrl->csi_params[res]) { s_ctrl->curr_csi_params = s_ctrl->csi_params[res]; s_ctrl->curr_csi_params->csid_params.lane_assign = s_ctrl->sensordata->sensor_platform_info-> csi_lane_params->csi_lane_assign; s_ctrl->curr_csi_params->csiphy_params.lane_mask = s_ctrl->sensordata->sensor_platform_info-> csi_lane_params->csi_lane_mask; v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSID_CFG, &s_ctrl->curr_csi_params->csid_params); mb(); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSIPHY_CFG, &s_ctrl->curr_csi_params->csiphy_params); mb(); msleep(20); } v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->msm_sensor_reg-> output_settings[res].op_pixel_clk); s_ctrl->func_tbl->sensor_start_stream(s_ctrl); msleep(30); } } printk("%s: X", __func__); return rc;}
开发者ID:GameTheory-,项目名称:android_kernel_lge_l1v,代码行数:51,
示例4: msm_csid_irqstatic irqreturn_t msm_csid_irq(int irq_num, void *data){ uint32_t irq; struct csid_device *csid_dev = data; if (!csid_dev||!csid_dev->base) { pr_err("%s:%d csid_dev NULL/n", __func__, __LINE__); return IRQ_HANDLED; } irq = msm_camera_io_r(csid_dev->base + CSID_IRQ_STATUS_ADDR); CDBG("%s CSID%d_IRQ_STATUS_ADDR = 0x%x/n", __func__, csid_dev->pdev->id, irq); if (irq & (0x1 << CSID_RST_DONE_IRQ_BITSHIFT)) complete(&csid_dev->reset_complete); if (irq & CSID_IRQ_UNBOUNDED_FRAME_MASK) pr_err("%s - received CSID_IRQ_UNBOUNDED_FRAME_MASK!/n", __func__); if (irq & CSID_IRQ_STREAM_UNDERFLOW_MASK) { pr_err("%s - received CSID_IRQ_STREAM_UNDERFLOW_MASK!/n", __func__); v4l2_subdev_notify(&csid_dev->subdev, NOTIFY_CSID_STREAM_UNDERFLOW_ERROR, (void *)NULL); } if (irq & CSID_IRQ_ECC_MASK) { pr_err("%s - received CSID_IRQ_ECC_MASK!/n", __func__); v4l2_subdev_notify(&csid_dev->subdev, NOTIFY_CSID_ECC_ERROR, (void *)NULL); } if (irq & CSID_IRQ_CRC_MASK) { pr_err("%s - received CSID_IRQ_CRC_MASK!/n", __func__); v4l2_subdev_notify(&csid_dev->subdev, NOTIFY_CSID_CRC_ERROR, (void *)NULL); } if (irq & CSID_IRQ_PHY_DL_OVERFLOW_MASK) { pr_err("%s - received CSID_IRQ_PHY_DL_OVERFLOW_MASK!/n", __func__); v4l2_subdev_notify(&csid_dev->subdev, NOTIFY_CSID_PHY_DL_OVERFLOW_ERROR, (void *)NULL); } msm_camera_io_w(irq, csid_dev->base + CSID_IRQ_CLEAR_CMD_ADDR); return IRQ_HANDLED;}
开发者ID:kamarush,项目名称:caf_kernel_mm,代码行数:49,
示例5: hi351_sensor_settingint32_t hi351_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; static int csi_config; if (update_type == MSM_SENSOR_REG_INIT) {#if defined (LGE_CAMERA_ANTIBAND_50HZ) //Flicker 50Hz pr_err("Register INIT with Flicker 50Hz Mode/n");#else pr_err("Register INIT with Flicker 60Hz Mode/n");#endif s_ctrl->curr_csi_params = NULL; msm_sensor_enable_debugfs(s_ctrl); PREV_EFFECT = -1; PREV_ISO = -1; PREV_WB = -1; PREV_FPS = -1; PREV_BESTSHOT = -1; DELAY_START = 0; hi351_reg_init(s_ctrl); csi_config = 0; } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { pr_err("PERIODIC : %d/n", res); if (!csi_config) { s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msleep(20); s_ctrl->curr_csic_params = s_ctrl->csic_params[res]; pr_err("CSI config in progress/n"); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSIC_CFG, s_ctrl->curr_csic_params); pr_err("CSI config is done/n"); mb(); msleep(50); csi_config = 1; s_ctrl->func_tbl->sensor_start_stream(s_ctrl); } hi351_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->mode_settings, res); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->sensordata->pdata->ioclk.vfe_clk_rate); } return rc;}
开发者ID:F4uzan,项目名称:skernel_u0,代码行数:49,
示例6: s5k5ca_sensor_settingint32_t s5k5ca_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; printk("/n s5k5ca_sensor_setting() update_type:%d res:%d/n",update_type,res); if (update_type == MSM_SENSOR_REG_INIT) { //printk("PERIODIC : %d/n", res); s_ctrl->curr_csic_params = s_ctrl->csic_params[res]; //printk("CSI config in progress/n"); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSIC_CFG, s_ctrl->curr_csic_params); //printk("CSI config is done/n"); mb(); //printk("Register INIT/n"); s_ctrl->curr_csi_params = NULL; rc=msm_sensor_enable_debugfs(s_ctrl); if( rc!=0 ) printk("s5k5ca_sensor_setting()rc:%d",rc); rc=msm_sensor_write_init_settings(s_ctrl); if( rc!=0 ) printk("s5k5ca_sensor_setting()rc:%d",rc); } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { //CDBG("PERIODIC : %d/n", res); if((res==0) &&(night_mode_flag==msm_v4l2_best_shot_night)) { rc=msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, &s5k5ca_confs_night_mode[0], res); if( rc!=0 ) printk("s5k5ca_sensor_setting()rc:%d",rc); } else rc=msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->mode_settings, res); if( rc!=0 ) printk("s5k5ca_sensor_setting()rc:%d",rc); if (res == MSM_SENSOR_RES_4) v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &vfe_clk); } return rc;}
开发者ID:Zoldyck07,项目名称:android_kernel_sony_msm7x27a,代码行数:48,
示例7: ov5693_sensor_settingint32_t ov5693_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; if (update_type == MSM_SENSOR_REG_INIT) { s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); // Software reset msm_camera_i2c_write( s_ctrl->sensor_i2c_client, 0x103, 0x1, MSM_CAMERA_I2C_BYTE_DATA); msm_sensor_write_init_settings(s_ctrl); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, 0x100, 0x1, MSM_CAMERA_I2C_BYTE_DATA);#if 0 // from QCT Reference driver ov5693_read_opt(s_ctrl); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, 0x100, 0x0, MSM_CAMERA_I2C_BYTE_DATA);#endif } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { msm_sensor_write_res_settings(s_ctrl, res); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->msm_sensor_reg-> output_settings[res].op_pixel_clk); } return rc;}
开发者ID:ronasimi,项目名称:LGF180-Optimus-G-_Android_KK_v30a_Kernel,代码行数:32,
示例8: ov10820_sensor_settingstatic int32_t ov10820_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; if (update_type == MSM_SENSOR_REG_INIT) { s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msm_sensor_write_init_settings(s_ctrl); } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { if (ov660_exists) { rc = ov660_set_sensor_mode(res, revision); if (rc < 0) return rc; } rc = msm_sensor_write_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->mode_settings, res); if (rc < 0) return rc; v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->msm_sensor_reg-> output_settings[res].op_pixel_clk); } return rc;}
开发者ID:ReflexBow,项目名称:android_kernel_motorola_ghost,代码行数:25,
示例9: dw9714_get_otp_afint dw9714_get_otp_af(struct hisi_vcm_ctrl_t *vcm_ctrl, void *data){ struct vcm_cfg_data *cdata = (struct vcm_cfg_data *)data; struct hisi_sd_req_sd vcm_req_sd = {0}; char sd_name[DEV_NAME_SIZE]={0}; struct hisi_sensor_ctrl_t *s_ctrl; int rc = 0; cam_debug("%s enter.", __func__); snprintf(sd_name, sizeof(sd_name), "hisi_sensor_%d", vcm_ctrl->index); vcm_req_sd.name = sd_name; v4l2_subdev_notify(&vcm_ctrl->hisi_sd.sd, HISI_SD_NOTIFY_GET_SD, &vcm_req_sd); s_ctrl = container_of(container_of(vcm_req_sd.subdev, struct hisi_sd_subdev, sd), struct hisi_sensor_ctrl_t, hisi_sd); if (s_ctrl->sensor->sensor_otp.af_otp.af_otp_succeed) { cam_info("%s succeed to get otp af.", __func__); memcpy(&cdata->cfg.af_otp, &s_ctrl->sensor->sensor_otp.af_otp, sizeof(struct hisi_sensor_af_otp)); rc = 0; } else { cam_err("%s failed to get otp af.", __func__); memset(&cdata->cfg.af_otp, 0, sizeof(struct hisi_sensor_af_otp)); rc = -1; } return rc;}
开发者ID:Machiry,项目名称:android_kernel_huawei_hi6210sft,代码行数:29,
示例10: imx111_sensor_settingint32_t imx111_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res){ int32_t rc = 0; pr_err("[rafal47] %s: update: %d, res : %d : Change camera mode/n", __func__, update_type, res);// s_ctrl->func_tbl->sensor_stop_stream(s_ctrl);// msleep(30); if (update_type == MSM_SENSOR_REG_INIT) { msm_sensor_enable_debugfs(s_ctrl); msm_sensor_write_init_settings(s_ctrl); } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { if (res == 0) { msm_camera_i2c_write_tbl(s_ctrl->sensor_i2c_client, (struct msm_camera_i2c_reg_conf *) imx111_comm_confs[0].conf, imx111_comm_confs[0].size, imx111_comm_confs[0].data_type); printk("[tykim] %s: csi_lane_assign not setting/n", __func__); /* */ } else { msm_sensor_write_res_settings(s_ctrl, res); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->msm_sensor_reg-> output_settings[res].op_pixel_clk); } } printk("%s: X", __func__); return rc;}
开发者ID:Loller79,项目名称:Solid_Kernel-STOCK-KK-CAF,代码行数:28,
示例11: imx111_sensor_write_exp_gain1int32_t imx111_sensor_write_exp_gain1(struct msm_sensor_ctrl_t *s_ctrl, uint16_t gain, uint32_t line, int32_t luma_avg, uint16_t fgain){ uint32_t fl_lines; uint8_t offset; fl_lines = s_ctrl->curr_frame_length_lines; fl_lines = (fl_lines * s_ctrl->fps_divider) / Q10; offset = s_ctrl->sensor_exp_gain_info->vert_offset; if (line > (fl_lines - offset)) fl_lines = line + offset; CDBG("/n%s:Gain:%d, Linecount:%d/n", __func__, gain, line); if (s_ctrl->curr_res == 0) { msm_camera_i2c_write_tbl(s_ctrl->sensor_i2c_client, (struct msm_camera_i2c_reg_conf *) imx111_comm_confs[1].conf, imx111_comm_confs[1].size, imx111_comm_confs[1].data_type); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, s_ctrl->sensor_output_reg_addr->frame_length_lines, fl_lines, MSM_CAMERA_I2C_WORD_DATA); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, s_ctrl->sensor_exp_gain_info->coarse_int_time_addr, line, MSM_CAMERA_I2C_WORD_DATA); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, s_ctrl->sensor_exp_gain_info->global_gain_addr, gain, MSM_CAMERA_I2C_WORD_DATA); msm_camera_i2c_write_tbl(s_ctrl->sensor_i2c_client, (struct msm_camera_i2c_reg_conf *) imx111_comm_confs[2].conf, imx111_comm_confs[2].size, imx111_comm_confs[2].data_type); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->msm_sensor_reg-> output_settings[s_ctrl->curr_res].op_pixel_clk);// s_ctrl->func_tbl->sensor_start_stream(s_ctrl); } else { s_ctrl->func_tbl->sensor_group_hold_on(s_ctrl); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, s_ctrl->sensor_output_reg_addr->frame_length_lines, fl_lines, MSM_CAMERA_I2C_WORD_DATA); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, s_ctrl->sensor_exp_gain_info->coarse_int_time_addr, line, MSM_CAMERA_I2C_WORD_DATA); msm_camera_i2c_write(s_ctrl->sensor_i2c_client, s_ctrl->sensor_exp_gain_info->global_gain_addr, gain, MSM_CAMERA_I2C_WORD_DATA); s_ctrl->func_tbl->sensor_group_hold_off(s_ctrl); } return 0;}
开发者ID:Loller79,项目名称:Solid_Kernel-STOCK-KK-CAF,代码行数:56,
示例12: msm_sensor_setting1 |