1537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#ifndef __MSMB_PPROC_H
2537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define __MSMB_PPROC_H
3537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
4537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#ifdef MSM_CAMERA_BIONIC
5537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#include <sys/types.h>
6537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#endif
7537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#include <linux/videodev2.h>
8537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#include <linux/types.h>
9537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
10537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani/* Should be same as VIDEO_MAX_PLANES in videodev2.h */
11537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define MAX_PLANES VIDEO_MAX_PLANES
12537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
13537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define MAX_NUM_CPP_STRIPS 8
14537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define MSM_CPP_MAX_NUM_PLANES 3
15537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
16537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanienum msm_cpp_frame_type {
17537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	MSM_CPP_OFFLINE_FRAME,
18537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	MSM_CPP_REALTIME_FRAME,
19537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
20537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
2192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudanienum msm_vpe_frame_type {
2292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	MSM_VPE_OFFLINE_FRAME,
2392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	MSM_VPE_REALTIME_FRAME,
2492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani};
2592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
26537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct msm_cpp_frame_strip_info {
27537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int scale_v_en;
28537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int scale_h_en;
29537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
30537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int upscale_v_en;
31537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int upscale_h_en;
32537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
33537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int src_start_x;
34537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int src_end_x;
35537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int src_start_y;
36537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int src_end_y;
37537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
38537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	/* Padding is required for upscaler because it does not
39537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	 * pad internally like other blocks, also needed for rotation
40537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	 * rotation expects all the blocks in the stripe to be the same size
41537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	 * Padding is done such that all the extra padded pixels
42537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	 * are on the right and bottom
43537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	 */
44537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int pad_bottom;
45537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int pad_top;
46537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int pad_right;
47537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int pad_left;
48537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
49537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int v_init_phase;
50537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int h_init_phase;
51537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int h_phase_step;
52537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int v_phase_step;
53537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
54537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int prescale_crop_width_first_pixel;
55537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int prescale_crop_width_last_pixel;
56537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int prescale_crop_height_first_line;
57537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int prescale_crop_height_last_line;
58537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
59537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int postscale_crop_height_first_line;
60537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int postscale_crop_height_last_line;
61537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int postscale_crop_width_first_pixel;
62537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int postscale_crop_width_last_pixel;
63537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
64537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int dst_start_x;
65537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int dst_end_x;
66537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int dst_start_y;
67537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int dst_end_y;
68537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
69537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int bytes_per_pixel;
70537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	unsigned int source_address;
71537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	unsigned int destination_address;
7221eba50ceeab342ba3946a587e50df275b50f193Devin Kim	unsigned int compl_destination_address;
73537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	unsigned int src_stride;
74537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	unsigned int dst_stride;
75537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int rotate_270;
76537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int horizontal_flip;
77537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int vertical_flip;
78537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int scale_output_width;
79537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int scale_output_height;
80537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int prescale_crop_en;
81537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int postscale_crop_en;
82537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
83537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
84537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct msm_cpp_buffer_info_t {
85537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int fd;
86537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t index;
87537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t offset;
88537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint8_t native_buff;
89537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint8_t processed_divert;
90537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
91537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
92537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct msm_cpp_stream_buff_info_t {
93537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t identity;
94537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t num_buffs;
95537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct msm_cpp_buffer_info_t *buffer_info;
96537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
97537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
98537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct msm_cpp_frame_info_t {
99537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int32_t frame_id;
100537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct timeval timestamp;
101537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t inst_id;
102537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t identity;
103537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t client_id;
104537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	enum msm_cpp_frame_type frame_type;
105537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t num_strips;
106537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct msm_cpp_frame_strip_info *strip_info;
107537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t msg_len;
108537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t *cpp_cmd_msg;
109537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int src_fd;
110537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int dst_fd;
111537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct ion_handle *src_ion_handle;
112537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct ion_handle *dest_ion_handle;
113537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct timeval in_time, out_time;
114537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	void *cookie;
115537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int32_t *status;
11692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	int32_t duplicate_output;
11792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t duplicate_identity;
118537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	struct msm_cpp_buffer_info_t input_buffer_info;
11992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct msm_cpp_buffer_info_t output_buffer_info[2];
120537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
121537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
122537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct cpp_hw_info {
123537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t cpp_hw_version;
124537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t cpp_hw_caps;
125537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
126537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
12792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudanistruct msm_vpe_frame_strip_info {
12892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t src_w;
12992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t src_h;
13092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t dst_w;
13192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t dst_h;
13292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t src_x;
13392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t src_y;
13492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t phase_step_x;
13592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t phase_step_y;
13692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t phase_init_x;
13792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t phase_init_y;
13892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani};
13992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
14092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudanistruct msm_vpe_buffer_info_t {
14192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	int fd;
14292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t index;
14392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t offset;
14492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint8_t native_buff;
14592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint8_t processed_divert;
14692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani};
14792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
14892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudanistruct msm_vpe_stream_buff_info_t {
14992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t identity;
15092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t num_buffs;
15192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct msm_vpe_buffer_info_t *buffer_info;
15292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani};
15392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
15492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudanistruct msm_vpe_frame_info_t {
15592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	int32_t frame_id;
15692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct timeval timestamp;
15792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t inst_id;
15892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t identity;
15992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	uint32_t client_id;
16092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	enum msm_vpe_frame_type frame_type;
16192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct msm_vpe_frame_strip_info strip_info;
16292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	int src_fd;
16392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	int dst_fd;
16492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct ion_handle *src_ion_handle;
16592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct ion_handle *dest_ion_handle;
16692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	unsigned long src_phyaddr;
16792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	unsigned long dest_phyaddr;
16892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	unsigned long src_chroma_plane_offset;
16992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	unsigned long dest_chroma_plane_offset;
17092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct timeval in_time, out_time;
17192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	void *cookie;
17292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
17392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct msm_vpe_buffer_info_t input_buffer_info;
17492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	struct msm_vpe_buffer_info_t output_buffer_info;
17592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani};
17692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
17792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
178537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_CFG \
179537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t)
180537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
181537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD \
182537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
183537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
184537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_GET_INST_INFO \
185537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
186537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
187537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_LOAD_FIRMWARE \
188537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t)
189537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
190537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_GET_HW_INFO \
191537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t)
192537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
193537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_FLUSH_QUEUE \
194537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
195537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
196537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO \
197537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t)
198537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
199537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO \
200537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t)
201537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
20292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
20392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define VIDIOC_MSM_VPE_CFG \
20492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_camera_v4l2_ioctl_t)
20592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
20692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define VIDIOC_MSM_VPE_TRANSACTION_SETUP \
20792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 9, struct msm_camera_v4l2_ioctl_t)
20892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
20992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define VIDIOC_MSM_VPE_GET_EVENTPAYLOAD \
21092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct msm_camera_v4l2_ioctl_t)
21192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
21292b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define VIDIOC_MSM_VPE_GET_INST_INFO \
21392b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_camera_v4l2_ioctl_t)
21492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
21592b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define VIDIOC_MSM_VPE_ENQUEUE_STREAM_BUFF_INFO \
21692b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 12, struct msm_camera_v4l2_ioctl_t)
21792b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
21892b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define VIDIOC_MSM_VPE_DEQUEUE_STREAM_BUFF_INFO \
21992b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_camera_v4l2_ioctl_t)
22092b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani
2217a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim#define VIDIOC_MSM_CPP_SEND_BUF_DONE \
2227a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim	_IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_camera_v4l2_ioctl_t)
2237a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim
224b690f7c292b0d03576f44f737940480c1eecd278Ajay Dudani#define VIDIOC_MSM_CPP_POP_STREAM_BUFFER \
225b690f7c292b0d03576f44f737940480c1eecd278Ajay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_camera_v4l2_ioctl_t)
226b690f7c292b0d03576f44f737940480c1eecd278Ajay Dudani
227211a4480f5e2deb61fd0c531943d7204da23a77aAjay Dudani#define VIDIOC_MSM_CPP_SET_CLOCK \
228211a4480f5e2deb61fd0c531943d7204da23a77aAjay Dudani	_IOWR('V', BASE_VIDIOC_PRIVATE + 16, struct msm_camera_v4l2_ioctl_t)
229211a4480f5e2deb61fd0c531943d7204da23a77aAjay Dudani
230a558d177ae4b52bf75896a5f86fb5485b149ec27Shuzhen Wang#define VIDIOC_MSM_CPP_APPEND_STREAM_BUFF_INFO \
231a558d177ae4b52bf75896a5f86fb5485b149ec27Shuzhen Wang        _IOWR('V', BASE_VIDIOC_PRIVATE + 17, struct msm_camera_v4l2_ioctl_t)
232a558d177ae4b52bf75896a5f86fb5485b149ec27Shuzhen Wang
233537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define V4L2_EVENT_CPP_FRAME_DONE  (V4L2_EVENT_PRIVATE_START + 0)
23492b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define V4L2_EVENT_VPE_FRAME_DONE  (V4L2_EVENT_PRIVATE_START + 1)
235537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
236537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct msm_camera_v4l2_ioctl_t {
237537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t id;
238537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	uint32_t len;
239537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	int32_t trans_code;
240537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani	void __user *ioctl_ptr;
241537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani};
242537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani
243537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#endif /* __MSMB_PPROC_H */
244