1 #ifndef __UAPI_LINUX_MSM_CAM_SENSOR_H 2 #define __UAPI_LINUX_MSM_CAM_SENSOR_H 3 4 #include <linux/v4l2-mediabus.h> 5 #include <media/msm_camsensor_sdk.h> 6 7 #include <linux/types.h> 8 #include <linux/i2c.h> 9 10 #define I2C_SEQ_REG_SETTING_MAX 5 11 12 #define MSM_SENSOR_MCLK_8HZ 8000000 13 #define MSM_SENSOR_MCLK_16HZ 16000000 14 #define MSM_SENSOR_MCLK_24HZ 24000000 15 16 #define MAX_SENSOR_NAME 32 17 #define MAX_ACTUATOR_AF_TOTAL_STEPS 1024 18 19 #define MAX_OIS_MOD_NAME_SIZE 32 20 #define MAX_OIS_NAME_SIZE 32 21 #define MAX_OIS_REG_SETTINGS 800 22 23 #define MOVE_NEAR 0 24 #define MOVE_FAR 1 25 26 #define MSM_ACTUATOR_MOVE_SIGNED_FAR -1 27 #define MSM_ACTUATOR_MOVE_SIGNED_NEAR 1 28 29 #define MAX_ACTUATOR_REGION 5 30 31 #define MAX_EEPROM_NAME 32 32 33 #define MAX_AF_ITERATIONS 3 34 #define MAX_NUMBER_OF_STEPS 47 35 #define MAX_REGULATOR 5 36 37 /*msm_flash_query_data_t query types*/ 38 #define FLASH_QUERY_CURRENT 1 39 40 #define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */ 41 #define MSM_V4L2_PIX_FMT_META10 v4l2_fourcc('M', 'E', '1', '0') /* META10 */ 42 #define MSM_V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') 43 /* 14 BGBG.. GRGR.. */ 44 #define MSM_V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') 45 /* 14 GBGB.. RGRG.. */ 46 #define MSM_V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('B', 'A', '1', '4') 47 /* 14 GRGR.. BGBG.. */ 48 #define MSM_V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') 49 /* 14 RGRG.. GBGB.. */ 50 51 enum flash_type { 52 LED_FLASH = 1, 53 STROBE_FLASH, 54 GPIO_FLASH 55 }; 56 57 enum msm_sensor_resolution_t { 58 MSM_SENSOR_RES_FULL, 59 MSM_SENSOR_RES_QTR, 60 MSM_SENSOR_RES_2, 61 MSM_SENSOR_RES_3, 62 MSM_SENSOR_RES_4, 63 MSM_SENSOR_RES_5, 64 MSM_SENSOR_RES_6, 65 MSM_SENSOR_RES_7, 66 MSM_SENSOR_INVALID_RES, 67 }; 68 69 enum msm_camera_stream_type_t { 70 MSM_CAMERA_STREAM_PREVIEW, 71 MSM_CAMERA_STREAM_SNAPSHOT, 72 MSM_CAMERA_STREAM_VIDEO, 73 MSM_CAMERA_STREAM_INVALID, 74 }; 75 76 enum sensor_sub_module_t { 77 SUB_MODULE_SENSOR, 78 SUB_MODULE_CHROMATIX, 79 SUB_MODULE_ACTUATOR, 80 SUB_MODULE_EEPROM, 81 SUB_MODULE_LED_FLASH, 82 SUB_MODULE_STROBE_FLASH, 83 SUB_MODULE_CSID, 84 SUB_MODULE_CSID_3D, 85 SUB_MODULE_CSIPHY, 86 SUB_MODULE_CSIPHY_3D, 87 SUB_MODULE_OIS, 88 SUB_MODULE_EXT, 89 SUB_MODULE_IR_LED, 90 SUB_MODULE_IR_CUT, 91 SUB_MODULE_LASER_LED, 92 SUB_MODULE_MAX, 93 }; 94 95 enum { 96 MSM_CAMERA_EFFECT_MODE_OFF, 97 MSM_CAMERA_EFFECT_MODE_MONO, 98 MSM_CAMERA_EFFECT_MODE_NEGATIVE, 99 MSM_CAMERA_EFFECT_MODE_SOLARIZE, 100 MSM_CAMERA_EFFECT_MODE_SEPIA, 101 MSM_CAMERA_EFFECT_MODE_POSTERIZE, 102 MSM_CAMERA_EFFECT_MODE_WHITEBOARD, 103 MSM_CAMERA_EFFECT_MODE_BLACKBOARD, 104 MSM_CAMERA_EFFECT_MODE_AQUA, 105 MSM_CAMERA_EFFECT_MODE_EMBOSS, 106 MSM_CAMERA_EFFECT_MODE_SKETCH, 107 MSM_CAMERA_EFFECT_MODE_NEON, 108 MSM_CAMERA_EFFECT_MODE_MAX 109 }; 110 111 enum { 112 MSM_CAMERA_WB_MODE_AUTO, 113 MSM_CAMERA_WB_MODE_CUSTOM, 114 MSM_CAMERA_WB_MODE_INCANDESCENT, 115 MSM_CAMERA_WB_MODE_FLUORESCENT, 116 MSM_CAMERA_WB_MODE_WARM_FLUORESCENT, 117 MSM_CAMERA_WB_MODE_DAYLIGHT, 118 MSM_CAMERA_WB_MODE_CLOUDY_DAYLIGHT, 119 MSM_CAMERA_WB_MODE_TWILIGHT, 120 MSM_CAMERA_WB_MODE_SHADE, 121 MSM_CAMERA_WB_MODE_OFF, 122 MSM_CAMERA_WB_MODE_MAX 123 }; 124 125 enum { 126 MSM_CAMERA_SCENE_MODE_OFF, 127 MSM_CAMERA_SCENE_MODE_AUTO, 128 MSM_CAMERA_SCENE_MODE_LANDSCAPE, 129 MSM_CAMERA_SCENE_MODE_SNOW, 130 MSM_CAMERA_SCENE_MODE_BEACH, 131 MSM_CAMERA_SCENE_MODE_SUNSET, 132 MSM_CAMERA_SCENE_MODE_NIGHT, 133 MSM_CAMERA_SCENE_MODE_PORTRAIT, 134 MSM_CAMERA_SCENE_MODE_BACKLIGHT, 135 MSM_CAMERA_SCENE_MODE_SPORTS, 136 MSM_CAMERA_SCENE_MODE_ANTISHAKE, 137 MSM_CAMERA_SCENE_MODE_FLOWERS, 138 MSM_CAMERA_SCENE_MODE_CANDLELIGHT, 139 MSM_CAMERA_SCENE_MODE_FIREWORKS, 140 MSM_CAMERA_SCENE_MODE_PARTY, 141 MSM_CAMERA_SCENE_MODE_NIGHT_PORTRAIT, 142 MSM_CAMERA_SCENE_MODE_THEATRE, 143 MSM_CAMERA_SCENE_MODE_ACTION, 144 MSM_CAMERA_SCENE_MODE_AR, 145 MSM_CAMERA_SCENE_MODE_FACE_PRIORITY, 146 MSM_CAMERA_SCENE_MODE_BARCODE, 147 MSM_CAMERA_SCENE_MODE_HDR, 148 MSM_CAMERA_SCENE_MODE_MAX 149 }; 150 151 enum csid_cfg_type_t { 152 CSID_INIT, 153 CSID_CFG, 154 CSID_TESTMODE_CFG, 155 CSID_RELEASE, 156 }; 157 158 enum csiphy_cfg_type_t { 159 CSIPHY_INIT, 160 CSIPHY_CFG, 161 CSIPHY_RELEASE, 162 }; 163 164 enum camera_vreg_type { 165 VREG_TYPE_DEFAULT, 166 VREG_TYPE_CUSTOM, 167 }; 168 169 enum sensor_af_t { 170 SENSOR_AF_FOCUSSED, 171 SENSOR_AF_NOT_FOCUSSED, 172 }; 173 174 enum cci_i2c_master_t { 175 MASTER_0, 176 MASTER_1, 177 MASTER_MAX, 178 }; 179 180 struct msm_camera_i2c_array_write_config { 181 struct msm_camera_i2c_reg_setting conf_array; 182 uint16_t slave_addr; 183 }; 184 185 struct msm_camera_i2c_read_config { 186 uint16_t slave_addr; 187 uint16_t reg_addr; 188 enum msm_camera_i2c_reg_addr_type addr_type; 189 enum msm_camera_i2c_data_type data_type; 190 uint16_t data; 191 }; 192 193 struct msm_camera_csi2_params { 194 struct msm_camera_csid_params csid_params; 195 struct msm_camera_csiphy_params csiphy_params; 196 uint8_t csi_clk_scale_enable; 197 }; 198 199 struct msm_camera_csi_lane_params { 200 uint16_t csi_lane_assign; 201 uint16_t csi_lane_mask; 202 }; 203 204 struct csi_lane_params_t { 205 uint16_t csi_lane_assign; 206 uint8_t csi_lane_mask; 207 uint8_t csi_if; 208 int8_t csid_core[2]; 209 uint8_t csi_phy_sel; 210 }; 211 212 struct msm_sensor_info_t { 213 char sensor_name[MAX_SENSOR_NAME]; 214 uint32_t session_id; 215 int32_t subdev_id[SUB_MODULE_MAX]; 216 int32_t subdev_intf[SUB_MODULE_MAX]; 217 uint8_t is_mount_angle_valid; 218 uint32_t sensor_mount_angle; 219 int modes_supported; 220 enum camb_position_t position; 221 }; 222 223 struct camera_vreg_t { 224 const char *reg_name; 225 int min_voltage; 226 int max_voltage; 227 int op_mode; 228 uint32_t delay; 229 const char *custom_vreg_name; 230 enum camera_vreg_type type; 231 }; 232 233 struct sensorb_cfg_data { 234 int cfgtype; 235 union { 236 struct msm_sensor_info_t sensor_info; 237 struct msm_sensor_init_params sensor_init_params; 238 void *setting; 239 struct msm_sensor_i2c_sync_params sensor_i2c_sync_params; 240 } cfg; 241 }; 242 243 struct csid_cfg_data { 244 enum csid_cfg_type_t cfgtype; 245 union { 246 uint32_t csid_version; 247 struct msm_camera_csid_params *csid_params; 248 struct msm_camera_csid_testmode_parms *csid_testmode_params; 249 } cfg; 250 }; 251 252 struct csiphy_cfg_data { 253 enum csiphy_cfg_type_t cfgtype; 254 union { 255 struct msm_camera_csiphy_params *csiphy_params; 256 struct msm_camera_csi_lane_params *csi_lane_params; 257 } cfg; 258 }; 259 260 enum eeprom_cfg_type_t { 261 CFG_EEPROM_GET_INFO, 262 CFG_EEPROM_GET_CAL_DATA, 263 CFG_EEPROM_READ_CAL_DATA, 264 CFG_EEPROM_WRITE_DATA, 265 CFG_EEPROM_GET_MM_INFO, 266 CFG_EEPROM_INIT, 267 }; 268 269 struct eeprom_get_t { 270 uint32_t num_bytes; 271 }; 272 273 struct eeprom_read_t { 274 uint8_t *dbuffer; 275 uint32_t num_bytes; 276 }; 277 278 struct eeprom_write_t { 279 uint8_t *dbuffer; 280 uint32_t num_bytes; 281 }; 282 283 struct eeprom_get_cmm_t { 284 uint32_t cmm_support; 285 uint32_t cmm_compression; 286 uint32_t cmm_size; 287 }; 288 289 struct msm_eeprom_info_t { 290 struct msm_sensor_power_setting_array *power_setting_array; 291 enum i2c_freq_mode_t i2c_freq_mode; 292 struct msm_eeprom_memory_map_array *mem_map_array; 293 }; 294 295 struct msm_ir_led_cfg_data_t { 296 enum msm_ir_led_cfg_type_t cfg_type; 297 int32_t pwm_duty_on_ns; 298 int32_t pwm_period_ns; 299 }; 300 301 struct msm_ir_cut_cfg_data_t { 302 enum msm_ir_cut_cfg_type_t cfg_type; 303 }; 304 305 struct msm_laser_led_cfg_data_t { 306 enum msm_laser_led_cfg_type_t cfg_type; 307 void *setting; 308 void *debug_reg; 309 uint32_t debug_reg_size; 310 uint16_t i2c_addr; 311 enum i2c_freq_mode_t i2c_freq_mode; 312 }; 313 314 struct msm_eeprom_cfg_data { 315 enum eeprom_cfg_type_t cfgtype; 316 uint8_t is_supported; 317 union { 318 char eeprom_name[MAX_EEPROM_NAME]; 319 struct eeprom_get_t get_data; 320 struct eeprom_read_t read_data; 321 struct eeprom_write_t write_data; 322 struct eeprom_get_cmm_t get_cmm_data; 323 struct msm_eeprom_info_t eeprom_info; 324 } cfg; 325 }; 326 327 enum msm_sensor_cfg_type_t { 328 CFG_SET_SLAVE_INFO, 329 CFG_SLAVE_READ_I2C, 330 CFG_WRITE_I2C_ARRAY, 331 CFG_SLAVE_WRITE_I2C_ARRAY, 332 CFG_WRITE_I2C_SEQ_ARRAY, 333 CFG_POWER_UP, 334 CFG_POWER_DOWN, 335 CFG_SET_STOP_STREAM_SETTING, 336 CFG_GET_SENSOR_INFO, 337 CFG_GET_SENSOR_INIT_PARAMS, 338 CFG_SET_INIT_SETTING, 339 CFG_SET_RESOLUTION, 340 CFG_SET_STOP_STREAM, 341 CFG_SET_START_STREAM, 342 CFG_SET_SATURATION, 343 CFG_SET_CONTRAST, 344 CFG_SET_SHARPNESS, 345 CFG_SET_ISO, 346 CFG_SET_EXPOSURE_COMPENSATION, 347 CFG_SET_ANTIBANDING, 348 CFG_SET_BESTSHOT_MODE, 349 CFG_SET_EFFECT, 350 CFG_SET_WHITE_BALANCE, 351 CFG_SET_AUTOFOCUS, 352 CFG_CANCEL_AUTOFOCUS, 353 CFG_SET_STREAM_TYPE, 354 CFG_SET_I2C_SYNC_PARAM, 355 CFG_WRITE_I2C_ARRAY_ASYNC, 356 CFG_WRITE_I2C_ARRAY_SYNC, 357 CFG_WRITE_I2C_ARRAY_SYNC_BLOCK, 358 }; 359 360 enum msm_actuator_cfg_type_t { 361 CFG_GET_ACTUATOR_INFO, 362 CFG_SET_ACTUATOR_INFO, 363 CFG_SET_DEFAULT_FOCUS, 364 CFG_MOVE_FOCUS, 365 CFG_SET_POSITION, 366 CFG_ACTUATOR_POWERDOWN, 367 CFG_ACTUATOR_POWERUP, 368 CFG_ACTUATOR_INIT, 369 }; 370 371 struct msm_ois_opcode { 372 uint32_t prog; 373 uint32_t coeff; 374 uint32_t pheripheral; 375 uint32_t memory; 376 }; 377 378 enum msm_ois_cfg_type_t { 379 CFG_OIS_INIT, 380 CFG_OIS_POWERDOWN, 381 CFG_OIS_POWERUP, 382 CFG_OIS_CONTROL, 383 CFG_OIS_I2C_WRITE_SEQ_TABLE, 384 }; 385 386 enum msm_ois_cfg_download_type_t { 387 CFG_OIS_DOWNLOAD, 388 CFG_OIS_DATA_CONFIG, 389 }; 390 391 enum msm_ois_i2c_operation { 392 MSM_OIS_WRITE = 0, 393 MSM_OIS_POLL, 394 MSM_OIS_READ, 395 }; 396 #define MSM_OIS_READ MSM_OIS_READ 397 398 struct reg_settings_ois_t { 399 uint16_t reg_addr; 400 enum msm_camera_i2c_reg_addr_type addr_type; 401 uint32_t reg_data; 402 enum msm_camera_i2c_data_type data_type; 403 enum msm_ois_i2c_operation i2c_operation; 404 uint32_t delay; 405 }; 406 407 struct msm_ois_params_t { 408 uint16_t data_size; 409 uint16_t setting_size; 410 uint32_t i2c_addr; 411 enum i2c_freq_mode_t i2c_freq_mode; 412 enum msm_camera_i2c_reg_addr_type i2c_addr_type; 413 enum msm_camera_i2c_data_type i2c_data_type; 414 struct reg_settings_ois_t *settings; 415 }; 416 417 struct msm_ois_set_info_t { 418 struct msm_ois_params_t ois_params; 419 }; 420 421 struct msm_actuator_move_params_t { 422 int8_t dir; 423 int8_t sign_dir; 424 int16_t dest_step_pos; 425 int32_t num_steps; 426 uint16_t curr_lens_pos; 427 struct damping_params_t *ringing_params; 428 }; 429 430 struct msm_actuator_tuning_params_t { 431 int16_t initial_code; 432 uint16_t pwd_step; 433 uint16_t region_size; 434 uint32_t total_steps; 435 struct region_params_t *region_params; 436 }; 437 438 struct park_lens_data_t { 439 uint32_t damping_step; 440 uint32_t damping_delay; 441 uint32_t hw_params; 442 uint32_t max_step; 443 }; 444 445 struct msm_actuator_params_t { 446 enum actuator_type act_type; 447 uint8_t reg_tbl_size; 448 uint16_t data_size; 449 uint16_t init_setting_size; 450 uint32_t i2c_addr; 451 enum i2c_freq_mode_t i2c_freq_mode; 452 enum msm_camera_i2c_reg_addr_type i2c_addr_type; 453 enum msm_camera_i2c_data_type i2c_data_type; 454 struct msm_actuator_reg_params_t *reg_tbl_params; 455 struct reg_settings_t *init_settings; 456 struct park_lens_data_t park_lens; 457 }; 458 459 struct msm_actuator_set_info_t { 460 struct msm_actuator_params_t actuator_params; 461 struct msm_actuator_tuning_params_t af_tuning_params; 462 }; 463 464 struct msm_actuator_get_info_t { 465 uint32_t focal_length_num; 466 uint32_t focal_length_den; 467 uint32_t f_number_num; 468 uint32_t f_number_den; 469 uint32_t f_pix_num; 470 uint32_t f_pix_den; 471 uint32_t total_f_dist_num; 472 uint32_t total_f_dist_den; 473 uint32_t hor_view_angle_num; 474 uint32_t hor_view_angle_den; 475 uint32_t ver_view_angle_num; 476 uint32_t ver_view_angle_den; 477 }; 478 479 enum af_camera_name { 480 ACTUATOR_MAIN_CAM_0, 481 ACTUATOR_MAIN_CAM_1, 482 ACTUATOR_MAIN_CAM_2, 483 ACTUATOR_MAIN_CAM_3, 484 ACTUATOR_MAIN_CAM_4, 485 ACTUATOR_MAIN_CAM_5, 486 ACTUATOR_WEB_CAM_0, 487 ACTUATOR_WEB_CAM_1, 488 ACTUATOR_WEB_CAM_2, 489 }; 490 491 struct msm_ois_slave_info { 492 char ois_name[MAX_OIS_NAME_SIZE]; 493 uint32_t i2c_addr; 494 struct msm_ois_opcode opcode; 495 }; 496 struct msm_ois_cfg_data { 497 int cfgtype; 498 union { 499 struct msm_ois_set_info_t set_info; 500 struct msm_camera_i2c_seq_reg_setting *settings; 501 } cfg; 502 }; 503 504 struct msm_ois_cfg_download_data { 505 int cfgtype; 506 struct msm_ois_slave_info slave_info; 507 }; 508 509 struct msm_actuator_set_position_t { 510 uint16_t number_of_steps; 511 uint32_t hw_params; 512 uint16_t pos[MAX_NUMBER_OF_STEPS]; 513 uint16_t delay[MAX_NUMBER_OF_STEPS]; 514 }; 515 516 struct msm_actuator_cfg_data { 517 int cfgtype; 518 uint8_t is_af_supported; 519 union { 520 struct msm_actuator_move_params_t move; 521 struct msm_actuator_set_info_t set_info; 522 struct msm_actuator_get_info_t get_info; 523 struct msm_actuator_set_position_t setpos; 524 enum af_camera_name cam_name; 525 } cfg; 526 }; 527 528 enum msm_camera_led_config_t { 529 MSM_CAMERA_LED_OFF, 530 MSM_CAMERA_LED_LOW, 531 MSM_CAMERA_LED_HIGH, 532 MSM_CAMERA_LED_INIT, 533 MSM_CAMERA_LED_RELEASE, 534 }; 535 536 struct msm_camera_led_cfg_t { 537 enum msm_camera_led_config_t cfgtype; 538 int32_t torch_current[MAX_LED_TRIGGERS]; 539 int32_t flash_current[MAX_LED_TRIGGERS]; 540 int32_t flash_duration[MAX_LED_TRIGGERS]; 541 }; 542 543 struct msm_flash_init_info_t { 544 enum msm_flash_driver_type flash_driver_type; 545 uint32_t slave_addr; 546 enum i2c_freq_mode_t i2c_freq_mode; 547 struct msm_sensor_power_setting_array *power_setting_array; 548 struct msm_camera_i2c_reg_setting_array *settings; 549 }; 550 551 struct msm_flash_cfg_data_t { 552 enum msm_flash_cfg_type_t cfg_type; 553 int32_t flash_current[MAX_LED_TRIGGERS]; 554 int32_t flash_duration[MAX_LED_TRIGGERS]; 555 union { 556 struct msm_flash_init_info_t *flash_init_info; 557 struct msm_camera_i2c_reg_setting_array *settings; 558 } cfg; 559 }; 560 561 struct msm_flash_query_data_t { 562 int32_t flags; 563 int32_t query_type; 564 int32_t max_avail_curr; 565 }; 566 567 /* sensor init structures and enums */ 568 enum msm_sensor_init_cfg_type_t { 569 CFG_SINIT_PROBE, 570 CFG_SINIT_PROBE_DONE, 571 CFG_SINIT_PROBE_WAIT_DONE, 572 }; 573 574 struct sensor_init_cfg_data { 575 enum msm_sensor_init_cfg_type_t cfgtype; 576 struct msm_sensor_info_t probed_info; 577 char entity_name[MAX_SENSOR_NAME]; 578 union { 579 void *setting; 580 } cfg; 581 }; 582 583 #define VIDIOC_MSM_SENSOR_CFG \ 584 _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data) 585 586 #define VIDIOC_MSM_SENSOR_RELEASE \ 587 _IO('V', BASE_VIDIOC_PRIVATE + 2) 588 589 #define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID \ 590 _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t) 591 592 #define VIDIOC_MSM_CSIPHY_IO_CFG \ 593 _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data) 594 595 #define VIDIOC_MSM_CSID_IO_CFG \ 596 _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data) 597 598 #define VIDIOC_MSM_ACTUATOR_CFG \ 599 _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data) 600 601 #define VIDIOC_MSM_FLASH_LED_DATA_CFG \ 602 _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t) 603 604 #define VIDIOC_MSM_EEPROM_CFG \ 605 _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data) 606 607 #define VIDIOC_MSM_SENSOR_GET_AF_STATUS \ 608 _IOWR('V', BASE_VIDIOC_PRIVATE + 9, uint32_t) 609 610 #define VIDIOC_MSM_SENSOR_INIT_CFG \ 611 _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct sensor_init_cfg_data) 612 613 #define VIDIOC_MSM_OIS_CFG \ 614 _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_ois_cfg_data) 615 616 #define VIDIOC_MSM_FLASH_CFG \ 617 _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_flash_cfg_data_t) 618 619 #define VIDIOC_MSM_OIS_CFG_DOWNLOAD \ 620 _IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_ois_cfg_download_data) 621 622 #define VIDIOC_MSM_FLASH_QUERY_DATA \ 623 _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_flash_query_data_t) 624 625 #define VIDIOC_MSM_IR_LED_CFG \ 626 _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_ir_led_cfg_data_t) 627 628 #define VIDIOC_MSM_IR_CUT_CFG \ 629 _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_ir_cut_cfg_data_t) 630 631 #define VIDIOC_MSM_LASER_LED_CFG \ 632 _IOWR('V', BASE_VIDIOC_PRIVATE + 16, struct msm_laser_led_cfg_data_t) 633 634 #endif 635 636