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 struct msm_cpp_frame_strip_info {
37  int scale_v_en;
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  int scale_h_en;
40  int upscale_v_en;
41  int upscale_h_en;
42  int src_start_x;
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  int src_end_x;
45  int src_start_y;
46  int src_end_y;
47  int pad_bottom;
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49  int pad_top;
50  int pad_right;
51  int pad_left;
52  int v_init_phase;
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  int h_init_phase;
55  int h_phase_step;
56  int v_phase_step;
57  int prescale_crop_width_first_pixel;
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  int prescale_crop_width_last_pixel;
60  int prescale_crop_height_first_line;
61  int prescale_crop_height_last_line;
62  int postscale_crop_height_first_line;
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  int postscale_crop_height_last_line;
65  int postscale_crop_width_first_pixel;
66  int postscale_crop_width_last_pixel;
67  int dst_start_x;
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  int dst_end_x;
70  int dst_start_y;
71  int dst_end_y;
72  int bytes_per_pixel;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  unsigned int source_address;
75  unsigned int destination_address;
76  unsigned int src_stride;
77  unsigned int dst_stride;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  int rotate_270;
80  int horizontal_flip;
81  int vertical_flip;
82  int scale_output_width;
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  int scale_output_height;
85  int prescale_crop_en;
86  int postscale_crop_en;
87 };
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 struct msm_cpp_buffer_info_t {
90  int fd;
91  uint32_t index;
92  uint32_t offset;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  uint8_t native_buff;
95  uint8_t processed_divert;
96 };
97 struct msm_cpp_stream_buff_info_t {
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  uint32_t identity;
100  uint32_t num_buffs;
101  struct msm_cpp_buffer_info_t *buffer_info;
102 };
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 struct msm_cpp_frame_info_t {
105  int32_t frame_id;
106  struct timeval timestamp;
107  uint32_t inst_id;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  uint32_t identity;
110  uint32_t client_id;
111  enum msm_cpp_frame_type frame_type;
112  uint32_t num_strips;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  struct msm_cpp_frame_strip_info *strip_info;
115  uint32_t msg_len;
116  uint32_t *cpp_cmd_msg;
117  int src_fd;
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  int dst_fd;
120  struct ion_handle *src_ion_handle;
121  struct ion_handle *dest_ion_handle;
122  struct timeval in_time, out_time;
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  void *cookie;
125  int32_t *status;
126  struct msm_cpp_buffer_info_t input_buffer_info;
127  struct msm_cpp_buffer_info_t output_buffer_info;
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 };
130 struct cpp_hw_info {
131  uint32_t cpp_hw_version;
132  uint32_t cpp_hw_caps;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 };
135 #define VIDIOC_MSM_CPP_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t)
136 #define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD   _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
137 #define VIDIOC_MSM_CPP_GET_INST_INFO   _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 #define VIDIOC_MSM_CPP_LOAD_FIRMWARE   _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t)
140 #define VIDIOC_MSM_CPP_GET_HW_INFO   _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t)
141 #define VIDIOC_MSM_CPP_FLUSH_QUEUE   _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
142 #define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO   _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t)
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144 #define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO   _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t)
145 #define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0)
146 struct msm_camera_v4l2_ioctl_t {
147  uint32_t id;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  uint32_t len;
150  int32_t trans_code;
151  void __user *ioctl_ptr;
152 };
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 #endif
155