Update camera header to AU_LINUX_ANDROID_JB_MR1.04.02.02.49.221
Change-Id: I8b4cecd033bb5e179abb0cd41745e88f9d00a7b4
diff --git a/original-kernel-headers/media/msm_cam_sensor.h b/original-kernel-headers/media/msm_cam_sensor.h
index eb406d3..c6e05b7 100755
--- a/original-kernel-headers/media/msm_cam_sensor.h
+++ b/original-kernel-headers/media/msm_cam_sensor.h
@@ -226,8 +226,8 @@
struct msm_sensor_info_t {
char sensor_name[MAX_SENSOR_NAME];
- int32_t session_id;
- int32_t subdev_id[SUB_MODULE_MAX];
+ int32_t session_id;
+ int32_t subdev_id[SUB_MODULE_MAX];
};
struct camera_vreg_t {
@@ -245,25 +245,25 @@
};
enum camerab_mode_t {
- CAMERA_MODE_2D_B = (1<<0),
- CAMERA_MODE_3D_B = (1<<1)
+ CAMERA_MODE_2D_B = (1 << 0),
+ CAMERA_MODE_3D_B = (1 << 1)
};
struct msm_sensor_init_params {
/* mask of modes supported: 2D, 3D */
- int modes_supported;
+ int modes_supported;
/* sensor position: front, back */
enum camb_position_t position;
/* sensor mount angle */
- uint32_t sensor_mount_angle;
+ uint32_t sensor_mount_angle;
};
struct sensorb_cfg_data {
int cfgtype;
union {
- struct msm_sensor_info_t sensor_info;
+ struct msm_sensor_info_t sensor_info;
struct msm_sensor_init_params sensor_init_params;
- void *setting;
+ void *setting;
} cfg;
};
@@ -456,7 +456,7 @@
#define VIDIOC_MSM_FLASH_LED_DATA_CFG \
_IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
-#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */
+#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */
#define MSM_V4L2_PIX_FMT_RESERVED_0 v4l2_fourcc('R', 'E', 'S', '0')
diff --git a/original-kernel-headers/media/msmb_camera.h b/original-kernel-headers/media/msmb_camera.h
index 123c86c..e431926 100644
--- a/original-kernel-headers/media/msmb_camera.h
+++ b/original-kernel-headers/media/msmb_camera.h
@@ -87,37 +87,37 @@
* v4l2_event.u.data field.
* should not exceed 16 elements */
struct msm_v4l2_event_data {
- /*word 0*/
+ /*word 0 */
unsigned int command;
- /*word 1*/
+ /*word 1 */
unsigned int status;
- /*word 2*/
+ /*word 2 */
unsigned int session_id;
- /*word 3*/
+ /*word 3 */
unsigned int stream_id;
- /*word 4*/
+ /*word 4 */
unsigned int map_op;
- /*word 5*/
+ /*word 5 */
unsigned int map_buf_idx;
- /*word 6*/
+ /*word 6 */
unsigned int notify;
- /*word 7*/
- unsigned int nop1;
- /*word 8*/
- unsigned int nop2;
- /*word 9*/
+ /*word 7 */
+ unsigned int arg_value;
+ /*word 8 */
+ unsigned int ret_value;
+ /*word 9 */
unsigned int nop3;
- /*word 10*/
+ /*word 10 */
unsigned int nop4;
- /*word 11*/
+ /*word 11 */
unsigned int nop5;
- /*word 12*/
+ /*word 12 */
unsigned int nop6;
- /*word 13*/
+ /*word 13 */
unsigned int nop7;
- /*word 14*/
+ /*word 14 */
unsigned int nop8;
- /*word 15*/
+ /*word 15 */
unsigned int nop9;
};
@@ -126,7 +126,7 @@
enum v4l2_buf_type type;
unsigned int width;
unsigned int height;
- unsigned int pixelformat; /* FOURCC */
+ unsigned int pixelformat; /* FOURCC */
unsigned char num_planes;
unsigned int plane_sizes[VIDEO_MAX_PLANES];
};
diff --git a/original-kernel-headers/media/msmb_generic_buf_mgr.h b/original-kernel-headers/media/msmb_generic_buf_mgr.h
index bd313bc..efcb425 100644
--- a/original-kernel-headers/media/msmb_generic_buf_mgr.h
+++ b/original-kernel-headers/media/msmb_generic_buf_mgr.h
@@ -9,6 +9,8 @@
uint32_t index;
};
+struct v4l2_subdev *msm_buf_mngr_get_subdev(void);
+
#define VIDIOC_MSM_BUF_MNGR_GET_BUF \
_IOWR('V', BASE_VIDIOC_PRIVATE + 33, struct msm_buf_mngr_info)
diff --git a/original-kernel-headers/media/msmb_isp.h b/original-kernel-headers/media/msmb_isp.h
index eae35de..9b962ae 100644
--- a/original-kernel-headers/media/msmb_isp.h
+++ b/original-kernel-headers/media/msmb_isp.h
@@ -9,6 +9,8 @@
#define ISP_VERSION_40 40
#define ISP_VERSION_32 32
#define ISP_NATIVE_BUF_BIT 0x10000
+#define ISP0_BIT 0x20000
+#define ISP1_BIT 0x40000
#define ISP_STATS_STREAM_BIT 0x80000000
enum ISP_START_PIXEL_PATTERN {
@@ -107,34 +109,35 @@
struct msm_vfe_rdi_cfg rdi_cfg;
} d;
enum msm_vfe_input_src input_src;
+ uint32_t input_pix_clk;
};
struct msm_vfe_axi_plane_cfg {
- uint32_t output_width; /*Include padding*/
+ uint32_t output_width; /*Include padding */
uint32_t output_height;
uint32_t output_stride;
uint32_t output_scan_lines;
- uint32_t output_plane_format; /*Y/Cb/Cr/CbCr*/
-
- uint8_t csid_src; /*RDI 0-2*/
- uint8_t rdi_cid;/*CID 1-16*/
+ uint32_t output_plane_format; /*Y/Cb/Cr/CbCr */
+ uint32_t plane_addr_offset;
+ uint8_t csid_src; /*RDI 0-2 */
+ uint8_t rdi_cid; /*CID 1-16 */
};
struct msm_vfe_axi_stream_request_cmd {
uint32_t session_id;
uint32_t stream_id;
- uint32_t output_format;/*Planar/RAW/Misc*/
- enum msm_vfe_axi_stream_src stream_src; /*CAMIF/IDEAL/RDIs*/
+ uint32_t output_format; /*Planar/RAW/Misc */
+ enum msm_vfe_axi_stream_src stream_src; /*CAMIF/IDEAL/RDIs */
struct msm_vfe_axi_plane_cfg plane_cfg[MAX_PLANES_PER_STREAM];
uint32_t burst_count;
uint32_t hfr_mode;
uint8_t frame_base;
- uint32_t init_frame_drop; /*MAX 31 Frames*/
+ uint32_t init_frame_drop; /*MAX 31 Frames */
enum msm_vfe_frame_skip_pattern frame_skip_pattern;
- uint8_t buf_divert; /* if TRUE no vb2 buf done. */
- /*Return values*/
+ uint8_t buf_divert; /* if TRUE no vb2 buf done. */
+ /*Return values */
uint32_t axi_stream_handle;
};
@@ -172,18 +175,18 @@
};
enum msm_isp_stats_type {
- MSM_ISP_STATS_AEC, /* legacy based AEC */
- MSM_ISP_STATS_AF, /* legacy based AF */
- MSM_ISP_STATS_AWB, /* legacy based AWB */
- MSM_ISP_STATS_RS, /* legacy based RS */
- MSM_ISP_STATS_CS, /* legacy based CS */
- MSM_ISP_STATS_IHIST, /* legacy based HIST */
- MSM_ISP_STATS_SKIN, /* legacy based SKIN */
- MSM_ISP_STATS_BG, /* Bayer Grids */
- MSM_ISP_STATS_BF, /* Bayer Focus */
- MSM_ISP_STATS_BE, /* Bayer Exposure*/
- MSM_ISP_STATS_BHIST, /* Bayer Hist */
- MSM_ISP_STATS_MAX /* MAX */
+ MSM_ISP_STATS_AEC, /* legacy based AEC */
+ MSM_ISP_STATS_AF, /* legacy based AF */
+ MSM_ISP_STATS_AWB, /* legacy based AWB */
+ MSM_ISP_STATS_RS, /* legacy based RS */
+ MSM_ISP_STATS_CS, /* legacy based CS */
+ MSM_ISP_STATS_IHIST, /* legacy based HIST */
+ MSM_ISP_STATS_SKIN, /* legacy based SKIN */
+ MSM_ISP_STATS_BG, /* Bayer Grids */
+ MSM_ISP_STATS_BF, /* Bayer Focus */
+ MSM_ISP_STATS_BE, /* Bayer Exposure */
+ MSM_ISP_STATS_BHIST, /* Bayer Hist */
+ MSM_ISP_STATS_MAX /* MAX */
};
struct msm_vfe_stats_stream_request_cmd {
@@ -192,6 +195,7 @@
enum msm_isp_stats_type stats_type;
uint32_t framedrop_pattern;
uint32_t irq_subsample_pattern;
+ uint32_t buffer_offset;
uint32_t stream_handle;
uint8_t comp_flag;
};
@@ -245,8 +249,8 @@
};
struct msm_vfe_reg_dmi_info {
- uint32_t hi_tbl_offset; /*Optional*/
- uint32_t lo_tbl_offset; /*Required*/
+ uint32_t hi_tbl_offset; /*Optional */
+ uint32_t lo_tbl_offset; /*Required */
uint32_t len;
};
@@ -254,24 +258,31 @@
union {
struct msm_vfe_reg_rw_info rw_info;
struct msm_vfe_reg_mask_info mask_info;
- struct msm_vfe_reg_dmi_info dmi_info;
+ struct msm_vfe_reg_dmi_info dmi_info;
} u;
enum msm_vfe_reg_cfg_type cmd_type;
};
+enum msm_isp_buf_type {
+ ISP_PRIVATE_BUF,
+ ISP_SHARE_BUF,
+ MAX_ISP_BUF_TYPE,
+};
+
struct msm_isp_buf_request {
uint32_t session_id;
uint32_t stream_id;
uint8_t num_buf;
uint32_t handle;
+ enum msm_isp_buf_type buf_type;
};
struct msm_isp_qbuf_info {
uint32_t handle;
int buf_idx;
- /*Only used for prepare buffer*/
+ /*Only used for prepare buffer */
struct v4l2_buffer buffer;
- /*Only used for diverted buffer*/
+ /*Only used for diverted buffer */
uint32_t dirty_buf;
};
@@ -281,16 +292,16 @@
};
enum msm_isp_event_idx {
- ISP_REG_UPDATE = 0,
- ISP_START_ACK = 1,
- ISP_STOP_ACK = 2,
- ISP_IRQ_VIOLATION = 3,
+ ISP_REG_UPDATE = 0,
+ ISP_START_ACK = 1,
+ ISP_STOP_ACK = 2,
+ ISP_IRQ_VIOLATION = 3,
ISP_WM_BUS_OVERFLOW = 4,
- ISP_STATS_OVERFLOW = 5,
- ISP_CAMIF_ERROR = 6,
- ISP_SOF = 7,
- ISP_EOF = 8,
- ISP_EVENT_MAX = 9
+ ISP_STATS_OVERFLOW = 5,
+ ISP_CAMIF_ERROR = 6,
+ ISP_SOF = 7,
+ ISP_EOF = 8,
+ ISP_EVENT_MAX = 9
};
#define ISP_EVENT_OFFSET 8
@@ -320,8 +331,8 @@
int8_t buf_idx;
};
struct msm_isp_stats_event {
- uint32_t stats_mask; /* 4 bytes */
- uint8_t stats_buf_idxs[MSM_ISP_STATS_MAX]; /* 11 bytes */
+ uint32_t stats_mask; /* 4 bytes */
+ uint8_t stats_buf_idxs[MSM_ISP_STATS_MAX]; /* 11 bytes */
};
struct msm_isp_stream_ack {
@@ -347,7 +358,7 @@
/* IRQ_VIOLATION, STATS_OVER_FLOW, WM_OVER_FLOW */
uint32_t irq_status_mask;
struct msm_isp_buf_event buf_done;
- } u; /* union can have max 52 bytes */
+ } u; /* union can have max 52 bytes */
};
#define V4L2_PIX_FMT_QBGGR8 v4l2_fourcc('Q', 'B', 'G', '8')
diff --git a/original-kernel-headers/media/msmb_ispif.h b/original-kernel-headers/media/msmb_ispif.h
index fc27ef6..aeb4a62 100644
--- a/original-kernel-headers/media/msmb_ispif.h
+++ b/original-kernel-headers/media/msmb_ispif.h
@@ -20,6 +20,8 @@
RDI2,
INTF_MAX
};
+#define MAX_PARAM_ENTRIES (INTF_MAX * 2)
+
#define PIX0_MASK (1 << PIX0)
#define PIX1_MASK (1 << PIX1)
#define RDI0_MASK (1 << RDI0)
@@ -64,16 +66,30 @@
};
struct msm_ispif_params_entry {
+ enum msm_ispif_vfe_intf vfe_intf;
enum msm_ispif_intftype intftype;
int num_cids;
enum msm_ispif_cid cids[3];
enum msm_ispif_csid csid;
+ int crop_enable;
+ uint16_t crop_start_pixel;
+ uint16_t crop_end_pixel;
};
struct msm_ispif_param_data {
- enum msm_ispif_vfe_intf vfe_intf;
uint32_t num;
- struct msm_ispif_params_entry entries[INTF_MAX];
+ struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES];
+};
+
+struct msm_isp_info {
+ uint32_t max_resolution;
+ uint32_t id;
+ uint32_t ver;
+};
+
+struct msm_ispif_vfe_info {
+ int num_vfe;
+ struct msm_isp_info info[VFE_MAX];
};
enum ispif_cfg_type_t {
@@ -86,14 +102,16 @@
ISPIF_STOP_IMMEDIATELY,
ISPIF_RELEASE,
ISPIF_ENABLE_REG_DUMP,
+ ISPIF_SET_VFE_INFO,
};
struct ispif_cfg_data {
enum ispif_cfg_type_t cfg_type;
union {
- int reg_dump; /* ISPIF_ENABLE_REG_DUMP */
- uint32_t csid_version; /* ISPIF_INIT */
- struct msm_ispif_param_data params; /* CFG, START, STOP */
+ int reg_dump; /* ISPIF_ENABLE_REG_DUMP */
+ uint32_t csid_version; /* ISPIF_INIT */
+ struct msm_ispif_vfe_info vfe_info; /* ISPIF_SET_VFE_INFO */
+ struct msm_ispif_param_data params; /* CFG, START, STOP */
};
};
diff --git a/original-kernel-headers/media/msmb_pproc.h b/original-kernel-headers/media/msmb_pproc.h
index 6f8e865..c185096 100644
--- a/original-kernel-headers/media/msmb_pproc.h
+++ b/original-kernel-headers/media/msmb_pproc.h
@@ -11,6 +11,7 @@
#define MAX_PLANES VIDEO_MAX_PLANES
#define MAX_NUM_CPP_STRIPS 8
+#define MSM_CPP_MAX_NUM_PLANES 3
enum msm_cpp_frame_type {
MSM_CPP_OFFLINE_FRAME,
@@ -74,9 +75,25 @@
int postscale_crop_en;
};
+struct msm_cpp_buffer_info_t {
+ int fd;
+ uint32_t index;
+ uint32_t offset;
+ uint8_t native_buff;
+ uint8_t processed_divert;
+};
+
+struct msm_cpp_stream_buff_info_t {
+ uint32_t identity;
+ uint32_t num_buffs;
+ struct msm_cpp_buffer_info_t *buffer_info;
+};
+
struct msm_cpp_frame_info_t {
int32_t frame_id;
+ struct timeval timestamp;
uint32_t inst_id;
+ uint32_t identity;
uint32_t client_id;
enum msm_cpp_frame_type frame_type;
uint32_t num_strips;
@@ -87,6 +104,12 @@
int dst_fd;
struct ion_handle *src_ion_handle;
struct ion_handle *dest_ion_handle;
+ struct timeval in_time, out_time;
+ void *cookie;
+ int32_t *status;
+
+ struct msm_cpp_buffer_info_t input_buffer_info;
+ struct msm_cpp_buffer_info_t output_buffer_info;
};
struct cpp_hw_info {
@@ -112,12 +135,18 @@
#define VIDIOC_MSM_CPP_FLUSH_QUEUE \
_IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
+#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t)
+
#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0)
struct msm_camera_v4l2_ioctl_t {
uint32_t id;
uint32_t len;
- uint32_t trans_code;
+ int32_t trans_code;
void __user *ioctl_ptr;
};