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 __UAPI_MSMB_PPROC_H
20#define __UAPI_MSMB_PPROC_H
21#include <linux/videodev2.h>
22#include <linux/types.h>
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#include <media/msmb_generic_buf_mgr.h>
25#define MAX_PLANES VIDEO_MAX_PLANES
26#define PARTIAL_FRAME_STRIPE_COUNT 4
27#define MAX_NUM_CPP_STRIPS 8
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define MSM_CPP_MAX_NUM_PLANES 3
30#define MSM_CPP_MIN_FRAME_LENGTH 13
31#define MSM_CPP_MAX_FRAME_LENGTH 4096
32#define MSM_CPP_MAX_FW_NAME_LEN 32
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define MAX_FREQ_TBL 10
35#define MSM_OUTPUT_BUF_CNT 8
36enum msm_cpp_frame_type {
37  MSM_CPP_OFFLINE_FRAME,
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  MSM_CPP_REALTIME_FRAME,
40};
41enum msm_vpe_frame_type {
42  MSM_VPE_OFFLINE_FRAME,
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  MSM_VPE_REALTIME_FRAME,
45};
46struct msm_cpp_buffer_info_t {
47  int32_t fd;
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49  uint32_t index;
50  uint32_t offset;
51  uint8_t native_buff;
52  uint8_t processed_divert;
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  uint32_t identity;
55};
56struct msm_cpp_stream_buff_info_t {
57  uint32_t identity;
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  uint32_t num_buffs;
60  struct msm_cpp_buffer_info_t * buffer_info;
61};
62enum msm_cpp_batch_mode_t {
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  BATCH_MODE_NONE,
65  BATCH_MODE_VIDEO,
66  BATCH_MODE_PREVIEW
67};
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69struct msm_cpp_batch_info_t {
70  enum msm_cpp_batch_mode_t batch_mode;
71  uint32_t batch_size;
72  uint32_t intra_plane_offset[MAX_PLANES];
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  uint32_t pick_preview_idx;
75  uint32_t cont_idx;
76};
77struct msm_cpp_frame_info_t {
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  int32_t frame_id;
80  struct timeval timestamp;
81  uint32_t inst_id;
82  uint32_t identity;
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  uint32_t client_id;
85  enum msm_cpp_frame_type frame_type;
86  uint32_t num_strips;
87  uint32_t msg_len;
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  uint32_t * cpp_cmd_msg;
90  int src_fd;
91  int dst_fd;
92  struct timeval in_time, out_time;
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  void * cookie;
95  int32_t * status;
96  int32_t duplicate_output;
97  uint32_t duplicate_identity;
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  uint32_t feature_mask;
100  uint8_t we_disable;
101  struct msm_cpp_buffer_info_t input_buffer_info;
102  struct msm_cpp_buffer_info_t output_buffer_info[MSM_OUTPUT_BUF_CNT];
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  struct msm_cpp_buffer_info_t duplicate_buffer_info;
105  struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2];
106  uint32_t reserved;
107  uint8_t partial_frame_indicator;
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  uint8_t first_payload;
110  uint8_t last_payload;
111  uint32_t first_stripe_index;
112  uint32_t last_stripe_index;
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  uint32_t stripe_info_offset;
115  uint32_t stripe_info;
116  struct msm_cpp_batch_info_t batch_info;
117};
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119struct msm_cpp_pop_stream_info_t {
120  int32_t frame_id;
121  uint32_t identity;
122};
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124struct cpp_hw_info {
125  uint32_t cpp_hw_version;
126  uint32_t cpp_hw_caps;
127  unsigned long freq_tbl[MAX_FREQ_TBL];
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  uint32_t freq_tbl_count;
130};
131struct msm_vpe_frame_strip_info {
132  uint32_t src_w;
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  uint32_t src_h;
135  uint32_t dst_w;
136  uint32_t dst_h;
137  uint32_t src_x;
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  uint32_t src_y;
140  uint32_t phase_step_x;
141  uint32_t phase_step_y;
142  uint32_t phase_init_x;
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  uint32_t phase_init_y;
145};
146struct msm_vpe_buffer_info_t {
147  int32_t fd;
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  uint32_t index;
150  uint32_t offset;
151  uint8_t native_buff;
152  uint8_t processed_divert;
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154};
155struct msm_vpe_stream_buff_info_t {
156  uint32_t identity;
157  uint32_t num_buffs;
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159  struct msm_vpe_buffer_info_t * buffer_info;
160};
161struct msm_vpe_frame_info_t {
162  int32_t frame_id;
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  struct timeval timestamp;
165  uint32_t inst_id;
166  uint32_t identity;
167  uint32_t client_id;
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  enum msm_vpe_frame_type frame_type;
170  struct msm_vpe_frame_strip_info strip_info;
171  unsigned long src_fd;
172  unsigned long dst_fd;
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  struct ion_handle * src_ion_handle;
175  struct ion_handle * dest_ion_handle;
176  unsigned long src_phyaddr;
177  unsigned long dest_phyaddr;
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  unsigned long src_chroma_plane_offset;
180  unsigned long dest_chroma_plane_offset;
181  struct timeval in_time, out_time;
182  void * cookie;
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  struct msm_vpe_buffer_info_t input_buffer_info;
185  struct msm_vpe_buffer_info_t output_buffer_info;
186};
187struct msm_pproc_queue_buf_info {
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  struct msm_buf_mngr_info buff_mgr_info;
190  uint8_t is_buf_dirty;
191};
192struct msm_cpp_clock_settings_t {
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  unsigned long clock_rate;
195  uint64_t avg;
196  uint64_t inst;
197};
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199#define VIDIOC_MSM_CPP_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t)
200#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
201#define VIDIOC_MSM_CPP_GET_INST_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
202#define VIDIOC_MSM_CPP_LOAD_FIRMWARE _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t)
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204#define VIDIOC_MSM_CPP_GET_HW_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t)
205#define VIDIOC_MSM_CPP_FLUSH_QUEUE _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
206#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t)
207#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t)
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209#define VIDIOC_MSM_VPE_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_camera_v4l2_ioctl_t)
210#define VIDIOC_MSM_VPE_TRANSACTION_SETUP _IOWR('V', BASE_VIDIOC_PRIVATE + 9, struct msm_camera_v4l2_ioctl_t)
211#define VIDIOC_MSM_VPE_GET_EVENTPAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct msm_camera_v4l2_ioctl_t)
212#define VIDIOC_MSM_VPE_GET_INST_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_camera_v4l2_ioctl_t)
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214#define VIDIOC_MSM_VPE_ENQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 12, struct msm_camera_v4l2_ioctl_t)
215#define VIDIOC_MSM_VPE_DEQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_camera_v4l2_ioctl_t)
216#define VIDIOC_MSM_CPP_QUEUE_BUF _IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_camera_v4l2_ioctl_t)
217#define VIDIOC_MSM_CPP_APPEND_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_camera_v4l2_ioctl_t)
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219#define VIDIOC_MSM_CPP_SET_CLOCK _IOWR('V', BASE_VIDIOC_PRIVATE + 16, struct msm_camera_v4l2_ioctl_t)
220#define VIDIOC_MSM_CPP_POP_STREAM_BUFFER _IOWR('V', BASE_VIDIOC_PRIVATE + 17, struct msm_camera_v4l2_ioctl_t)
221#define VIDIOC_MSM_CPP_IOMMU_ATTACH _IOWR('V', BASE_VIDIOC_PRIVATE + 18, struct msm_camera_v4l2_ioctl_t)
222#define VIDIOC_MSM_CPP_IOMMU_DETACH _IOWR('V', BASE_VIDIOC_PRIVATE + 19, struct msm_camera_v4l2_ioctl_t)
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224#define VIDIOC_MSM_CPP_DELETE_STREAM_BUFF _IOWR('V', BASE_VIDIOC_PRIVATE + 20, struct msm_camera_v4l2_ioctl_t)
225#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0)
226#define V4L2_EVENT_VPE_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 1)
227struct msm_camera_v4l2_ioctl_t {
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  uint32_t id;
230  size_t len;
231  int32_t trans_code;
232  void * ioctl_ptr;
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234};
235#endif
236
237