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;
 };