1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef __MSMB_PPROC_H 20 #define __MSMB_PPROC_H 21 #ifdef MSM_CAMERA_BIONIC 22 #include <sys/types.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #endif 25 #include <linux/videodev2.h> 26 #include <linux/types.h> 27 #define MAX_PLANES VIDEO_MAX_PLANES 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 #define MAX_NUM_CPP_STRIPS 8 30 #define MSM_CPP_MAX_NUM_PLANES 3 31 enum msm_cpp_frame_type { 32 MSM_CPP_OFFLINE_FRAME, 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 MSM_CPP_REALTIME_FRAME, 35 }; 36 enum msm_vpe_frame_type { 37 MSM_VPE_OFFLINE_FRAME, 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 MSM_VPE_REALTIME_FRAME, 40 }; 41 struct msm_cpp_frame_strip_info { 42 int scale_v_en; 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 int scale_h_en; 45 int upscale_v_en; 46 int upscale_h_en; 47 int src_start_x; 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 int src_end_x; 50 int src_start_y; 51 int src_end_y; 52 int pad_bottom; 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 int pad_top; 55 int pad_right; 56 int pad_left; 57 int v_init_phase; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 int h_init_phase; 60 int h_phase_step; 61 int v_phase_step; 62 int prescale_crop_width_first_pixel; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 int prescale_crop_width_last_pixel; 65 int prescale_crop_height_first_line; 66 int prescale_crop_height_last_line; 67 int postscale_crop_height_first_line; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 int postscale_crop_height_last_line; 70 int postscale_crop_width_first_pixel; 71 int postscale_crop_width_last_pixel; 72 int dst_start_x; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 int dst_end_x; 75 int dst_start_y; 76 int dst_end_y; 77 int bytes_per_pixel; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 unsigned int source_address; 80 unsigned int destination_address; 81 unsigned int compl_destination_address; 82 unsigned int src_stride; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 unsigned int dst_stride; 85 int rotate_270; 86 int horizontal_flip; 87 int vertical_flip; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 int scale_output_width; 90 int scale_output_height; 91 int prescale_crop_en; 92 int postscale_crop_en; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 }; 95 struct msm_cpp_buffer_info_t { 96 int fd; 97 uint32_t index; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 uint32_t offset; 100 uint8_t native_buff; 101 uint8_t processed_divert; 102 }; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 struct msm_cpp_stream_buff_info_t { 105 uint32_t identity; 106 uint32_t num_buffs; 107 struct msm_cpp_buffer_info_t *buffer_info; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 }; 110 struct msm_cpp_frame_info_t { 111 int32_t frame_id; 112 struct timeval timestamp; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 uint32_t inst_id; 115 uint32_t identity; 116 uint32_t client_id; 117 enum msm_cpp_frame_type frame_type; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 uint32_t num_strips; 120 struct msm_cpp_frame_strip_info *strip_info; 121 uint32_t msg_len; 122 uint32_t *cpp_cmd_msg; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 int src_fd; 125 int dst_fd; 126 struct ion_handle *src_ion_handle; 127 struct ion_handle *dest_ion_handle; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 struct timeval in_time, out_time; 130 void *cookie; 131 int32_t *status; 132 int32_t duplicate_output; 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 uint32_t duplicate_identity; 135 struct msm_cpp_buffer_info_t input_buffer_info; 136 struct msm_cpp_buffer_info_t output_buffer_info[2]; 137 }; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 struct cpp_hw_info { 140 uint32_t cpp_hw_version; 141 uint32_t cpp_hw_caps; 142 }; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 struct msm_vpe_frame_strip_info { 145 uint32_t src_w; 146 uint32_t src_h; 147 uint32_t dst_w; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 uint32_t dst_h; 150 uint32_t src_x; 151 uint32_t src_y; 152 uint32_t phase_step_x; 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 uint32_t phase_step_y; 155 uint32_t phase_init_x; 156 uint32_t phase_init_y; 157 }; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 struct msm_vpe_buffer_info_t { 160 int fd; 161 uint32_t index; 162 uint32_t offset; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 uint8_t native_buff; 165 uint8_t processed_divert; 166 }; 167 struct msm_vpe_stream_buff_info_t { 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 uint32_t identity; 170 uint32_t num_buffs; 171 struct msm_vpe_buffer_info_t *buffer_info; 172 }; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 struct msm_vpe_frame_info_t { 175 int32_t frame_id; 176 struct timeval timestamp; 177 uint32_t inst_id; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 uint32_t identity; 180 uint32_t client_id; 181 enum msm_vpe_frame_type frame_type; 182 struct msm_vpe_frame_strip_info strip_info; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 int src_fd; 185 int dst_fd; 186 struct ion_handle *src_ion_handle; 187 struct ion_handle *dest_ion_handle; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 unsigned long src_phyaddr; 190 unsigned long dest_phyaddr; 191 unsigned long src_chroma_plane_offset; 192 unsigned long dest_chroma_plane_offset; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 struct timeval in_time, out_time; 195 void *cookie; 196 struct msm_vpe_buffer_info_t input_buffer_info; 197 struct msm_vpe_buffer_info_t output_buffer_info; 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 }; 200 #define VIDIOC_MSM_CPP_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t) 201 #define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t) 202 #define VIDIOC_MSM_CPP_GET_INST_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t) 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 #define VIDIOC_MSM_CPP_LOAD_FIRMWARE _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t) 205 #define VIDIOC_MSM_CPP_GET_HW_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t) 206 #define VIDIOC_MSM_CPP_FLUSH_QUEUE _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t) 207 #define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t) 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 #define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t) 210 #define VIDIOC_MSM_VPE_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_camera_v4l2_ioctl_t) 211 #define VIDIOC_MSM_VPE_TRANSACTION_SETUP _IOWR('V', BASE_VIDIOC_PRIVATE + 9, struct msm_camera_v4l2_ioctl_t) 212 #define VIDIOC_MSM_VPE_GET_EVENTPAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct msm_camera_v4l2_ioctl_t) 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 #define VIDIOC_MSM_VPE_GET_INST_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_camera_v4l2_ioctl_t) 215 #define VIDIOC_MSM_VPE_ENQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 12, struct msm_camera_v4l2_ioctl_t) 216 #define VIDIOC_MSM_VPE_DEQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_camera_v4l2_ioctl_t) 217 #define VIDIOC_MSM_CPP_SEND_BUF_DONE _IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_camera_v4l2_ioctl_t) 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 #define VIDIOC_MSM_CPP_POP_STREAM_BUFFER _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_camera_v4l2_ioctl_t) 220 #define VIDIOC_MSM_CPP_SET_CLOCK _IOWR('V', BASE_VIDIOC_PRIVATE + 16, struct msm_camera_v4l2_ioctl_t) 221 #define VIDIOC_MSM_CPP_APPEND_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 17, struct msm_camera_v4l2_ioctl_t) 222 #define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0) 223 #define V4L2_EVENT_VPE_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 1) 224 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 225 struct msm_camera_v4l2_ioctl_t { 226 uint32_t id; 227 uint32_t len; 228 int32_t trans_code; 229 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 230 void __user *ioctl_ptr; 231 }; 232 #endif 233