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