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 230537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0) 23192b8da1af686c72bde47254e7fcd4b17e39be634Ajay Dudani#define V4L2_EVENT_VPE_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 1) 232537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani 233537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudanistruct msm_camera_v4l2_ioctl_t { 234537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani uint32_t id; 235537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani uint32_t len; 236537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani int32_t trans_code; 237537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani void __user *ioctl_ptr; 238537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani}; 239537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani 240537a84edd4d8369012dbe56730096d1eb3e0401dAjay Dudani#endif /* __MSMB_PPROC_H */ 241