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