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