blob: 332ac8a7c41d2125b9b69def5bd5cd9df6d3e45e [file] [log] [blame]
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001/****************************************************************************
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 ***
Ben Cheng654325d2012-03-07 21:13:49 -080010 *** 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 ***
Iliyan Malchev94a144e2009-04-30 12:29:52 -070017 ****************************************************************************
18 ****************************************************************************/
19#ifndef __LINUX_MSM_CAMERA_H
20#define __LINUX_MSM_CAMERA_H
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070021#ifdef MSM_CAMERA_BIONIC
22#include <sys/types.h>
Ben Cheng654325d2012-03-07 21:13:49 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070024#endif
25#include <linux/types.h>
Iliyan Malchev94a144e2009-04-30 12:29:52 -070026#include <linux/ioctl.h>
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070027#ifdef MSM_CAMERA_GCC
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#include <time.h>
30#else
31#include <linux/time.h>
32#endif
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#include <linux/ion.h>
35#define BIT(nr) (1UL << (nr))
Iliyan Malchev94a144e2009-04-30 12:29:52 -070036#define MSM_CAM_IOCTL_MAGIC 'm'
Iliyan Malchev07116002009-06-23 20:08:10 -070037#define MSM_CAM_IOCTL_GET_SENSOR_INFO _IOR(MSM_CAM_IOCTL_MAGIC, 1, struct msm_camsensor_info *)
Ben Cheng654325d2012-03-07 21:13:49 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070039#define MSM_CAM_IOCTL_REGISTER_PMEM _IOW(MSM_CAM_IOCTL_MAGIC, 2, struct msm_pmem_info *)
Iliyan Malchev07116002009-06-23 20:08:10 -070040#define MSM_CAM_IOCTL_UNREGISTER_PMEM _IOW(MSM_CAM_IOCTL_MAGIC, 3, unsigned)
Iliyan Malchev07116002009-06-23 20:08:10 -070041#define MSM_CAM_IOCTL_CTRL_COMMAND _IOW(MSM_CAM_IOCTL_MAGIC, 4, struct msm_ctrl_cmd *)
Iliyan Malchev07116002009-06-23 20:08:10 -070042#define MSM_CAM_IOCTL_CONFIG_VFE _IOW(MSM_CAM_IOCTL_MAGIC, 5, struct msm_camera_vfe_cfg_cmd *)
Ben Cheng654325d2012-03-07 21:13:49 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070044#define MSM_CAM_IOCTL_GET_STATS _IOR(MSM_CAM_IOCTL_MAGIC, 6, struct msm_camera_stats_event_ctrl *)
Iliyan Malchev07116002009-06-23 20:08:10 -070045#define MSM_CAM_IOCTL_GETFRAME _IOR(MSM_CAM_IOCTL_MAGIC, 7, struct msm_camera_get_frame *)
Iliyan Malchev07116002009-06-23 20:08:10 -070046#define MSM_CAM_IOCTL_ENABLE_VFE _IOW(MSM_CAM_IOCTL_MAGIC, 8, struct camera_enable_cmd *)
Iliyan Malchev07116002009-06-23 20:08:10 -070047#define MSM_CAM_IOCTL_CTRL_CMD_DONE _IOW(MSM_CAM_IOCTL_MAGIC, 9, struct camera_cmd *)
Ben Cheng654325d2012-03-07 21:13:49 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070049#define MSM_CAM_IOCTL_CONFIG_CMD _IOW(MSM_CAM_IOCTL_MAGIC, 10, struct camera_cmd *)
Iliyan Malchev07116002009-06-23 20:08:10 -070050#define MSM_CAM_IOCTL_DISABLE_VFE _IOW(MSM_CAM_IOCTL_MAGIC, 11, struct camera_enable_cmd *)
Iliyan Malchev07116002009-06-23 20:08:10 -070051#define MSM_CAM_IOCTL_PAD_REG_RESET2 _IOW(MSM_CAM_IOCTL_MAGIC, 12, struct camera_enable_cmd *)
Iliyan Malchev07116002009-06-23 20:08:10 -070052#define MSM_CAM_IOCTL_VFE_APPS_RESET _IOW(MSM_CAM_IOCTL_MAGIC, 13, struct camera_enable_cmd *)
Ben Cheng654325d2012-03-07 21:13:49 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070054#define MSM_CAM_IOCTL_RELEASE_FRAME_BUFFER _IOW(MSM_CAM_IOCTL_MAGIC, 14, struct camera_enable_cmd *)
Iliyan Malchev07116002009-06-23 20:08:10 -070055#define MSM_CAM_IOCTL_RELEASE_STATS_BUFFER _IOW(MSM_CAM_IOCTL_MAGIC, 15, struct msm_stats_buf *)
Iliyan Malchev07116002009-06-23 20:08:10 -070056#define MSM_CAM_IOCTL_AXI_CONFIG _IOW(MSM_CAM_IOCTL_MAGIC, 16, struct msm_camera_vfe_cfg_cmd *)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070057#define MSM_CAM_IOCTL_GET_PICTURE _IOW(MSM_CAM_IOCTL_MAGIC, 17, struct msm_frame *)
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev07116002009-06-23 20:08:10 -070059#define MSM_CAM_IOCTL_SET_CROP _IOW(MSM_CAM_IOCTL_MAGIC, 18, struct crop_info *)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070060#define MSM_CAM_IOCTL_PICT_PP _IOW(MSM_CAM_IOCTL_MAGIC, 19, uint8_t *)
61#define MSM_CAM_IOCTL_PICT_PP_DONE _IOW(MSM_CAM_IOCTL_MAGIC, 20, struct msm_snapshot_pp_status *)
Iliyan Malchev07116002009-06-23 20:08:10 -070062#define MSM_CAM_IOCTL_SENSOR_IO_CFG _IOW(MSM_CAM_IOCTL_MAGIC, 21, struct sensor_cfg_data *)
Ben Cheng654325d2012-03-07 21:13:49 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev07116002009-06-23 20:08:10 -070064#define MSM_CAM_IOCTL_FLASH_LED_CFG _IOW(MSM_CAM_IOCTL_MAGIC, 22, unsigned *)
Iliyan Malchev07116002009-06-23 20:08:10 -070065#define MSM_CAM_IOCTL_UNBLOCK_POLL_FRAME _IO(MSM_CAM_IOCTL_MAGIC, 23)
Iliyan Malchev07116002009-06-23 20:08:10 -070066#define MSM_CAM_IOCTL_CTRL_COMMAND_2 _IOW(MSM_CAM_IOCTL_MAGIC, 24, struct msm_ctrl_cmd *)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070067#define MSM_CAM_IOCTL_AF_CTRL _IOR(MSM_CAM_IOCTL_MAGIC, 25, struct msm_ctrl_cmt_t *)
Ben Cheng654325d2012-03-07 21:13:49 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -070069#define MSM_CAM_IOCTL_AF_CTRL_DONE _IOW(MSM_CAM_IOCTL_MAGIC, 26, struct msm_ctrl_cmt_t *)
70#define MSM_CAM_IOCTL_CONFIG_VPE _IOW(MSM_CAM_IOCTL_MAGIC, 27, struct msm_camera_vpe_cfg_cmd *)
71#define MSM_CAM_IOCTL_AXI_VPE_CONFIG _IOW(MSM_CAM_IOCTL_MAGIC, 28, struct msm_camera_vpe_cfg_cmd *)
72#define MSM_CAM_IOCTL_STROBE_FLASH_CFG _IOW(MSM_CAM_IOCTL_MAGIC, 29, uint32_t *)
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74#define MSM_CAM_IOCTL_STROBE_FLASH_CHARGE _IOW(MSM_CAM_IOCTL_MAGIC, 30, uint32_t *)
75#define MSM_CAM_IOCTL_STROBE_FLASH_RELEASE _IO(MSM_CAM_IOCTL_MAGIC, 31)
76#define MSM_CAM_IOCTL_FLASH_CTRL _IOW(MSM_CAM_IOCTL_MAGIC, 32, struct flash_ctrl_data *)
77#define MSM_CAM_IOCTL_ERROR_CONFIG _IOW(MSM_CAM_IOCTL_MAGIC, 33, uint32_t *)
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79#define MSM_CAM_IOCTL_ABORT_CAPTURE _IO(MSM_CAM_IOCTL_MAGIC, 34)
80#define MSM_CAM_IOCTL_SET_FD_ROI _IOW(MSM_CAM_IOCTL_MAGIC, 35, struct fd_roi_info *)
81#define MSM_CAM_IOCTL_GET_CAMERA_INFO _IOR(MSM_CAM_IOCTL_MAGIC, 36, struct msm_camera_info *)
82#define MSM_CAM_IOCTL_UNBLOCK_POLL_PIC_FRAME _IO(MSM_CAM_IOCTL_MAGIC, 37)
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define MSM_CAM_IOCTL_RELEASE_PIC_BUFFER _IOW(MSM_CAM_IOCTL_MAGIC, 38, struct camera_enable_cmd *)
85#define MSM_CAM_IOCTL_PUT_ST_FRAME _IOW(MSM_CAM_IOCTL_MAGIC, 39, struct msm_camera_st_frame *)
86#define MSM_CAM_IOCTL_V4L2_EVT_NOTIFY _IOR(MSM_CAM_IOCTL_MAGIC, 40, struct v4l2_event *)
87#define MSM_CAM_IOCTL_SET_MEM_MAP_INFO _IOR(MSM_CAM_IOCTL_MAGIC, 41, struct msm_mem_map_info *)
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89#define MSM_CAM_IOCTL_ACTUATOR_IO_CFG _IOW(MSM_CAM_IOCTL_MAGIC, 42, struct msm_actuator_cfg_data *)
90#define MSM_CAM_IOCTL_MCTL_POST_PROC _IOW(MSM_CAM_IOCTL_MAGIC, 43, struct msm_mctl_post_proc_cmd *)
91#define MSM_CAM_IOCTL_RESERVE_FREE_FRAME _IOW(MSM_CAM_IOCTL_MAGIC, 44, struct msm_cam_evt_divert_frame *)
92#define MSM_CAM_IOCTL_RELEASE_FREE_FRAME _IOR(MSM_CAM_IOCTL_MAGIC, 45, struct msm_cam_evt_divert_frame *)
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94#define MSM_CAM_IOCTL_PICT_PP_DIVERT_DONE _IOR(MSM_CAM_IOCTL_MAGIC, 46, struct msm_pp_frame *)
95#define MSM_CAM_IOCTL_SENSOR_V4l2_S_CTRL _IOR(MSM_CAM_IOCTL_MAGIC, 47, struct v4l2_control)
96#define MSM_CAM_IOCTL_SENSOR_V4l2_QUERY_CTRL _IOR(MSM_CAM_IOCTL_MAGIC, 48, struct v4l2_queryctrl)
97#define MSM_CAM_IOCTL_GET_KERNEL_SYSTEM_TIME _IOW(MSM_CAM_IOCTL_MAGIC, 49, struct timeval *)
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define MSM_CAM_IOCTL_SET_VFE_OUTPUT_TYPE _IOW(MSM_CAM_IOCTL_MAGIC, 50, uint32_t *)
100#define MSM_CAM_IOCTL_MCTL_DIVERT_DONE _IOR(MSM_CAM_IOCTL_MAGIC, 51, struct msm_cam_evt_divert_frame *)
101#define MSM_CAM_IOCTL_GET_ACTUATOR_INFO _IOW(MSM_CAM_IOCTL_MAGIC, 52, struct msm_actuator_cfg_data *)
102#define MSM_CAM_IOCTL_EEPROM_IO_CFG _IOW(MSM_CAM_IOCTL_MAGIC, 53, struct msm_eeprom_cfg_data *)
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104#define MSM_CAM_IOCTL_ISPIF_IO_CFG _IOR(MSM_CAM_IOCTL_MAGIC, 54, struct ispif_cfg_data *)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700105#define MSM_CAM_IOCTL_STATS_REQBUF _IOR(MSM_CAM_IOCTL_MAGIC, 55, struct msm_stats_reqbuf *)
106#define MSM_CAM_IOCTL_STATS_ENQUEUEBUF _IOR(MSM_CAM_IOCTL_MAGIC, 56, struct msm_stats_buf_info *)
107#define MSM_CAM_IOCTL_STATS_FLUSH_BUFQ _IOR(MSM_CAM_IOCTL_MAGIC, 57, struct msm_stats_flush_bufq *)
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109#define MSM_CAM_IOCTL_SET_MCTL_SDEV _IOW(MSM_CAM_IOCTL_MAGIC, 58, struct msm_mctl_set_sdev_data *)
110#define MSM_CAM_IOCTL_UNSET_MCTL_SDEV _IOW(MSM_CAM_IOCTL_MAGIC, 59, struct msm_mctl_set_sdev_data *)
111#define MSM_CAM_IOCTL_GET_INST_HANDLE _IOR(MSM_CAM_IOCTL_MAGIC, 60, uint32_t *)
Ajay Dudani77b25702012-08-09 09:58:59 -0700112#define MSM_CAM_IOCTL_STATS_UNREG_BUF _IOR(MSM_CAM_IOCTL_MAGIC, 61, struct msm_stats_flush_bufq *)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700114struct msm_stats_reqbuf {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700115 int num_buf;
116 int stats_type;
117};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700119struct msm_stats_flush_bufq {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700120 int stats_type;
121};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700122struct msm_mctl_pp_cmd {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700124 int32_t id;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700125 uint16_t length;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700126 void *value;
127};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700129struct msm_mctl_post_proc_cmd {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700130 int32_t type;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700131 struct msm_mctl_pp_cmd cmd;
132};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700134#define MSM_CAMERA_LED_OFF 0
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700135#define MSM_CAMERA_LED_LOW 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700136#define MSM_CAMERA_LED_HIGH 2
137#define MSM_CAMERA_LED_INIT 3
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700139#define MSM_CAMERA_LED_RELEASE 4
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700140#define MSM_CAMERA_STROBE_FLASH_NONE 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700141#define MSM_CAMERA_STROBE_FLASH_XENON 1
142#define MSM_MAX_CAMERA_SENSORS 5
Ben Cheng654325d2012-03-07 21:13:49 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700144#define MAX_SENSOR_NAME 32
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700145#define MAX_CAM_NAME_SIZE 32
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700146#define MAX_ACT_MOD_NAME_SIZE 32
147#define MAX_ACT_NAME_SIZE 32
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700149#define NUM_ACTUATOR_DIR 2
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700150#define MAX_ACTUATOR_SCENARIO 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700151#define MAX_ACTUATOR_REGION 5
152#define MAX_ACTUATOR_INIT_SET 12
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700154#define MAX_ACTUATOR_TYPE_SIZE 32
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700155#define MAX_ACTUATOR_REG_TBL_SIZE 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700156#define MSM_MAX_CAMERA_CONFIGS 2
157#define PP_SNAP 0x01
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700159#define PP_RAW_SNAP ((0x01)<<1)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700160#define PP_PREV ((0x01)<<2)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700161#define PP_THUMB ((0x01)<<3)
162#define PP_MASK (PP_SNAP|PP_RAW_SNAP|PP_PREV|PP_THUMB)
Ben Cheng654325d2012-03-07 21:13:49 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700164#define MSM_CAM_CTRL_CMD_DONE 0
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700165#define MSM_CAM_SENSOR_VFE_CMD 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700166#define MAX_PLANES 8
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700167struct msm_ctrl_cmd {
Ben Cheng654325d2012-03-07 21:13:49 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700169 uint16_t type;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700170 uint16_t length;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700171 void *value;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700172 uint16_t status;
Ben Cheng654325d2012-03-07 21:13:49 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700174 uint32_t timeout_ms;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700175 int resp_fd;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700176 int vnode_id;
177 int queue_idx;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700179 uint32_t evt_id;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700180 uint32_t stream_type;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700181 int config_ident;
182};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700184struct msm_cam_evt_msg {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700185 unsigned short type;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700186 unsigned short msg_id;
187 unsigned int len;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700189 uint32_t frame_id;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700190 void *data;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700191 struct timespec timestamp;
192};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700194struct msm_pp_frame_sp {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700195 unsigned long phy_addr;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700196 uint32_t y_off;
197 uint32_t cbcr_off;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700199 uint32_t length;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700200 int32_t fd;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700201 uint32_t addr_offset;
202 unsigned long vaddr;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700204};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700205struct msm_pp_frame_mp {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700206 unsigned long phy_addr;
207 uint32_t data_offset;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700209 uint32_t length;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700210 int32_t fd;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700211 uint32_t addr_offset;
212 unsigned long vaddr;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700214};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700215struct msm_pp_frame {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700216 uint32_t handle;
217 uint32_t frame_id;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700219 unsigned short buf_idx;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700220 int path;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700221 unsigned short image_type;
222 unsigned short num_planes;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700224 struct timeval timestamp;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700225 union {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700226 struct msm_pp_frame_sp sp;
227 struct msm_pp_frame_mp mp[MAX_PLANES];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700229 };
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700230 int node_type;
231 uint32_t inst_handle;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700232};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700234struct msm_cam_evt_divert_frame {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700235 unsigned short image_mode;
236 unsigned short op_mode;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700237 unsigned short inst_idx;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700239 unsigned short node_idx;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700240 struct msm_pp_frame frame;
241 int do_pp;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700242};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700244struct msm_mctl_pp_cmd_ack_event {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700245 uint32_t cmd;
246 int status;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700247 uint32_t cookie;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700249};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700250struct msm_mctl_pp_event_info {
251 int32_t event;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700252 union {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700254 struct msm_mctl_pp_cmd_ack_event ack;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700255 };
256};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700257struct msm_isp_event_ctrl {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700259 unsigned short resptype;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700260 union {
261 struct msm_cam_evt_msg isp_msg;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700262 struct msm_ctrl_cmd ctrl;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700264 struct msm_cam_evt_divert_frame div_frame;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700265 struct msm_mctl_pp_event_info pp_event_info;
266 } isp_data;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700267};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700269#define MSM_CAM_RESP_CTRL 0
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700270#define MSM_CAM_RESP_STAT_EVT_MSG 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700271#define MSM_CAM_RESP_STEREO_OP_1 2
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700272#define MSM_CAM_RESP_STEREO_OP_2 3
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700274#define MSM_CAM_RESP_V4L2 4
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700275#define MSM_CAM_RESP_DIV_FRAME_EVT_MSG 5
276#define MSM_CAM_RESP_DONE_EVENT 6
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700277#define MSM_CAM_RESP_MCTL_PP_EVENT 7
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700279#define MSM_CAM_RESP_MAX 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700280#define MSM_CAM_APP_NOTIFY_EVENT 0
281#define MSM_CAM_APP_NOTIFY_ERROR_EVENT 1
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700282struct msm_stats_event_ctrl {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700284 int resptype;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700285 int timeout_ms;
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700286 struct msm_ctrl_cmd ctrl_cmd;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700287 struct msm_cam_evt_msg stats_event;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700289};
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700290struct msm_camera_cfg_cmd {
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700291 uint16_t cfg_type;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700292 uint16_t cmd_type;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700294 uint16_t queue;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700295 uint16_t length;
296 void *value;
297};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700299#define CMD_GENERAL 0
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700300#define CMD_AXI_CFG_OUT1 1
301#define CMD_AXI_CFG_SNAP_O1_AND_O2 2
302#define CMD_AXI_CFG_OUT2 3
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700304#define CMD_PICT_T_AXI_CFG 4
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700305#define CMD_PICT_M_AXI_CFG 5
306#define CMD_RAW_PICT_AXI_CFG 6
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700307#define CMD_FRAME_BUF_RELEASE 7
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700309#define CMD_PREV_BUF_CFG 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700310#define CMD_SNAP_BUF_RELEASE 9
311#define CMD_SNAP_BUF_CFG 10
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700312#define CMD_STATS_DISABLE 11
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700314#define CMD_STATS_AEC_AWB_ENABLE 12
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700315#define CMD_STATS_AF_ENABLE 13
316#define CMD_STATS_AEC_ENABLE 14
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700317#define CMD_STATS_AWB_ENABLE 15
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700319#define CMD_STATS_ENABLE 16
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700320#define CMD_STATS_AXI_CFG 17
321#define CMD_STATS_AEC_AXI_CFG 18
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700322#define CMD_STATS_AF_AXI_CFG 19
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700324#define CMD_STATS_AWB_AXI_CFG 20
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700325#define CMD_STATS_RS_AXI_CFG 21
326#define CMD_STATS_CS_AXI_CFG 22
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700327#define CMD_STATS_IHIST_AXI_CFG 23
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700329#define CMD_STATS_SKIN_AXI_CFG 24
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700330#define CMD_STATS_BUF_RELEASE 25
331#define CMD_STATS_AEC_BUF_RELEASE 26
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700332#define CMD_STATS_AF_BUF_RELEASE 27
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700334#define CMD_STATS_AWB_BUF_RELEASE 28
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700335#define CMD_STATS_RS_BUF_RELEASE 29
336#define CMD_STATS_CS_BUF_RELEASE 30
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700337#define CMD_STATS_IHIST_BUF_RELEASE 31
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700339#define CMD_STATS_SKIN_BUF_RELEASE 32
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700340#define UPDATE_STATS_INVALID 33
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700341#define CMD_AXI_CFG_SNAP_GEMINI 34
342#define CMD_AXI_CFG_SNAP 35
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700344#define CMD_AXI_CFG_PREVIEW 36
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700345#define CMD_AXI_CFG_VIDEO 37
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700346#define CMD_STATS_IHIST_ENABLE 38
347#define CMD_STATS_RS_ENABLE 39
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700349#define CMD_STATS_CS_ENABLE 40
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700350#define CMD_VPE 41
351#define CMD_AXI_CFG_VPE 42
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700352#define CMD_AXI_CFG_ZSL 43
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700354#define CMD_AXI_CFG_SNAP_VPE 44
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700355#define CMD_AXI_CFG_SNAP_THUMB_VPE 45
356#define CMD_CONFIG_PING_ADDR 46
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700357#define CMD_CONFIG_PONG_ADDR 47
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700359#define CMD_CONFIG_FREE_BUF_ADDR 48
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700360#define CMD_AXI_CFG_ZSL_ALL_CHNLS 49
361#define CMD_AXI_CFG_VIDEO_ALL_CHNLS 50
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700362#define CMD_VFE_BUFFER_RELEASE 51
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700364#define CMD_VFE_PROCESS_IRQ 52
365#define CMD_STATS_BG_ENABLE 53
366#define CMD_STATS_BF_ENABLE 54
367#define CMD_STATS_BHIST_ENABLE 55
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369#define CMD_STATS_BG_BUF_RELEASE 56
370#define CMD_STATS_BF_BUF_RELEASE 57
371#define CMD_STATS_BHIST_BUF_RELEASE 58
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700372#define CMD_VFE_SOF_COUNT_UPDATE 59
Ajay Dudani77b25702012-08-09 09:58:59 -0700373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700374#define CMD_VFE_COUNT_SOF_ENABLE 60
375#define CMD_AXI_CFG_PRIM BIT(8)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700376#define CMD_AXI_CFG_PRIM_ALL_CHNLS BIT(9)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700377#define CMD_AXI_CFG_SEC BIT(10)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700379#define CMD_AXI_CFG_SEC_ALL_CHNLS BIT(11)
380#define CMD_AXI_CFG_TERT1 BIT(12)
381#define CMD_AXI_CFG_TERT2 BIT(13)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700382#define CMD_AXI_START 0xE1
Ajay Dudani77b25702012-08-09 09:58:59 -0700383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700384#define CMD_AXI_STOP 0xE2
385#define CMD_AXI_RESET 0xE3
386#define AXI_CMD_PREVIEW BIT(0)
Ajay Dudani77b25702012-08-09 09:58:59 -0700387#define AXI_CMD_CAPTURE BIT(1)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700389#define AXI_CMD_RECORD BIT(2)
390#define AXI_CMD_ZSL BIT(3)
391#define AXI_CMD_RAW_CAPTURE BIT(4)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700392#define AXI_CMD_LIVESHOT BIT(5)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700394struct msm_vfe_cfg_cmd {
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700395 int cmd_type;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700396 uint16_t length;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700397 void *value;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700399};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700400struct msm_vpe_cfg_cmd {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700401 int cmd_type;
402 uint16_t length;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700404 void *value;
405};
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700406#define MAX_CAMERA_ENABLE_NAME_LEN 32
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700407struct camera_enable_cmd {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700409 char name[MAX_CAMERA_ENABLE_NAME_LEN];
410};
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700411#define MSM_PMEM_OUTPUT1 0
412#define MSM_PMEM_OUTPUT2 1
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700414#define MSM_PMEM_OUTPUT1_OUTPUT2 2
Iliyan Malchev82420122009-09-11 00:29:59 -0700415#define MSM_PMEM_THUMBNAIL 3
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700416#define MSM_PMEM_MAINIMG 4
417#define MSM_PMEM_RAW_MAINIMG 5
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700419#define MSM_PMEM_AEC_AWB 6
420#define MSM_PMEM_AF 7
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700421#define MSM_PMEM_AEC 8
422#define MSM_PMEM_AWB 9
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700424#define MSM_PMEM_RS 10
425#define MSM_PMEM_CS 11
426#define MSM_PMEM_IHIST 12
427#define MSM_PMEM_SKIN 13
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700429#define MSM_PMEM_VIDEO 14
430#define MSM_PMEM_PREVIEW 15
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700431#define MSM_PMEM_VIDEO_VPE 16
432#define MSM_PMEM_C2D 17
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700434#define MSM_PMEM_MAINIMG_VPE 18
435#define MSM_PMEM_THUMBNAIL_VPE 19
Ajay Dudani77b25702012-08-09 09:58:59 -0700436#define MSM_PMEM_BAYER_GRID 20
437#define MSM_PMEM_BAYER_FOCUS 21
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700439#define MSM_PMEM_BAYER_HIST 22
440#define MSM_PMEM_MAX 23
441#define STAT_AEAW 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700442#define STAT_AEC 1
Ajay Dudani77b25702012-08-09 09:58:59 -0700443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700444#define STAT_AF 2
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700445#define STAT_AWB 3
446#define STAT_RS 4
447#define STAT_CS 5
Ajay Dudani77b25702012-08-09 09:58:59 -0700448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Wu-cheng Li9d1f5af2010-07-12 10:32:11 -0700449#define STAT_IHIST 6
450#define STAT_SKIN 7
Ajay Dudani77b25702012-08-09 09:58:59 -0700451#define STAT_BG 8
452#define STAT_BF 9
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -0700454#define STAT_BHIST 10
455#define STAT_MAX 11
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700456#define FRAME_PREVIEW_OUTPUT1 0
457#define FRAME_PREVIEW_OUTPUT2 1
Ajay Dudani77b25702012-08-09 09:58:59 -0700458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700459#define FRAME_SNAPSHOT 2
460#define FRAME_THUMBNAIL 3
461#define FRAME_RAW_SNAPSHOT 4
462#define FRAME_MAX 5
Ajay Dudani77b25702012-08-09 09:58:59 -0700463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700464enum msm_stats_enum_type {
465 MSM_STATS_TYPE_AEC,
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700466 MSM_STATS_TYPE_AF,
467 MSM_STATS_TYPE_AWB,
Ajay Dudani77b25702012-08-09 09:58:59 -0700468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700469 MSM_STATS_TYPE_RS,
470 MSM_STATS_TYPE_CS,
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700471 MSM_STATS_TYPE_IHIST,
472 MSM_STATS_TYPE_SKIN,
Ajay Dudani77b25702012-08-09 09:58:59 -0700473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700474 MSM_STATS_TYPE_BG,
475 MSM_STATS_TYPE_BF,
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700476 MSM_STATS_TYPE_BHIST,
477 MSM_STATS_TYPE_AE_AW,
Ajay Dudani77b25702012-08-09 09:58:59 -0700478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700479 MSM_STATS_TYPE_MAX
480};
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700481struct msm_stats_buf_info {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700482 int type;
Ajay Dudani77b25702012-08-09 09:58:59 -0700483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700484 int fd;
485 void *vaddr;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700486 uint32_t offset;
487 uint32_t len;
Ajay Dudani77b25702012-08-09 09:58:59 -0700488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700489 uint32_t y_off;
490 uint32_t cbcr_off;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700491 uint32_t planar0_off;
492 uint32_t planar1_off;
Ajay Dudani77b25702012-08-09 09:58:59 -0700493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700494 uint32_t planar2_off;
495 uint8_t active;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700496 int buf_idx;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700497};
Ajay Dudani77b25702012-08-09 09:58:59 -0700498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700499struct msm_pmem_info {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700500 int type;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700501 int fd;
502 void *vaddr;
Ajay Dudani77b25702012-08-09 09:58:59 -0700503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700504 uint32_t offset;
505 uint32_t len;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700506 uint32_t y_off;
507 uint32_t cbcr_off;
Ajay Dudani77b25702012-08-09 09:58:59 -0700508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700509 uint32_t planar0_off;
510 uint32_t planar1_off;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700511 uint32_t planar2_off;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700512 uint8_t active;
Ajay Dudani77b25702012-08-09 09:58:59 -0700513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700514};
515struct outputCfg {
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700516 uint32_t height;
517 uint32_t width;
Ajay Dudani77b25702012-08-09 09:58:59 -0700518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700519 uint32_t window_height_firstline;
520 uint32_t window_height_lastline;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700521};
522#define VIDEO_NODE 0
Ajay Dudani77b25702012-08-09 09:58:59 -0700523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700524#define MCTL_NODE 1
525#define OUTPUT_1 0
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700526#define OUTPUT_2 1
Elliott Hughesc95eb572013-01-29 18:15:55 -0800527#define OUTPUT_1_AND_2 2
Ajay Dudani77b25702012-08-09 09:58:59 -0700528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Elliott Hughesc95eb572013-01-29 18:15:55 -0800529#define OUTPUT_1_AND_3 3
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700530#define CAMIF_TO_AXI_VIA_OUTPUT_2 4
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700531#define OUTPUT_1_AND_CAMIF_TO_AXI_VIA_OUTPUT_2 5
532#define OUTPUT_2_AND_CAMIF_TO_AXI_VIA_OUTPUT_1 6
Ajay Dudani77b25702012-08-09 09:58:59 -0700533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700534#define OUTPUT_1_2_AND_3 7
535#define OUTPUT_ALL_CHNLS 8
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700536#define OUTPUT_VIDEO_ALL_CHNLS 9
537#define OUTPUT_ZSL_ALL_CHNLS 10
Ajay Dudani77b25702012-08-09 09:58:59 -0700538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700539#define LAST_AXI_OUTPUT_MODE_ENUM = OUTPUT_ZSL_ALL_CHNLS
540#define OUTPUT_PRIM BIT(8)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700541#define OUTPUT_PRIM_ALL_CHNLS BIT(9)
542#define OUTPUT_SEC BIT(10)
Ajay Dudani77b25702012-08-09 09:58:59 -0700543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700544#define OUTPUT_SEC_ALL_CHNLS BIT(11)
545#define OUTPUT_TERT1 BIT(12)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700546#define OUTPUT_TERT2 BIT(13)
547#define MSM_FRAME_PREV_1 0
Ajay Dudani77b25702012-08-09 09:58:59 -0700548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700549#define MSM_FRAME_PREV_2 1
550#define MSM_FRAME_ENC 2
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700551#define OUTPUT_TYPE_P BIT(0)
552#define OUTPUT_TYPE_T BIT(1)
Ajay Dudani77b25702012-08-09 09:58:59 -0700553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700554#define OUTPUT_TYPE_S BIT(2)
555#define OUTPUT_TYPE_V BIT(3)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700556#define OUTPUT_TYPE_L BIT(4)
557#define OUTPUT_TYPE_ST_L BIT(5)
Ajay Dudani77b25702012-08-09 09:58:59 -0700558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700559#define OUTPUT_TYPE_ST_R BIT(6)
560#define OUTPUT_TYPE_ST_D BIT(7)
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700561#define OUTPUT_TYPE_R BIT(8)
562#define OUTPUT_TYPE_R1 BIT(9)
Ajay Dudani77b25702012-08-09 09:58:59 -0700563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700564struct fd_roi_info {
565 void *info;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700566 int info_len;
567};
Ajay Dudani77b25702012-08-09 09:58:59 -0700568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700569struct msm_mem_map_info {
570 uint32_t cookie;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700571 uint32_t length;
572 uint32_t mem_type;
Ajay Dudani77b25702012-08-09 09:58:59 -0700573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700574};
575#define MSM_MEM_MMAP 0
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700576#define MSM_MEM_USERPTR 1
577#define MSM_PLANE_MAX 8
Ajay Dudani77b25702012-08-09 09:58:59 -0700578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700579#define MSM_PLANE_Y 0
580#define MSM_PLANE_UV 1
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700581struct msm_frame {
582 struct timespec ts;
Ajay Dudani77b25702012-08-09 09:58:59 -0700583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700584 int path;
585 int type;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700586 unsigned long buffer;
587 uint32_t phy_offset;
Ajay Dudani77b25702012-08-09 09:58:59 -0700588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700589 uint32_t y_off;
590 uint32_t cbcr_off;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700591 uint32_t planar0_off;
592 uint32_t planar1_off;
Ajay Dudani77b25702012-08-09 09:58:59 -0700593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700594 uint32_t planar2_off;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700595 int fd;
596 void *cropinfo;
597 int croplen;
Ajay Dudani77b25702012-08-09 09:58:59 -0700598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700599 uint32_t error_code;
600 struct fd_roi_info roi_info;
601 uint32_t frame_id;
602 int stcam_quality_ind;
Ajay Dudani77b25702012-08-09 09:58:59 -0700603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700604 uint32_t stcam_conv_value;
605 struct ion_allocation_data ion_alloc;
606 struct ion_fd_data fd_data;
607 int ion_dev_fd;
Ajay Dudani77b25702012-08-09 09:58:59 -0700608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700609};
610enum msm_st_frame_packing {
611 SIDE_BY_SIDE_HALF,
612 SIDE_BY_SIDE_FULL,
Ajay Dudani77b25702012-08-09 09:58:59 -0700613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700614 TOP_DOWN_HALF,
615 TOP_DOWN_FULL,
616};
617struct msm_st_crop {
Ajay Dudani77b25702012-08-09 09:58:59 -0700618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700619 uint32_t in_w;
620 uint32_t in_h;
621 uint32_t out_w;
622 uint32_t out_h;
Ajay Dudani77b25702012-08-09 09:58:59 -0700623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700624};
625struct msm_st_half {
626 uint32_t buf_p0_off;
627 uint32_t buf_p1_off;
Ajay Dudani77b25702012-08-09 09:58:59 -0700628/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700629 uint32_t buf_p0_stride;
630 uint32_t buf_p1_stride;
631 uint32_t pix_x_off;
632 uint32_t pix_y_off;
Ajay Dudani77b25702012-08-09 09:58:59 -0700633/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700634 struct msm_st_crop stCropInfo;
635};
636struct msm_st_frame {
637 struct msm_frame buf_info;
Ajay Dudani77b25702012-08-09 09:58:59 -0700638/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700639 int type;
640 enum msm_st_frame_packing packing;
641 struct msm_st_half L;
642 struct msm_st_half R;
Ajay Dudani77b25702012-08-09 09:58:59 -0700643/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700644 int frame_id;
645};
646#define MSM_CAMERA_ERR_MASK (0xFFFFFFFF & 1)
647struct stats_buff {
Ajay Dudani77b25702012-08-09 09:58:59 -0700648/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700649 unsigned long buff;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700650 int fd;
651};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700652struct msm_stats_buf {
Ajay Dudani77b25702012-08-09 09:58:59 -0700653/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700654 uint8_t awb_ymin;
655 struct stats_buff aec;
656 struct stats_buff awb;
657 struct stats_buff af;
Ajay Dudani77b25702012-08-09 09:58:59 -0700658/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700659 struct stats_buff ihist;
660 struct stats_buff rs;
661 struct stats_buff cs;
662 struct stats_buff skin;
Ajay Dudani77b25702012-08-09 09:58:59 -0700663/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700664 int type;
665 uint32_t status_bits;
666 unsigned long buffer;
667 int fd;
Ajay Dudani77b25702012-08-09 09:58:59 -0700668/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700669 int length;
670 struct ion_handle *handle;
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700671 uint32_t frame_id;
672 int buf_idx;
Ajay Dudani77b25702012-08-09 09:58:59 -0700673/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700674};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700675#define MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT 0
676#define MSM_V4L2_EXT_CAPTURE_MODE_PREVIEW (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+1)
677#define MSM_V4L2_EXT_CAPTURE_MODE_VIDEO (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+2)
Ajay Dudani77b25702012-08-09 09:58:59 -0700678/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700679#define MSM_V4L2_EXT_CAPTURE_MODE_MAIN (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+3)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700680#define MSM_V4L2_EXT_CAPTURE_MODE_THUMBNAIL (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+4)
681#define MSM_V4L2_EXT_CAPTURE_MODE_RAW (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+5)
682#define MSM_V4L2_EXT_CAPTURE_MODE_RDI (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+6)
Ajay Dudani77b25702012-08-09 09:58:59 -0700683/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700684#define MSM_V4L2_EXT_CAPTURE_MODE_RDI1 (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+7)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700685#define MSM_V4L2_EXT_CAPTURE_MODE_RDI2 (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+8)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700686#define MSM_V4L2_EXT_CAPTURE_MODE_AEC (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+9)
687#define MSM_V4L2_EXT_CAPTURE_MODE_AWB (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+10)
Ajay Dudani77b25702012-08-09 09:58:59 -0700688/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700689#define MSM_V4L2_EXT_CAPTURE_MODE_AF (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+11)
690#define MSM_V4L2_EXT_CAPTURE_MODE_IHIST (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+12)
691#define MSM_V4L2_EXT_CAPTURE_MODE_CS (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+13)
692#define MSM_V4L2_EXT_CAPTURE_MODE_RS (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+14)
693/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694#define MSM_V4L2_EXT_CAPTURE_MODE_MAX (MSM_V4L2_EXT_CAPTURE_MODE_DEFAULT+15)
695#define MSM_V4L2_PID_MOTION_ISO V4L2_CID_PRIVATE_BASE
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700696#define MSM_V4L2_PID_EFFECT (V4L2_CID_PRIVATE_BASE+1)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700697#define MSM_V4L2_PID_HJR (V4L2_CID_PRIVATE_BASE+2)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700698/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700699#define MSM_V4L2_PID_LED_MODE (V4L2_CID_PRIVATE_BASE+3)
700#define MSM_V4L2_PID_PREP_SNAPSHOT (V4L2_CID_PRIVATE_BASE+4)
701#define MSM_V4L2_PID_EXP_METERING (V4L2_CID_PRIVATE_BASE+5)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700702#define MSM_V4L2_PID_ISO (V4L2_CID_PRIVATE_BASE+6)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700703/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700704#define MSM_V4L2_PID_CAM_MODE (V4L2_CID_PRIVATE_BASE+7)
705#define MSM_V4L2_PID_LUMA_ADAPTATION (V4L2_CID_PRIVATE_BASE+8)
706#define MSM_V4L2_PID_BEST_SHOT (V4L2_CID_PRIVATE_BASE+9)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700707#define MSM_V4L2_PID_FOCUS_MODE (V4L2_CID_PRIVATE_BASE+10)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700708/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700709#define MSM_V4L2_PID_BL_DETECTION (V4L2_CID_PRIVATE_BASE+11)
710#define MSM_V4L2_PID_SNOW_DETECTION (V4L2_CID_PRIVATE_BASE+12)
711#define MSM_V4L2_PID_CTRL_CMD (V4L2_CID_PRIVATE_BASE+13)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700712#define MSM_V4L2_PID_EVT_SUB_INFO (V4L2_CID_PRIVATE_BASE+14)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700713/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -0700714#define MSM_V4L2_PID_STROBE_FLASH (V4L2_CID_PRIVATE_BASE+15)
715#define MSM_V4L2_PID_INST_HANDLE (V4L2_CID_PRIVATE_BASE+16)
716#define MSM_V4L2_PID_MMAP_INST (V4L2_CID_PRIVATE_BASE+17)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700717#define MSM_V4L2_PID_PP_PLANE_INFO (V4L2_CID_PRIVATE_BASE+18)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700718/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700719#define MSM_V4L2_PID_MAX MSM_V4L2_PID_PP_PLANE_INFO
720#define MSM_V4L2_CAM_OP_DEFAULT 0
721#define MSM_V4L2_CAM_OP_PREVIEW (MSM_V4L2_CAM_OP_DEFAULT+1)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700722#define MSM_V4L2_CAM_OP_VIDEO (MSM_V4L2_CAM_OP_DEFAULT+2)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700723/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700724#define MSM_V4L2_CAM_OP_CAPTURE (MSM_V4L2_CAM_OP_DEFAULT+3)
725#define MSM_V4L2_CAM_OP_ZSL (MSM_V4L2_CAM_OP_DEFAULT+4)
726#define MSM_V4L2_CAM_OP_RAW (MSM_V4L2_CAM_OP_DEFAULT+5)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700727#define MSM_V4L2_CAM_OP_JPEG_CAPTURE (MSM_V4L2_CAM_OP_DEFAULT+6)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700728/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700729#define MSM_V4L2_VID_CAP_TYPE 0
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700730#define MSM_V4L2_STREAM_ON 1
731#define MSM_V4L2_STREAM_OFF 2
732#define MSM_V4L2_SNAPSHOT 3
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700733/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700734#define MSM_V4L2_QUERY_CTRL 4
735#define MSM_V4L2_GET_CTRL 5
736#define MSM_V4L2_SET_CTRL 6
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700737#define MSM_V4L2_QUERY 7
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700738/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700739#define MSM_V4L2_GET_CROP 8
740#define MSM_V4L2_SET_CROP 9
741#define MSM_V4L2_OPEN 10
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700742#define MSM_V4L2_CLOSE 11
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700743/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700744#define MSM_V4L2_SET_CTRL_CMD 12
745#define MSM_V4L2_EVT_SUB_MASK 13
746#define MSM_V4L2_MAX 14
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700747#define V4L2_CAMERA_EXIT 43
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700748/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700749struct crop_info {
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700750 void *info;
751 int len;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700752};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700753/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700754struct msm_postproc {
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700755 int ftnum;
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700756 struct msm_frame fthumnail;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700757 int fmnum;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700758/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700759 struct msm_frame fmain;
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700760};
Iliyan Malchevbf8709f2009-06-04 11:55:53 -0700761struct msm_snapshot_pp_status {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700762 void *status;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700763/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700764};
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700765#define CFG_SET_MODE 0
766#define CFG_SET_EFFECT 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700767#define CFG_START 2
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700768/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700769#define CFG_PWR_UP 3
770#define CFG_PWR_DOWN 4
771#define CFG_WRITE_EXPOSURE_GAIN 5
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700772#define CFG_SET_DEFAULT_FOCUS 6
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700773/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700774#define CFG_MOVE_FOCUS 7
775#define CFG_REGISTER_TO_REAL_GAIN 8
776#define CFG_REAL_TO_REGISTER_GAIN 9
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700777#define CFG_SET_FPS 10
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700778/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700779#define CFG_SET_PICT_FPS 11
780#define CFG_SET_BRIGHTNESS 12
781#define CFG_SET_CONTRAST 13
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700782#define CFG_SET_ZOOM 14
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700783/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700784#define CFG_SET_EXPOSURE_MODE 15
785#define CFG_SET_WB 16
786#define CFG_SET_ANTIBANDING 17
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700787#define CFG_SET_EXP_GAIN 18
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700788/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700789#define CFG_SET_PICT_EXP_GAIN 19
790#define CFG_SET_LENS_SHADING 20
791#define CFG_GET_PICT_FPS 21
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700792#define CFG_GET_PREV_L_PF 22
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700793/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700794#define CFG_GET_PREV_P_PL 23
795#define CFG_GET_PICT_L_PF 24
796#define CFG_GET_PICT_P_PL 25
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700797#define CFG_GET_AF_MAX_STEPS 26
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700798/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700799#define CFG_GET_PICT_MAX_EXP_LC 27
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700800#define CFG_SEND_WB_INFO 28
801#define CFG_SENSOR_INIT 29
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700802#define CFG_GET_3D_CALI_DATA 30
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700803/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700804#define CFG_GET_CALIB_DATA 31
805#define CFG_GET_OUTPUT_INFO 32
806#define CFG_GET_EEPROM_INFO 33
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700807#define CFG_GET_EEPROM_DATA 34
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700808/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700809#define CFG_SET_ACTUATOR_INFO 35
810#define CFG_GET_ACTUATOR_INFO 36
811#define CFG_SET_SATURATION 37
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700812#define CFG_SET_SHARPNESS 38
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700813/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700814#define CFG_SET_TOUCHAEC 39
815#define CFG_SET_AUTO_FOCUS 40
816#define CFG_SET_AUTOFLASH 41
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700817#define CFG_SET_EXPOSURE_COMPENSATION 42
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700818/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700819#define CFG_SET_ISO 43
820#define CFG_START_STREAM 44
821#define CFG_STOP_STREAM 45
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700822#define CFG_GET_CSI_PARAMS 46
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700823/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700824#define CFG_MAX 47
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700825#define MOVE_NEAR 0
826#define MOVE_FAR 1
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700827#define SENSOR_PREVIEW_MODE 0
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700828/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700829#define SENSOR_SNAPSHOT_MODE 1
830#define SENSOR_RAW_SNAPSHOT_MODE 2
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700831#define SENSOR_HFR_60FPS_MODE 3
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700832#define SENSOR_HFR_90FPS_MODE 4
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700833/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700834#define SENSOR_HFR_120FPS_MODE 5
835#define SENSOR_QTR_SIZE 0
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700836#define SENSOR_FULL_SIZE 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700837#define SENSOR_QVGA_SIZE 2
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700838/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700839#define SENSOR_INVALID_SIZE 3
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700840#define CAMERA_EFFECT_OFF 0
841#define CAMERA_EFFECT_MONO 1
842#define CAMERA_EFFECT_NEGATIVE 2
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700843/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700844#define CAMERA_EFFECT_SOLARIZE 3
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700845#define CAMERA_EFFECT_SEPIA 4
846#define CAMERA_EFFECT_POSTERIZE 5
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700847#define CAMERA_EFFECT_WHITEBOARD 6
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700848/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700849#define CAMERA_EFFECT_BLACKBOARD 7
850#define CAMERA_EFFECT_AQUA 8
851#define CAMERA_EFFECT_EMBOSS 9
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700852#define CAMERA_EFFECT_SKETCH 10
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700853/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700854#define CAMERA_EFFECT_NEON 11
Iliyan Malchev94a144e2009-04-30 12:29:52 -0700855#define CAMERA_EFFECT_MAX 12
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700856#define CAMERA_EFFECT_BW 10
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700857#define CAMERA_EFFECT_BLUISH 12
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700858/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700859#define CAMERA_EFFECT_REDDISH 13
860#define CAMERA_EFFECT_GREENISH 14
861#define CAMERA_ANTIBANDING_OFF 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700862#define CAMERA_ANTIBANDING_50HZ 2
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700863/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700864#define CAMERA_ANTIBANDING_60HZ 1
865#define CAMERA_ANTIBANDING_AUTO 3
866#define CAMERA_CONTRAST_LV0 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700867#define CAMERA_CONTRAST_LV1 1
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700868/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700869#define CAMERA_CONTRAST_LV2 2
870#define CAMERA_CONTRAST_LV3 3
871#define CAMERA_CONTRAST_LV4 4
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700872#define CAMERA_CONTRAST_LV5 5
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700873/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700874#define CAMERA_CONTRAST_LV6 6
875#define CAMERA_CONTRAST_LV7 7
876#define CAMERA_CONTRAST_LV8 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700877#define CAMERA_CONTRAST_LV9 9
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700878/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700879#define CAMERA_BRIGHTNESS_LV0 0
880#define CAMERA_BRIGHTNESS_LV1 1
881#define CAMERA_BRIGHTNESS_LV2 2
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700882#define CAMERA_BRIGHTNESS_LV3 3
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700883/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700884#define CAMERA_BRIGHTNESS_LV4 4
885#define CAMERA_BRIGHTNESS_LV5 5
886#define CAMERA_BRIGHTNESS_LV6 6
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700887#define CAMERA_BRIGHTNESS_LV7 7
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700888/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700889#define CAMERA_BRIGHTNESS_LV8 8
890#define CAMERA_SATURATION_LV0 0
891#define CAMERA_SATURATION_LV1 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700892#define CAMERA_SATURATION_LV2 2
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700893/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700894#define CAMERA_SATURATION_LV3 3
895#define CAMERA_SATURATION_LV4 4
896#define CAMERA_SATURATION_LV5 5
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700897#define CAMERA_SATURATION_LV6 6
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700898/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700899#define CAMERA_SATURATION_LV7 7
900#define CAMERA_SATURATION_LV8 8
901#define CAMERA_SHARPNESS_LV0 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700902#define CAMERA_SHARPNESS_LV1 3
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700903/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700904#define CAMERA_SHARPNESS_LV2 6
905#define CAMERA_SHARPNESS_LV3 9
906#define CAMERA_SHARPNESS_LV4 12
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700907#define CAMERA_SHARPNESS_LV5 15
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700908/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700909#define CAMERA_SHARPNESS_LV6 18
910#define CAMERA_SHARPNESS_LV7 21
911#define CAMERA_SHARPNESS_LV8 24
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700912#define CAMERA_SHARPNESS_LV9 27
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700913/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700914#define CAMERA_SHARPNESS_LV10 30
915#define CAMERA_SETAE_AVERAGE 0
916#define CAMERA_SETAE_CENWEIGHT 1
Elliott Hughesc95eb572013-01-29 18:15:55 -0800917#define CAMERA_WB_AUTO 1
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700918/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700919#define CAMERA_WB_CUSTOM 2
920#define CAMERA_WB_INCANDESCENT 3
921#define CAMERA_WB_FLUORESCENT 4
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700922#define CAMERA_WB_DAYLIGHT 5
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700923/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700924#define CAMERA_WB_CLOUDY_DAYLIGHT 6
925#define CAMERA_WB_TWILIGHT 7
926#define CAMERA_WB_SHADE 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700927#define CAMERA_EXPOSURE_COMPENSATION_LV0 12
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700928/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700929#define CAMERA_EXPOSURE_COMPENSATION_LV1 6
930#define CAMERA_EXPOSURE_COMPENSATION_LV2 0
931#define CAMERA_EXPOSURE_COMPENSATION_LV3 -6
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700932#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700933/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700934enum msm_v4l2_saturation_level {
935 MSM_V4L2_SATURATION_L0,
936 MSM_V4L2_SATURATION_L1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700937 MSM_V4L2_SATURATION_L2,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700938/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700939 MSM_V4L2_SATURATION_L3,
940 MSM_V4L2_SATURATION_L4,
941 MSM_V4L2_SATURATION_L5,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700942 MSM_V4L2_SATURATION_L6,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700943/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700944 MSM_V4L2_SATURATION_L7,
945 MSM_V4L2_SATURATION_L8,
946 MSM_V4L2_SATURATION_L9,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700947 MSM_V4L2_SATURATION_L10,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700948/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700949};
950enum msm_v4l2_contrast_level {
951 MSM_V4L2_CONTRAST_L0,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700952 MSM_V4L2_CONTRAST_L1,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700953/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700954 MSM_V4L2_CONTRAST_L2,
955 MSM_V4L2_CONTRAST_L3,
956 MSM_V4L2_CONTRAST_L4,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700957 MSM_V4L2_CONTRAST_L5,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700958/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700959 MSM_V4L2_CONTRAST_L6,
960 MSM_V4L2_CONTRAST_L7,
961 MSM_V4L2_CONTRAST_L8,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700962 MSM_V4L2_CONTRAST_L9,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700963/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700964 MSM_V4L2_CONTRAST_L10,
965};
966enum msm_v4l2_exposure_level {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700967 MSM_V4L2_EXPOSURE_N2,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700968/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700969 MSM_V4L2_EXPOSURE_N1,
970 MSM_V4L2_EXPOSURE_D,
971 MSM_V4L2_EXPOSURE_P1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700972 MSM_V4L2_EXPOSURE_P2,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700973/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700974};
975enum msm_v4l2_sharpness_level {
976 MSM_V4L2_SHARPNESS_L0,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700977 MSM_V4L2_SHARPNESS_L1,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700978/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700979 MSM_V4L2_SHARPNESS_L2,
980 MSM_V4L2_SHARPNESS_L3,
981 MSM_V4L2_SHARPNESS_L4,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700982 MSM_V4L2_SHARPNESS_L5,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700983/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700984 MSM_V4L2_SHARPNESS_L6,
985};
986enum msm_v4l2_expo_metering_mode {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700987 MSM_V4L2_EXP_FRAME_AVERAGE,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700988/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700989 MSM_V4L2_EXP_CENTER_WEIGHTED,
990 MSM_V4L2_EXP_SPOT_METERING,
991};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700992enum msm_v4l2_iso_mode {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700993/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700994 MSM_V4L2_ISO_AUTO = 0,
995 MSM_V4L2_ISO_DEBLUR,
996 MSM_V4L2_ISO_100,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700997 MSM_V4L2_ISO_200,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -0700998/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -0700999 MSM_V4L2_ISO_400,
1000 MSM_V4L2_ISO_800,
1001 MSM_V4L2_ISO_1600,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001002};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001003/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001004enum msm_v4l2_wb_mode {
1005 MSM_V4L2_WB_OFF,
1006 MSM_V4L2_WB_AUTO ,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001007 MSM_V4L2_WB_CUSTOM,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001008/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001009 MSM_V4L2_WB_INCANDESCENT,
1010 MSM_V4L2_WB_FLUORESCENT,
1011 MSM_V4L2_WB_DAYLIGHT,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001012 MSM_V4L2_WB_CLOUDY_DAYLIGHT,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001013/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001014};
1015enum msm_v4l2_special_effect {
1016 MSM_V4L2_EFFECT_OFF,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001017 MSM_V4L2_EFFECT_MONO,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001018/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001019 MSM_V4L2_EFFECT_NEGATIVE,
1020 MSM_V4L2_EFFECT_SOLARIZE,
1021 MSM_V4L2_EFFECT_SEPIA,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001022 MSM_V4L2_EFFECT_POSTERAIZE,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001024 MSM_V4L2_EFFECT_WHITEBOARD,
1025 MSM_V4L2_EFFECT_BLACKBOARD,
1026 MSM_V4L2_EFFECT_AQUA,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001027 MSM_V4L2_EFFECT_EMBOSS,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001029 MSM_V4L2_EFFECT_SKETCH,
1030 MSM_V4L2_EFFECT_NEON,
1031 MSM_V4L2_EFFECT_MAX,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001032};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001034enum msm_v4l2_power_line_frequency {
1035 MSM_V4L2_POWER_LINE_OFF,
1036 MSM_V4L2_POWER_LINE_60HZ,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001037 MSM_V4L2_POWER_LINE_50HZ,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001039 MSM_V4L2_POWER_LINE_AUTO,
1040};
1041#define CAMERA_ISO_TYPE_AUTO 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001042#define CAMEAR_ISO_TYPE_HJR 1
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001044#define CAMEAR_ISO_TYPE_100 2
1045#define CAMERA_ISO_TYPE_200 3
1046#define CAMERA_ISO_TYPE_400 4
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001047#define CAMEAR_ISO_TYPE_800 5
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001049#define CAMERA_ISO_TYPE_1600 6
1050struct sensor_pict_fps {
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001051 uint16_t prevfps;
1052 uint16_t pictfps;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001054};
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001055struct exp_gain_cfg {
1056 uint16_t gain;
1057 uint32_t line;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001059};
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001060struct focus_cfg {
1061 int32_t steps;
1062 int dir;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001064};
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001065struct fps_cfg {
1066 uint16_t f_mult;
1067 uint16_t fps_div;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001069 uint32_t pict_fps_div;
1070};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001071struct wb_info_cfg {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001072 uint16_t red_gain;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001074 uint16_t green_gain;
1075 uint16_t blue_gain;
1076};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001077struct sensor_3d_exp_cfg {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001079 uint16_t gain;
1080 uint32_t line;
1081 uint16_t r_gain;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001082 uint16_t b_gain;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001084 uint16_t gr_gain;
1085 uint16_t gb_gain;
1086 uint16_t gain_adjust;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001087};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001089struct sensor_3d_cali_data_t{
1090 unsigned char left_p_matrix[3][4][8];
1091 unsigned char right_p_matrix[3][4][8];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001092 unsigned char square_len[8];
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001094 unsigned char focal_len[8];
1095 unsigned char pixel_pitch[8];
1096 uint16_t left_r;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001097 uint16_t left_b;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001099 uint16_t left_gb;
1100 uint16_t left_af_far;
1101 uint16_t left_af_mid;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001102 uint16_t left_af_short;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001104 uint16_t left_af_5um;
1105 uint16_t left_af_50up;
1106 uint16_t left_af_50down;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001107 uint16_t right_r;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001109 uint16_t right_b;
1110 uint16_t right_gb;
1111 uint16_t right_af_far;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001112 uint16_t right_af_mid;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001114 uint16_t right_af_short;
1115 uint16_t right_af_5um;
1116 uint16_t right_af_50up;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001117 uint16_t right_af_50down;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001119};
1120struct sensor_init_cfg {
1121 uint8_t prev_res;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001122 uint8_t pict_res;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001124};
Ajay Dudani77b25702012-08-09 09:58:59 -07001125#define ROLLOFF_CALDATA_SIZE (17 * 13)
Ajay Dudani77b25702012-08-09 09:58:59 -07001126typedef struct
1127{
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001129 unsigned short mesh_rolloff_table_size;
1130 uint8_t r_gain[ROLLOFF_CALDATA_SIZE];
Ajay Dudani77b25702012-08-09 09:58:59 -07001131 uint8_t gr_gain[ROLLOFF_CALDATA_SIZE];
1132 uint8_t gb_gain[ROLLOFF_CALDATA_SIZE];
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001134 uint8_t b_gain[ROLLOFF_CALDATA_SIZE];
1135 uint8_t red_ref[17];
Ajay Dudani77b25702012-08-09 09:58:59 -07001136} rolloff_caldata_array_type;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001137struct sensor_calib_data {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001139 uint16_t r_over_g;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001140 uint16_t b_over_g;
1141 uint16_t gr_over_gb;
1142 uint16_t macro_2_inf;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001144 uint16_t inf_2_macro;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001145 uint16_t stroke_amt;
1146 uint16_t af_pos_1m;
1147 uint16_t af_pos_inf;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001149 rolloff_caldata_array_type rolloff;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001150};
Ajay Dudani77b25702012-08-09 09:58:59 -07001151enum msm_sensor_resolution_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001152 MSM_SENSOR_RES_FULL,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001154 MSM_SENSOR_RES_QTR,
1155 MSM_SENSOR_RES_2,
Ajay Dudani77b25702012-08-09 09:58:59 -07001156 MSM_SENSOR_RES_3,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001157 MSM_SENSOR_RES_4,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001159 MSM_SENSOR_RES_5,
1160 MSM_SENSOR_RES_6,
Ajay Dudani77b25702012-08-09 09:58:59 -07001161 MSM_SENSOR_RES_7,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001162 MSM_SENSOR_INVALID_RES,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001164};
1165struct msm_sensor_output_info_t {
Ajay Dudani77b25702012-08-09 09:58:59 -07001166 uint16_t x_output;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001167 uint16_t y_output;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001169 uint16_t line_length_pclk;
1170 uint16_t frame_length_lines;
Ajay Dudani77b25702012-08-09 09:58:59 -07001171 uint32_t vt_pixel_clk;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001172 uint32_t op_pixel_clk;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001174 uint16_t binning_factor;
1175};
Ajay Dudani77b25702012-08-09 09:58:59 -07001176struct sensor_output_info_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001177 struct msm_sensor_output_info_t *output_info;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001179 uint16_t num_info;
1180};
Ajay Dudani77b25702012-08-09 09:58:59 -07001181struct mirror_flip {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001182 int32_t x_mirror;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001184 int32_t y_flip;
1185};
Ajay Dudani77b25702012-08-09 09:58:59 -07001186struct cord {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001187 uint32_t x;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001189 uint32_t y;
1190};
Ajay Dudani77b25702012-08-09 09:58:59 -07001191struct msm_eeprom_data_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001192 void *eeprom_data;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001194 uint16_t index;
1195};
Ajay Dudani77b25702012-08-09 09:58:59 -07001196struct msm_camera_csid_vc_cfg {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001197 uint8_t cid;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001199 uint8_t dt;
1200 uint8_t decode_format;
Ajay Dudani77b25702012-08-09 09:58:59 -07001201};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001202struct csi_lane_params_t {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001204 uint8_t csi_lane_assign;
1205 uint8_t csi_lane_mask;
Ajay Dudani77b25702012-08-09 09:58:59 -07001206 uint8_t csi_if;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001207 uint8_t csid_core;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001209 uint32_t csid_version;
1210};
Ajay Dudani77b25702012-08-09 09:58:59 -07001211#define CSI_EMBED_DATA 0x12
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001212#define CSI_RESERVED_DATA_0 0x13
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001214#define CSI_YUV422_8 0x1E
1215#define CSI_RAW8 0x2A
Ajay Dudani77b25702012-08-09 09:58:59 -07001216#define CSI_RAW10 0x2B
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001217#define CSI_RAW12 0x2C
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001219#define CSI_DECODE_6BIT 0
1220#define CSI_DECODE_8BIT 1
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001221#define CSI_DECODE_10BIT 2
1222#define CSI_DECODE_DPCM_10_8_10 5
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001224#define ISPIF_STREAM(intf, action, vfe) (((intf)<<ISPIF_S_STREAM_SHIFT)+ (action)+((vfe)<<ISPIF_VFE_INTF_SHIFT))
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001225#define ISPIF_ON_FRAME_BOUNDARY (0x01 << 0)
Ajay Dudani77b25702012-08-09 09:58:59 -07001226#define ISPIF_OFF_FRAME_BOUNDARY (0x01 << 1)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001227#define ISPIF_OFF_IMMEDIATELY (0x01 << 2)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001229#define ISPIF_S_STREAM_SHIFT 4
Ajay Dudani77b25702012-08-09 09:58:59 -07001230#define ISPIF_VFE_INTF_SHIFT 12
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001231#define PIX_0 (0x01 << 0)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001232#define RDI_0 (0x01 << 1)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001234#define PIX_1 (0x01 << 2)
1235#define RDI_1 (0x01 << 3)
Ajay Dudani77b25702012-08-09 09:58:59 -07001236#define RDI_2 (0x01 << 4)
1237enum msm_ispif_vfe_intf {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001239 VFE0,
1240 VFE1,
Ajay Dudani77b25702012-08-09 09:58:59 -07001241 VFE_MAX,
1242};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001244enum msm_ispif_intftype {
1245 PIX0,
1246 RDI0,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001247 PIX1,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001249 RDI1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001250 RDI2,
Ajay Dudani77b25702012-08-09 09:58:59 -07001251 INTF_MAX,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001252};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001254enum msm_ispif_vc {
1255 VC0,
Ajay Dudani77b25702012-08-09 09:58:59 -07001256 VC1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001257 VC2,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001259 VC3,
1260};
Ajay Dudani77b25702012-08-09 09:58:59 -07001261enum msm_ispif_cid {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001262 CID0,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001264 CID1,
1265 CID2,
Ajay Dudani77b25702012-08-09 09:58:59 -07001266 CID3,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001267 CID4,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001269 CID5,
1270 CID6,
Ajay Dudani77b25702012-08-09 09:58:59 -07001271 CID7,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001272 CID8,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001274 CID9,
1275 CID10,
Ajay Dudani77b25702012-08-09 09:58:59 -07001276 CID11,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001277 CID12,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001279 CID13,
1280 CID14,
Ajay Dudani77b25702012-08-09 09:58:59 -07001281 CID15,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001282};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001284struct msm_ispif_params {
1285 uint8_t intftype;
Ajay Dudani77b25702012-08-09 09:58:59 -07001286 uint16_t cid_mask;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001287 uint8_t csid;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001289 uint8_t vfe_intf;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001290};
1291struct msm_ispif_params_list {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001292 uint32_t len;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001294 struct msm_ispif_params params[4];
1295};
1296enum ispif_cfg_type_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001297 ISPIF_INIT,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001299 ISPIF_SET_CFG,
1300 ISPIF_SET_ON_FRAME_BOUNDARY,
1301 ISPIF_SET_OFF_FRAME_BOUNDARY,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001302 ISPIF_SET_OFF_IMMEDIATELY,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001304 ISPIF_RELEASE,
1305};
1306struct ispif_cfg_data {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001307 enum ispif_cfg_type_t cfgtype;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001309 union {
1310 uint32_t csid_version;
1311 int cmd;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001312 struct msm_ispif_params_list ispif_params;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001314 } cfg;
1315};
Iliyan Malchevbf8709f2009-06-04 11:55:53 -07001316struct sensor_cfg_data {
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001317 int cfgtype;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001319 int mode;
1320 int rs;
1321 uint8_t max_steps;
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001322 union {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001324 int8_t effect;
1325 uint8_t lens_shading;
1326 uint16_t prevl_pf;
1327 uint16_t prevp_pl;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001329 uint16_t pictl_pf;
1330 uint16_t pictp_pl;
1331 uint32_t pict_max_exp_lc;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001332 uint16_t p_fps;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001334 uint8_t iso_type;
1335 struct sensor_init_cfg init_info;
1336 struct sensor_pict_fps gfps;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001337 struct exp_gain_cfg exp_gain;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001339 struct focus_cfg focus;
1340 struct fps_cfg fps;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001341 struct wb_info_cfg wb_info;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001342 struct sensor_3d_exp_cfg sensor_3d_exp;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001344 struct sensor_calib_data calib_info;
1345 struct sensor_output_info_t output_info;
1346 struct msm_eeprom_data_t eeprom_data;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001347 struct csi_lane_params_t csi_lane_params;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001349 uint16_t antibanding;
1350 uint8_t contrast;
1351 uint8_t saturation;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001352 uint8_t sharpness;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001354 int8_t brightness;
1355 int ae_mode;
1356 uint8_t wb_val;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001357 int8_t exp_compensation;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001359 struct cord aec_cord;
1360 int is_autoflash;
1361 struct mirror_flip mirror_flip;
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001362 } cfg;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001364};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001365struct damping_params_t {
1366 uint32_t damping_step;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001367 uint32_t damping_delay;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001369 uint32_t hw_params;
1370};
1371enum actuator_type {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001372 ACTUATOR_VCM,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001374 ACTUATOR_PIEZO,
1375};
1376enum msm_actuator_data_type {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001377 MSM_ACTUATOR_BYTE_DATA = 1,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001379 MSM_ACTUATOR_WORD_DATA,
1380};
1381enum msm_actuator_addr_type {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001382 MSM_ACTUATOR_BYTE_ADDR = 1,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001384 MSM_ACTUATOR_WORD_ADDR,
1385};
1386enum msm_actuator_write_type {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001387 MSM_ACTUATOR_WRITE_HW_DAMP,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001389 MSM_ACTUATOR_WRITE_DAC,
1390};
1391struct msm_actuator_reg_params_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001392 enum msm_actuator_write_type reg_write_type;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001394 uint32_t hw_mask;
1395 uint16_t reg_addr;
1396 uint16_t hw_shift;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001397 uint16_t data_shift;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001399};
1400struct reg_settings_t {
1401 uint16_t reg_addr;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001402 uint16_t reg_data;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001404};
1405struct region_params_t {
1406 uint16_t step_bound[2];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001407 uint16_t code_per_step;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001409};
1410struct msm_actuator_move_params_t {
1411 int8_t dir;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001412 int8_t sign_dir;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001414 int16_t dest_step_pos;
1415 int32_t num_steps;
1416 struct damping_params_t *ringing_params;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001417};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001419struct msm_actuator_tuning_params_t {
1420 int16_t initial_code;
1421 uint16_t pwd_step;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001422 uint16_t region_size;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001424 uint32_t total_steps;
1425 struct region_params_t *region_params;
1426};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001427struct msm_actuator_params_t {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001429 enum actuator_type act_type;
1430 uint8_t reg_tbl_size;
1431 uint16_t data_size;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001432 uint16_t init_setting_size;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001434 uint32_t i2c_addr;
1435 enum msm_actuator_addr_type i2c_addr_type;
1436 enum msm_actuator_data_type i2c_data_type;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001437 struct msm_actuator_reg_params_t *reg_tbl_params;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001439 struct reg_settings_t *init_settings;
1440};
1441struct msm_actuator_set_info_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001442 struct msm_actuator_params_t actuator_params;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001444 struct msm_actuator_tuning_params_t af_tuning_params;
1445};
1446struct msm_actuator_get_info_t {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001447 uint32_t focal_length_num;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001449 uint32_t focal_length_den;
1450 uint32_t f_number_num;
1451 uint32_t f_number_den;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001452 uint32_t f_pix_num;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001454 uint32_t f_pix_den;
1455 uint32_t total_f_dist_num;
1456 uint32_t total_f_dist_den;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001457 uint32_t hor_view_angle_num;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001459 uint32_t hor_view_angle_den;
1460 uint32_t ver_view_angle_num;
1461 uint32_t ver_view_angle_den;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001462};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001464enum af_camera_name {
1465 ACTUATOR_MAIN_CAM_0,
1466 ACTUATOR_MAIN_CAM_1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001467 ACTUATOR_MAIN_CAM_2,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001469 ACTUATOR_MAIN_CAM_3,
1470 ACTUATOR_MAIN_CAM_4,
1471 ACTUATOR_MAIN_CAM_5,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001472 ACTUATOR_WEB_CAM_0,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001474 ACTUATOR_WEB_CAM_1,
1475 ACTUATOR_WEB_CAM_2,
1476};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001477struct msm_actuator_cfg_data {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001479 int cfgtype;
1480 uint8_t is_af_supported;
1481 union {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001482 struct msm_actuator_move_params_t move;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001484 struct msm_actuator_set_info_t set_info;
1485 struct msm_actuator_get_info_t get_info;
1486 enum af_camera_name cam_name;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001487 } cfg;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001489};
1490struct msm_eeprom_support {
1491 uint16_t is_supported;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001492 uint16_t size;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001494 uint16_t index;
1495 uint16_t qvalue;
1496};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001497struct msm_calib_wb {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001499 uint16_t r_over_g;
1500 uint16_t b_over_g;
1501 uint16_t gr_over_gb;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001502};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001504struct msm_calib_af {
1505 uint16_t macro_dac;
1506 uint16_t inf_dac;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001507 uint16_t start_dac;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001509};
1510struct msm_calib_lsc {
1511 uint16_t r_gain[221];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001512 uint16_t b_gain[221];
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001514 uint16_t gr_gain[221];
1515 uint16_t gb_gain[221];
1516};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001517struct pixel_t {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001519 int x;
1520 int y;
1521};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001522struct msm_calib_dpc {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001524 uint16_t validcount;
1525 struct pixel_t snapshot_coord[128];
1526 struct pixel_t preview_coord[128];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001527 struct pixel_t video_coord[128];
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001529};
1530struct msm_camera_eeprom_info_t {
1531 struct msm_eeprom_support af;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001532 struct msm_eeprom_support wb;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001534 struct msm_eeprom_support lsc;
1535 struct msm_eeprom_support dpc;
1536};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001537struct msm_eeprom_cfg_data {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001539 int cfgtype;
1540 uint8_t is_eeprom_supported;
1541 union {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001542 struct msm_eeprom_data_t get_data;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001544 struct msm_camera_eeprom_info_t get_info;
1545 } cfg;
1546};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001547struct sensor_large_data {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001549 int cfgtype;
1550 union {
1551 struct sensor_3d_cali_data_t sensor_3d_cali_data;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001552 } data;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001554};
1555enum sensor_type_t {
1556 BAYER,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001557 YUV,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001559 JPEG_SOC,
1560};
1561enum flash_type {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001562 LED_FLASH,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001564 STROBE_FLASH,
1565};
1566enum strobe_flash_ctrl_type {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001567 STROBE_FLASH_CTRL_INIT,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001569 STROBE_FLASH_CTRL_CHARGE,
1570 STROBE_FLASH_CTRL_RELEASE
1571};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001572struct strobe_flash_ctrl_data {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001574 enum strobe_flash_ctrl_type type;
1575 int charge_en;
1576};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001577struct msm_camera_info {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001579 int num_cameras;
1580 uint8_t has_3d_support[MSM_MAX_CAMERA_SENSORS];
1581 uint8_t is_internal_cam[MSM_MAX_CAMERA_SENSORS];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001582 uint32_t s_mount_angle[MSM_MAX_CAMERA_SENSORS];
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001584 const char *video_dev_name[MSM_MAX_CAMERA_SENSORS];
1585 enum sensor_type_t sensor_type[MSM_MAX_CAMERA_SENSORS];
1586};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001587struct msm_cam_config_dev_info {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001589 int num_config_nodes;
1590 const char *config_dev_name[MSM_MAX_CAMERA_CONFIGS];
1591 int config_dev_id[MSM_MAX_CAMERA_CONFIGS];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001592};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001594struct msm_mctl_node_info {
1595 int num_mctl_nodes;
1596 const char *mctl_node_name[MSM_MAX_CAMERA_SENSORS];
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001597};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001599struct flash_ctrl_data {
1600 int flashtype;
1601 union {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001602 int led_state;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001604 struct strobe_flash_ctrl_data strobe_ctrl;
1605 } ctrl_data;
1606};
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001607#define GET_NAME 0
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001609#define GET_PREVIEW_LINE_PER_FRAME 1
1610#define GET_PREVIEW_PIXELS_PER_LINE 2
1611#define GET_SNAPSHOT_LINE_PER_FRAME 3
1612#define GET_SNAPSHOT_PIXELS_PER_LINE 4
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001614#define GET_SNAPSHOT_FPS 5
1615#define GET_SNAPSHOT_MAX_EP_LINE_CNT 6
Iliyan Malchevbf8709f2009-06-04 11:55:53 -07001616struct msm_camsensor_info {
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001617 char name[MAX_SENSOR_NAME];
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev94a144e2009-04-30 12:29:52 -07001619 uint8_t flash_enabled;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001620 uint8_t strobe_flash_enabled;
1621 uint8_t actuator_enabled;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001622 uint8_t ispif_supported;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001624 int8_t total_steps;
1625 uint8_t support_3d;
1626 enum flash_type flashtype;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001627 enum sensor_type_t sensor_type;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001628/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001629 uint32_t pxlcode;
1630 uint32_t camera_type;
1631 int mount_angle;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001632 uint32_t max_width;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001633/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001634 uint32_t max_height;
1635};
1636#define V4L2_SINGLE_PLANE 0
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001637#define V4L2_MULTI_PLANE_Y 0
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001638/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001639#define V4L2_MULTI_PLANE_CBCR 1
1640#define V4L2_MULTI_PLANE_CB 1
1641#define V4L2_MULTI_PLANE_CR 2
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001642struct plane_data {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001643/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001644 int plane_id;
1645 uint32_t offset;
1646 unsigned long size;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001647};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001648/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001649struct img_plane_info {
1650 uint32_t width;
1651 uint32_t height;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001652 uint32_t pixelformat;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001653/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001654 uint8_t buffer_type;
1655 uint8_t output_port;
1656 uint32_t ext_mode;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001657 uint8_t num_planes;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001658/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001659 struct plane_data plane[MAX_PLANES];
1660 uint32_t sp_y_offset;
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001661 uint32_t inst_handle;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001662};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001663/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001664#define QCAMERA_NAME "qcamera"
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001665#define QCAMERA_SERVER_NAME "qcamera_server"
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001666#define QCAMERA_DEVICE_GROUP_ID 1
1667#define QCAMERA_VNODE_GROUP_ID 2
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001668/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001669enum msm_cam_subdev_type {
1670 CSIPHY_DEV,
1671 CSID_DEV,
1672 CSIC_DEV,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001673/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001674 ISPIF_DEV,
1675 VFE_DEV,
1676 AXI_DEV,
1677 VPE_DEV,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001678/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001679 SENSOR_DEV,
1680 ACTUATOR_DEV,
1681 EEPROM_DEV,
1682 GESTURE_DEV,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001683/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001684 IRQ_ROUTER_DEV,
1685 CPP_DEV,
Ajay Dudani77b25702012-08-09 09:58:59 -07001686 CCI_DEV,
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001687};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001688/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001689struct msm_mctl_set_sdev_data {
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001690 uint32_t revision;
1691 enum msm_cam_subdev_type sdev_type;
1692};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001693/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001694#define MSM_CAM_V4L2_IOCTL_GET_CAMERA_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
1695#define MSM_CAM_V4L2_IOCTL_GET_CONFIG_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
1696#define MSM_CAM_V4L2_IOCTL_GET_MCTL_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t)
1697#define MSM_CAM_V4L2_IOCTL_CTRL_CMD_DONE _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001698/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001699#define MSM_CAM_V4L2_IOCTL_GET_EVENT_PAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
1700#define MSM_CAM_IOCTL_SEND_EVENT _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct v4l2_event)
1701#define MSM_CAM_V4L2_IOCTL_CFG_VPE _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_vpe_cfg_cmd)
1702#define MSM_CAM_V4L2_IOCTL_PRIVATE_S_CTRL _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_camera_v4l2_ioctl_t)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001703/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001704#define MSM_CAM_V4L2_IOCTL_PRIVATE_G_CTRL _IOWR('V', BASE_VIDIOC_PRIVATE + 9, struct msm_camera_v4l2_ioctl_t)
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001705#define VIDIOC_MSM_VPE_INIT _IO('V', BASE_VIDIOC_PRIVATE + 15)
1706#define VIDIOC_MSM_VPE_RELEASE _IO('V', BASE_VIDIOC_PRIVATE + 16)
1707#define VIDIOC_MSM_VPE_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 17, struct msm_mctl_pp_params *)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001708/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001709#define VIDIOC_MSM_AXI_INIT _IO('V', BASE_VIDIOC_PRIVATE + 18)
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001710#define VIDIOC_MSM_AXI_RELEASE _IO('V', BASE_VIDIOC_PRIVATE + 19)
1711#define VIDIOC_MSM_AXI_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 20, void *)
1712#define VIDIOC_MSM_AXI_IRQ _IOWR('V', BASE_VIDIOC_PRIVATE + 21, void *)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001713/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001714#define VIDIOC_MSM_AXI_BUF_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 22, void *)
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001715#define VIDIOC_MSM_VFE_INIT _IO('V', BASE_VIDIOC_PRIVATE + 22)
1716#define VIDIOC_MSM_VFE_RELEASE _IO('V', BASE_VIDIOC_PRIVATE + 23)
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001717struct msm_camera_v4l2_ioctl_t {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001718/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001719 uint32_t id;
1720 void __user *ioctl_ptr;
1721 uint32_t len;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001722};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001723/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001724struct msm_camera_vfe_params_t {
1725 uint32_t operation_mode;
Ajay Dudani77b25702012-08-09 09:58:59 -07001726 uint32_t capture_count;
1727 uint32_t skip_abort;
Ajay Dudani77b25702012-08-09 09:58:59 -07001728/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001729 uint16_t port_info;
1730 uint32_t inst_handle;
1731 uint16_t cmd_type;
Ajay Dudani77b25702012-08-09 09:58:59 -07001732};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001733/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001734enum msm_camss_irq_idx {
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001735 CAMERA_SS_IRQ_0,
1736 CAMERA_SS_IRQ_1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001737 CAMERA_SS_IRQ_2,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001738/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001739 CAMERA_SS_IRQ_3,
1740 CAMERA_SS_IRQ_4,
1741 CAMERA_SS_IRQ_5,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001742 CAMERA_SS_IRQ_6,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001743/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001744 CAMERA_SS_IRQ_7,
1745 CAMERA_SS_IRQ_8,
1746 CAMERA_SS_IRQ_9,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001747 CAMERA_SS_IRQ_10,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001748/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001749 CAMERA_SS_IRQ_11,
1750 CAMERA_SS_IRQ_12,
1751 CAMERA_SS_IRQ_MAX
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001752};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001753/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001754enum msm_cam_hw_idx {
1755 MSM_CAM_HW_MICRO,
1756 MSM_CAM_HW_CCI,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001757 MSM_CAM_HW_CSI0,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001758/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001759 MSM_CAM_HW_CSI1,
1760 MSM_CAM_HW_CSI2,
1761 MSM_CAM_HW_CSI3,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001762 MSM_CAM_HW_ISPIF,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001763/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001764 MSM_CAM_HW_CPP,
1765 MSM_CAM_HW_VFE0,
1766 MSM_CAM_HW_VFE1,
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001767 MSM_CAM_HW_JPEG0,
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001768/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001769 MSM_CAM_HW_JPEG1,
1770 MSM_CAM_HW_JPEG2,
1771 MSM_CAM_HW_MAX
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001772};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001773/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001774struct msm_camera_irq_cfg {
1775 uint32_t cam_hw_mask;
1776 uint8_t irq_idx;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001777 uint8_t num_hwcore;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001778/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001779};
1780#define MSM_IRQROUTER_CFG_COMPIRQ _IOWR('V', BASE_VIDIOC_PRIVATE, void __user *)
1781#define MAX_NUM_CPP_STRIPS 8
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001782enum msm_cpp_frame_type {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001783/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001784 MSM_CPP_OFFLINE_FRAME,
1785 MSM_CPP_REALTIME_FRAME,
1786};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001787struct msm_cpp_frame_strip_info {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001788/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001789 int scale_v_en;
1790 int scale_h_en;
1791 int upscale_v_en;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001792 int upscale_h_en;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001793/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001794 int src_start_x;
1795 int src_end_x;
1796 int src_start_y;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001797 int src_end_y;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001798/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001799 int pad_bottom;
1800 int pad_top;
1801 int pad_right;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001802 int pad_left;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001803/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001804 int v_init_phase;
1805 int h_init_phase;
1806 int h_phase_step;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001807 int v_phase_step;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001808/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001809 int prescale_crop_width_first_pixel;
1810 int prescale_crop_width_last_pixel;
1811 int prescale_crop_height_first_line;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001812 int prescale_crop_height_last_line;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001813/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001814 int postscale_crop_height_first_line;
1815 int postscale_crop_height_last_line;
1816 int postscale_crop_width_first_pixel;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001817 int postscale_crop_width_last_pixel;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001818/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001819 int dst_start_x;
1820 int dst_end_x;
1821 int dst_start_y;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001822 int dst_end_y;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001823/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001824 int bytes_per_pixel;
1825 unsigned int source_address;
1826 unsigned int destination_address;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001827 unsigned int src_stride;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001828/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001829 unsigned int dst_stride;
1830 int rotate_270;
1831 int horizontal_flip;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001832 int vertical_flip;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001833/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001834 int scale_output_width;
1835 int scale_output_height;
1836};
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001837struct msm_cpp_frame_info_t {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001838/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001839 int32_t frame_id;
1840 uint32_t inst_id;
1841 uint32_t client_id;
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001842 enum msm_cpp_frame_type frame_type;
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001843/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001844 uint32_t num_strips;
1845 struct msm_cpp_frame_strip_info *strip_info;
1846};
Ajay Dudani77b25702012-08-09 09:58:59 -07001847struct msm_ver_num_info {
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001848/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani77b25702012-08-09 09:58:59 -07001849 uint32_t main;
1850 uint32_t minor;
1851 uint32_t rev;
Ajay Dudani77b25702012-08-09 09:58:59 -07001852};
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001853/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001854#define VIDIOC_MSM_CPP_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t)
1855#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
1856#define VIDIOC_MSM_CPP_GET_INST_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
1857#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001858/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001859#define CLR_IMG_MODE(handle) (handle &= 0xFF00FFFF)
1860#define SET_IMG_MODE(handle, data) (handle |= ((0x1 << 23) | ((data & 0x7F) << 16)))
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001861#define GET_IMG_MODE(handle) ((handle & 0x800000) ? ((handle & 0x7F0000) >> 16) : 0xFF)
1862#define CLR_MCTLPP_INST_IDX(handle) (handle &= 0xFFFF00FF)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001863/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001864#define SET_MCTLPP_INST_IDX(handle, data) (handle |= ((0x1 << 15) | ((data & 0x7F) << 8)))
1865#define GET_MCTLPP_INST_IDX(handle) ((handle & 0x8000) ? ((handle & 0x7F00) >> 8) : 0xFF)
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001866#define CLR_VIDEO_INST_IDX(handle) (handle &= 0xFFFFFF00)
1867#define GET_VIDEO_INST_IDX(handle) ((handle & 0x80) ? (handle & 0x7F) : 0xFF)
Iliyan Malchev3ad36e52012-08-27 11:08:52 -07001868/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ajay Dudanicbbe9522012-07-26 17:26:05 -07001869#define SET_VIDEO_INST_IDX(handle, data) (handle |= (0x1 << 7) | (data & 0x7F))
Ajay Dudani3fc3b7f2012-07-08 01:19:11 -07001870#endif