Home | History | Annotate | Download | only in media
      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  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef __LINUX_MSM_CAMERA_H
     13 #define __LINUX_MSM_CAMERA_H
     14 
     15 #include <linux/types.h>
     16 #include <asm/sizes.h>
     17 #include <linux/ioctl.h>
     18 
     19 #define MSM_CAM_IOCTL_MAGIC 'm'
     20 
     21 #define MSM_CAM_IOCTL_GET_SENSOR_INFO   _IOR(MSM_CAM_IOCTL_MAGIC, 1, struct msm_camsensor_info *)
     22 
     23 #define MSM_CAM_IOCTL_REGISTER_PMEM   _IOW(MSM_CAM_IOCTL_MAGIC, 2, struct msm_pmem_info *)
     24 
     25 #define MSM_CAM_IOCTL_UNREGISTER_PMEM   _IOW(MSM_CAM_IOCTL_MAGIC, 3, unsigned)
     26 
     27 #define MSM_CAM_IOCTL_CTRL_COMMAND   _IOW(MSM_CAM_IOCTL_MAGIC, 4, struct msm_ctrl_cmd *)
     28 
     29 #define MSM_CAM_IOCTL_CONFIG_VFE   _IOW(MSM_CAM_IOCTL_MAGIC, 5, struct msm_camera_vfe_cfg_cmd *)
     30 
     31 #define MSM_CAM_IOCTL_GET_STATS   _IOR(MSM_CAM_IOCTL_MAGIC, 6, struct msm_camera_stats_event_ctrl *)
     32 
     33 #define MSM_CAM_IOCTL_GETFRAME   _IOR(MSM_CAM_IOCTL_MAGIC, 7, struct msm_camera_get_frame *)
     34 
     35 #define MSM_CAM_IOCTL_ENABLE_VFE   _IOW(MSM_CAM_IOCTL_MAGIC, 8, struct camera_enable_cmd *)
     36 
     37 #define MSM_CAM_IOCTL_CTRL_CMD_DONE   _IOW(MSM_CAM_IOCTL_MAGIC, 9, struct camera_cmd *)
     38 
     39 #define MSM_CAM_IOCTL_CONFIG_CMD   _IOW(MSM_CAM_IOCTL_MAGIC, 10, struct camera_cmd *)
     40 
     41 #define MSM_CAM_IOCTL_DISABLE_VFE   _IOW(MSM_CAM_IOCTL_MAGIC, 11, struct camera_enable_cmd *)
     42 
     43 #define MSM_CAM_IOCTL_PAD_REG_RESET2   _IOW(MSM_CAM_IOCTL_MAGIC, 12, struct camera_enable_cmd *)
     44 
     45 #define MSM_CAM_IOCTL_VFE_APPS_RESET   _IOW(MSM_CAM_IOCTL_MAGIC, 13, struct camera_enable_cmd *)
     46 
     47 #define MSM_CAM_IOCTL_RELEASE_FRAME_BUFFER   _IOW(MSM_CAM_IOCTL_MAGIC, 14, struct camera_enable_cmd *)
     48 
     49 #define MSM_CAM_IOCTL_RELEASE_STATS_BUFFER   _IOW(MSM_CAM_IOCTL_MAGIC, 15, struct msm_stats_buf *)
     50 
     51 #define MSM_CAM_IOCTL_AXI_CONFIG   _IOW(MSM_CAM_IOCTL_MAGIC, 16, struct msm_camera_vfe_cfg_cmd *)
     52 
     53 #define MSM_CAM_IOCTL_GET_PICTURE   _IOW(MSM_CAM_IOCTL_MAGIC, 17, struct msm_camera_ctrl_cmd *)
     54 
     55 #define MSM_CAM_IOCTL_SET_CROP   _IOW(MSM_CAM_IOCTL_MAGIC, 18, struct crop_info *)
     56 
     57 #define MSM_CAM_IOCTL_PP   _IOW(MSM_CAM_IOCTL_MAGIC, 19, uint8_t *)
     58 
     59 #define MSM_CAM_IOCTL_PP_DONE   _IOW(MSM_CAM_IOCTL_MAGIC, 20, struct msm_snapshot_pp_status *)
     60 
     61 #define MSM_CAM_IOCTL_SENSOR_IO_CFG   _IOW(MSM_CAM_IOCTL_MAGIC, 21, struct sensor_cfg_data *)
     62 
     63 #define MSM_CAMERA_LED_OFF 0
     64 #define MSM_CAMERA_LED_LOW 1
     65 #define MSM_CAMERA_LED_HIGH 2
     66 
     67 #define MSM_CAM_IOCTL_FLASH_LED_CFG   _IOW(MSM_CAM_IOCTL_MAGIC, 22, unsigned *)
     68 
     69 #define MSM_CAM_IOCTL_UNBLOCK_POLL_FRAME   _IO(MSM_CAM_IOCTL_MAGIC, 23)
     70 
     71 #define MSM_CAM_IOCTL_CTRL_COMMAND_2   _IOW(MSM_CAM_IOCTL_MAGIC, 24, struct msm_ctrl_cmd *)
     72 
     73 #define MAX_SENSOR_NUM 3
     74 #define MAX_SENSOR_NAME 32
     75 
     76 #define PP_SNAP 1
     77 #define PP_RAW_SNAP (1<<1)
     78 #define PP_PREV (1<<2)
     79 #define PP_MASK (PP_SNAP|PP_RAW_SNAP|PP_PREV)
     80 
     81 #define MSM_CAM_CTRL_CMD_DONE 0
     82 #define MSM_CAM_SENSOR_VFE_CMD 1
     83 
     84 struct msm_ctrl_cmd {
     85  uint16_t type;
     86  uint16_t length;
     87  void *value;
     88  uint16_t status;
     89  uint32_t timeout_ms;
     90  int resp_fd;
     91 };
     92 
     93 struct msm_vfe_evt_msg {
     94  unsigned short type;
     95  unsigned short msg_id;
     96  unsigned int len;
     97  void *data;
     98 };
     99 
    100 #define MSM_CAM_RESP_CTRL 0
    101 #define MSM_CAM_RESP_STAT_EVT_MSG 1
    102 #define MSM_CAM_RESP_V4L2 2
    103 #define MSM_CAM_RESP_MAX 3
    104 
    105 struct msm_stats_event_ctrl {
    106 
    107  int resptype;
    108  int timeout_ms;
    109  struct msm_ctrl_cmd ctrl_cmd;
    110 
    111  struct msm_vfe_evt_msg stats_event;
    112 };
    113 
    114 struct msm_camera_cfg_cmd {
    115 
    116  uint16_t cfg_type;
    117 
    118  uint16_t cmd_type;
    119  uint16_t queue;
    120  uint16_t length;
    121  void *value;
    122 };
    123 
    124 #define CMD_GENERAL 0
    125 #define CMD_AXI_CFG_OUT1 1
    126 #define CMD_AXI_CFG_SNAP_O1_AND_O2 2
    127 #define CMD_AXI_CFG_OUT2 3
    128 #define CMD_PICT_T_AXI_CFG 4
    129 #define CMD_PICT_M_AXI_CFG 5
    130 #define CMD_RAW_PICT_AXI_CFG 6
    131 #define CMD_STATS_AXI_CFG 7
    132 #define CMD_STATS_AF_AXI_CFG 8
    133 #define CMD_FRAME_BUF_RELEASE 9
    134 #define CMD_PREV_BUF_CFG 10
    135 #define CMD_SNAP_BUF_RELEASE 11
    136 #define CMD_SNAP_BUF_CFG 12
    137 #define CMD_STATS_DISABLE 13
    138 #define CMD_STATS_AEC_AWB_ENABLE 14
    139 #define CMD_STATS_AF_ENABLE 15
    140 #define CMD_STATS_BUF_RELEASE 16
    141 #define CMD_STATS_AF_BUF_RELEASE 17
    142 #define CMD_STATS_ENABLE 18
    143 #define UPDATE_STATS_INVALID 19
    144 
    145 struct msm_vfe_cfg_cmd {
    146  int cmd_type;
    147  uint16_t length;
    148  void *value;
    149 };
    150 
    151 #define MAX_CAMERA_ENABLE_NAME_LEN 32
    152 struct camera_enable_cmd {
    153  char name[MAX_CAMERA_ENABLE_NAME_LEN];
    154 };
    155 
    156 #define MSM_PMEM_OUTPUT1 0
    157 #define MSM_PMEM_OUTPUT2 1
    158 #define MSM_PMEM_OUTPUT1_OUTPUT2 2
    159 #define MSM_PMEM_THUMBNAIL 3
    160 #define MSM_PMEM_MAINIMG 4
    161 #define MSM_PMEM_RAW_MAINIMG 5
    162 #define MSM_PMEM_AEC_AWB 6
    163 #define MSM_PMEM_AF 7
    164 #define MSM_PMEM_MAX 8
    165 
    166 #define FRAME_PREVIEW_OUTPUT1 0
    167 #define FRAME_PREVIEW_OUTPUT2 1
    168 #define FRAME_SNAPSHOT 2
    169 #define FRAME_THUMBAIL 3
    170 #define FRAME_RAW_SNAPSHOT 4
    171 #define FRAME_MAX 5
    172 
    173 struct msm_pmem_info {
    174  int type;
    175  int fd;
    176  void *vaddr;
    177  uint32_t offset;
    178  uint32_t len;
    179  uint32_t y_off;
    180  uint32_t cbcr_off;
    181  uint8_t active;
    182 };
    183 
    184 struct outputCfg {
    185  uint32_t height;
    186  uint32_t width;
    187 
    188  uint32_t window_height_firstline;
    189  uint32_t window_height_lastline;
    190 };
    191 
    192 #define OUTPUT_1 0
    193 #define OUTPUT_2 1
    194 #define OUTPUT_1_AND_2 2
    195 #define CAMIF_TO_AXI_VIA_OUTPUT_2 3
    196 #define OUTPUT_1_AND_CAMIF_TO_AXI_VIA_OUTPUT_2 4
    197 #define OUTPUT_2_AND_CAMIF_TO_AXI_VIA_OUTPUT_1 5
    198 #define LAST_AXI_OUTPUT_MODE_ENUM = OUTPUT_2_AND_CAMIF_TO_AXI_VIA_OUTPUT_1 6
    199 
    200 #define MSM_FRAME_PREV_1 0
    201 #define MSM_FRAME_PREV_2 1
    202 #define MSM_FRAME_ENC 2
    203 
    204 struct msm_frame {
    205  int path;
    206  unsigned long buffer;
    207  uint32_t y_off;
    208  uint32_t cbcr_off;
    209  int fd;
    210 
    211  void *cropinfo;
    212  int croplen;
    213 };
    214 
    215 #define STAT_AEAW 0
    216 #define STAT_AF 1
    217 #define STAT_MAX 2
    218 
    219 struct msm_stats_buf {
    220  int type;
    221  unsigned long buffer;
    222  int fd;
    223 };
    224 
    225 #define MSM_V4L2_VID_CAP_TYPE 0
    226 #define MSM_V4L2_STREAM_ON 1
    227 #define MSM_V4L2_STREAM_OFF 2
    228 #define MSM_V4L2_SNAPSHOT 3
    229 #define MSM_V4L2_QUERY_CTRL 4
    230 #define MSM_V4L2_GET_CTRL 5
    231 #define MSM_V4L2_SET_CTRL 6
    232 #define MSM_V4L2_QUERY 7
    233 #define MSM_V4L2_MAX 8
    234 
    235 struct crop_info {
    236  void *info;
    237  int len;
    238 };
    239 
    240 struct msm_postproc {
    241  int ftnum;
    242  struct msm_frame fthumnail;
    243  int fmnum;
    244  struct msm_frame fmain;
    245 };
    246 
    247 struct msm_snapshot_pp_status {
    248  void *status;
    249 };
    250 
    251 #define CFG_SET_MODE 0
    252 #define CFG_SET_EFFECT 1
    253 #define CFG_START 2
    254 #define CFG_PWR_UP 3
    255 #define CFG_PWR_DOWN 4
    256 #define CFG_WRITE_EXPOSURE_GAIN 5
    257 #define CFG_SET_DEFAULT_FOCUS 6
    258 #define CFG_MOVE_FOCUS 7
    259 #define CFG_REGISTER_TO_REAL_GAIN 8
    260 #define CFG_REAL_TO_REGISTER_GAIN 9
    261 #define CFG_SET_FPS 10
    262 #define CFG_SET_PICT_FPS 11
    263 #define CFG_SET_BRIGHTNESS 12
    264 #define CFG_SET_CONTRAST 13
    265 #define CFG_SET_ZOOM 14
    266 #define CFG_SET_EXPOSURE_MODE 15
    267 #define CFG_SET_WB 16
    268 #define CFG_SET_ANTIBANDING 17
    269 #define CFG_SET_EXP_GAIN 18
    270 #define CFG_SET_PICT_EXP_GAIN 19
    271 #define CFG_SET_LENS_SHADING 20
    272 #define CFG_GET_PICT_FPS 21
    273 #define CFG_GET_PREV_L_PF 22
    274 #define CFG_GET_PREV_P_PL 23
    275 #define CFG_GET_PICT_L_PF 24
    276 #define CFG_GET_PICT_P_PL 25
    277 #define CFG_GET_AF_MAX_STEPS 26
    278 #define CFG_GET_PICT_MAX_EXP_LC 27
    279 #define CFG_MAX 28
    280 
    281 #define MOVE_NEAR 0
    282 #define MOVE_FAR 1
    283 
    284 #define SENSOR_PREVIEW_MODE 0
    285 #define SENSOR_SNAPSHOT_MODE 1
    286 #define SENSOR_RAW_SNAPSHOT_MODE 2
    287 
    288 #define SENSOR_QTR_SIZE 0
    289 #define SENSOR_FULL_SIZE 1
    290 #define SENSOR_INVALID_SIZE 2
    291 
    292 #define CAMERA_EFFECT_OFF 0
    293 #define CAMERA_EFFECT_MONO 1
    294 #define CAMERA_EFFECT_NEGATIVE 2
    295 #define CAMERA_EFFECT_SOLARIZE 3
    296 #define CAMERA_EFFECT_PASTEL 4
    297 #define CAMERA_EFFECT_MOSAIC 5
    298 #define CAMERA_EFFECT_RESIZE 6
    299 #define CAMERA_EFFECT_SEPIA 7
    300 #define CAMERA_EFFECT_POSTERIZE 8
    301 #define CAMERA_EFFECT_WHITEBOARD 9
    302 #define CAMERA_EFFECT_BLACKBOARD 10
    303 #define CAMERA_EFFECT_AQUA 11
    304 #define CAMERA_EFFECT_MAX 12
    305 
    306 struct sensor_pict_fps {
    307  uint16_t prevfps;
    308  uint16_t pictfps;
    309 };
    310 
    311 struct exp_gain_cfg {
    312  uint16_t gain;
    313  uint32_t line;
    314 };
    315 
    316 struct focus_cfg {
    317  int32_t steps;
    318  int dir;
    319 };
    320 
    321 struct fps_cfg {
    322  uint16_t f_mult;
    323  uint16_t fps_div;
    324  uint32_t pict_fps_div;
    325 };
    326 
    327 struct sensor_cfg_data {
    328  int cfgtype;
    329  int mode;
    330  int rs;
    331  uint8_t max_steps;
    332 
    333  union {
    334  int8_t effect;
    335  uint8_t lens_shading;
    336  uint16_t prevl_pf;
    337  uint16_t prevp_pl;
    338  uint16_t pictl_pf;
    339  uint16_t pictp_pl;
    340  uint32_t pict_max_exp_lc;
    341  uint16_t p_fps;
    342  struct sensor_pict_fps gfps;
    343  struct exp_gain_cfg exp_gain;
    344  struct focus_cfg focus;
    345  struct fps_cfg fps;
    346  } cfg;
    347 };
    348 
    349 #define GET_NAME 0
    350 #define GET_PREVIEW_LINE_PER_FRAME 1
    351 #define GET_PREVIEW_PIXELS_PER_LINE 2
    352 #define GET_SNAPSHOT_LINE_PER_FRAME 3
    353 #define GET_SNAPSHOT_PIXELS_PER_LINE 4
    354 #define GET_SNAPSHOT_FPS 5
    355 #define GET_SNAPSHOT_MAX_EP_LINE_CNT 6
    356 
    357 struct msm_camsensor_info {
    358  char name[MAX_SENSOR_NAME];
    359  uint8_t flash_enabled;
    360 };
    361 #endif
    362 
    363