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 _LINUX_DSSCOMP_H 20 #define _LINUX_DSSCOMP_H 21 enum omap_plane { 22 OMAP_DSS_GFX = 0, 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 OMAP_DSS_VIDEO1 = 1, 25 OMAP_DSS_VIDEO2 = 2, 26 OMAP_DSS_VIDEO3 = 3, 27 OMAP_DSS_WB = 4, 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 }; 30 enum omap_channel { 31 OMAP_DSS_CHANNEL_LCD = 0, 32 OMAP_DSS_CHANNEL_DIGIT = 1, 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 OMAP_DSS_CHANNEL_LCD2 = 2, 35 }; 36 enum omap_color_mode { 37 OMAP_DSS_COLOR_CLUT1 = 1 << 0, 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 OMAP_DSS_COLOR_CLUT2 = 1 << 1, 40 OMAP_DSS_COLOR_CLUT4 = 1 << 2, 41 OMAP_DSS_COLOR_CLUT8 = 1 << 3, 42 OMAP_DSS_COLOR_RGB12U = 1 << 4, 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 OMAP_DSS_COLOR_ARGB16 = 1 << 5, 45 OMAP_DSS_COLOR_RGB16 = 1 << 6, 46 OMAP_DSS_COLOR_RGB24U = 1 << 7, 47 OMAP_DSS_COLOR_RGB24P = 1 << 8, 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 OMAP_DSS_COLOR_YUV2 = 1 << 9, 50 OMAP_DSS_COLOR_UYVY = 1 << 10, 51 OMAP_DSS_COLOR_ARGB32 = 1 << 11, 52 OMAP_DSS_COLOR_RGBA32 = 1 << 12, 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 OMAP_DSS_COLOR_RGBX24 = 1 << 13, 55 OMAP_DSS_COLOR_RGBX32 = 1 << 13, 56 OMAP_DSS_COLOR_NV12 = 1 << 14, 57 OMAP_DSS_COLOR_RGBA16 = 1 << 15, 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 OMAP_DSS_COLOR_RGBX12 = 1 << 16, 60 OMAP_DSS_COLOR_RGBX16 = 1 << 16, 61 OMAP_DSS_COLOR_ARGB16_1555 = 1 << 17, 62 OMAP_DSS_COLOR_XRGB15 = 1 << 18, 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 OMAP_DSS_COLOR_XRGB16_1555 = 1 << 18, 65 }; 66 enum omap_dss_trans_key_type { 67 OMAP_DSS_COLOR_KEY_GFX_DST = 0, 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 OMAP_DSS_COLOR_KEY_VID_SRC = 1, 70 }; 71 enum omap_dss_display_state { 72 OMAP_DSS_DISPLAY_DISABLED = 0, 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 OMAP_DSS_DISPLAY_ACTIVE, 75 OMAP_DSS_DISPLAY_SUSPENDED, 76 OMAP_DSS_DISPLAY_TRANSITION, 77 }; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 struct omap_video_timings { 80 __u16 x_res; 81 __u16 y_res; 82 __u32 pixel_clock; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 __u16 hsw; 85 __u16 hfp; 86 __u16 hbp; 87 __u16 vsw; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 __u16 vfp; 90 __u16 vbp; 91 }; 92 struct omap_dss_cconv_coefs { 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 __s16 ry, rcr, rcb; 95 __s16 gy, gcr, gcb; 96 __s16 by, bcr, bcb; 97 __u16 full_range; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 } __attribute__ ((aligned(4))); 100 struct omap_dss_cpr_coefs { 101 __s16 rr, rg, rb; 102 __s16 gr, gg, gb; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 __s16 br, bg, bb; 105 }; 106 struct dsscomp_videomode { 107 const char *name; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 __u32 refresh; 110 __u32 xres; 111 __u32 yres; 112 __u32 pixclock; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 __u32 left_margin; 115 __u32 right_margin; 116 __u32 upper_margin; 117 __u32 lower_margin; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 __u32 hsync_len; 120 __u32 vsync_len; 121 __u32 sync; 122 __u32 vmode; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 __u32 flag; 125 }; 126 enum s3d_disp_type { 127 S3D_DISP_NONE = 0, 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 S3D_DISP_FRAME_SEQ, 130 S3D_DISP_ROW_IL, 131 S3D_DISP_COL_IL, 132 S3D_DISP_PIX_IL, 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 S3D_DISP_CHECKB, 135 S3D_DISP_OVERUNDER, 136 S3D_DISP_SIDEBYSIDE, 137 }; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 enum s3d_disp_sub_sampling { 140 S3D_DISP_SUB_SAMPLE_NONE = 0, 141 S3D_DISP_SUB_SAMPLE_V, 142 S3D_DISP_SUB_SAMPLE_H, 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 }; 145 enum s3d_disp_order { 146 S3D_DISP_ORDER_L = 0, 147 S3D_DISP_ORDER_R = 1, 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 }; 150 enum s3d_disp_view { 151 S3D_DISP_VIEW_L = 0, 152 S3D_DISP_VIEW_R, 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 }; 155 struct s3d_disp_info { 156 enum s3d_disp_type type; 157 enum s3d_disp_sub_sampling sub_samp; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 enum s3d_disp_order order; 160 unsigned int gap; 161 }; 162 enum omap_dss_ilace_mode { 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 OMAP_DSS_ILACE = (1 << 0), 165 OMAP_DSS_ILACE_SEQ = (1 << 1), 166 OMAP_DSS_ILACE_SWAP = (1 << 2), 167 OMAP_DSS_ILACE_NONE = 0, 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 OMAP_DSS_ILACE_IL_TB = OMAP_DSS_ILACE, 170 OMAP_DSS_ILACE_IL_BT = OMAP_DSS_ILACE | OMAP_DSS_ILACE_SWAP, 171 OMAP_DSS_ILACE_SEQ_TB = OMAP_DSS_ILACE_IL_TB | OMAP_DSS_ILACE_SEQ, 172 OMAP_DSS_ILACE_SEQ_BT = OMAP_DSS_ILACE_IL_BT | OMAP_DSS_ILACE_SEQ, 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 }; 175 struct dss2_vc1_range_map_info { 176 __u8 enable; 177 __u8 range_y; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __u8 range_uv; 180 } __attribute__ ((aligned(4))); 181 struct dss2_rect_t { 182 __s32 x; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 __s32 y; 185 __u32 w; 186 __u32 h; 187 } __attribute__ ((aligned(4))); 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 struct dss2_decim { 190 __u8 min_x; 191 __u8 max_x; 192 __u8 min_y; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 __u8 max_y; 195 } __attribute__ ((aligned(4))); 196 struct dss2_ovl_cfg { 197 __u16 width; 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 __u16 height; 200 __u32 stride; 201 enum omap_color_mode color_mode; 202 __u8 pre_mult_alpha; 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 __u8 global_alpha; 205 __u8 rotation; 206 __u8 mirror; 207 enum omap_dss_ilace_mode ilace; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 struct dss2_rect_t win; 210 struct dss2_rect_t crop; 211 struct dss2_decim decim; 212 struct omap_dss_cconv_coefs cconv; 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 struct dss2_vc1_range_map_info vc1; 215 __u8 ix; 216 __u8 zorder; 217 __u8 enabled; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 __u8 zonly; 220 __u8 mgr_ix; 221 } __attribute__ ((aligned(4))); 222 enum omapdss_buffer_type { 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 OMAP_DSS_BUFTYPE_SDMA, 225 OMAP_DSS_BUFTYPE_TILER_8BIT, 226 OMAP_DSS_BUFTYPE_TILER_16BIT, 227 OMAP_DSS_BUFTYPE_TILER_32BIT, 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 OMAP_DSS_BUFTYPE_TILER_PAGE, 230 }; 231 enum omapdss_buffer_addressing_type { 232 OMAP_DSS_BUFADDR_DIRECT, 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 OMAP_DSS_BUFADDR_BYTYPE, 235 OMAP_DSS_BUFADDR_ION, 236 OMAP_DSS_BUFADDR_GRALLOC, 237 OMAP_DSS_BUFADDR_OVL_IX, 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 OMAP_DSS_BUFADDR_LAYER_IX, 240 OMAP_DSS_BUFADDR_FB, 241 }; 242 struct dss2_ovl_info { 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 struct dss2_ovl_cfg cfg; 245 enum omapdss_buffer_addressing_type addressing; 246 union { 247 struct { 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 void *address; 250 void *uv_address; 251 }; 252 struct { 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 enum omapdss_buffer_type ba_type; 255 enum omapdss_buffer_type uv_type; 256 }; 257 struct { 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 __u32 ba; 260 __u32 uv; 261 }; 262 }; 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 }; 265 struct dss2_mgr_info { 266 __u32 ix; 267 __u32 default_color; 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 enum omap_dss_trans_key_type trans_key_type; 270 __u32 trans_key; 271 struct omap_dss_cpr_coefs cpr_coefs; 272 __u8 trans_enabled; 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274 __u8 interlaced; 275 __u8 alpha_blending; 276 __u8 cpr_enabled; 277 __u8 swap_rb; 278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279 } __attribute__ ((aligned(4))); 280 enum dsscomp_setup_mode { 281 DSSCOMP_SETUP_MODE_APPLY = (1 << 0), 282 DSSCOMP_SETUP_MODE_DISPLAY = (1 << 1), 283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284 DSSCOMP_SETUP_MODE_CAPTURE = (1 << 2), 285 DSSCOMP_SETUP_APPLY = DSSCOMP_SETUP_MODE_APPLY, 286 DSSCOMP_SETUP_DISPLAY = 287 DSSCOMP_SETUP_MODE_APPLY | DSSCOMP_SETUP_MODE_DISPLAY, 288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289 DSSCOMP_SETUP_CAPTURE = 290 DSSCOMP_SETUP_MODE_APPLY | DSSCOMP_SETUP_MODE_CAPTURE, 291 DSSCOMP_SETUP_DISPLAY_CAPTURE = 292 DSSCOMP_SETUP_DISPLAY | DSSCOMP_SETUP_CAPTURE, 293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294 }; 295 struct dsscomp_setup_mgr_data { 296 __u32 sync_id; 297 struct dss2_rect_t win; 298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299 enum dsscomp_setup_mode mode; 300 __u16 num_ovls; 301 __u16 get_sync_obj; 302 struct dss2_mgr_info mgr; 303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304 struct dss2_ovl_info ovls[0]; 305 }; 306 struct dsscomp_check_ovl_data { 307 enum dsscomp_setup_mode mode; 308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309 struct dss2_mgr_info mgr; 310 struct dss2_ovl_info ovl; 311 }; 312 struct dsscomp_setup_dispc_data { 313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 314 __u32 sync_id; 315 enum dsscomp_setup_mode mode; 316 __u16 num_ovls; 317 __u16 num_mgrs; 318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 319 __u16 get_sync_obj; 320 struct dss2_mgr_info mgrs[3]; 321 struct dss2_ovl_info ovls[5]; 322 }; 323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 324 struct dsscomp_wb_copy_data { 325 struct dss2_ovl_info ovl, wb; 326 }; 327 struct dsscomp_display_info { 328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 329 __u32 ix; 330 __u32 overlays_available; 331 __u32 overlays_owned; 332 enum omap_channel channel; 333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 334 enum omap_dss_display_state state; 335 __u8 enabled; 336 struct omap_video_timings timings; 337 struct s3d_disp_info s3d_info; 338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 339 struct dss2_mgr_info mgr; 340 __u16 width_in_mm; 341 __u16 height_in_mm; 342 __u32 modedb_len; 343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 344 struct dsscomp_videomode modedb[]; 345 }; 346 struct dsscomp_setup_display_data { 347 __u32 ix; 348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 349 struct dsscomp_videomode mode; 350 }; 351 enum dsscomp_wait_phase { 352 DSSCOMP_WAIT_PROGRAMMED = 1, 353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 354 DSSCOMP_WAIT_DISPLAYED, 355 DSSCOMP_WAIT_RELEASED, 356 }; 357 struct dsscomp_wait_data { 358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 359 __u32 timeout_us; 360 enum dsscomp_wait_phase phase; 361 }; 362 #define DSSCIOC_SETUP_MGR _IOW('O', 128, struct dsscomp_setup_mgr_data) 363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 364 #define DSSCIOC_CHECK_OVL _IOWR('O', 129, struct dsscomp_check_ovl_data) 365 #define DSSCIOC_WB_COPY _IOW('O', 130, struct dsscomp_wb_copy_data) 366 #define DSSCIOC_QUERY_DISPLAY _IOWR('O', 131, struct dsscomp_display_info) 367 #define DSSCIOC_WAIT _IOW('O', 132, struct dsscomp_wait_data) 368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 369 #define DSSCIOC_SETUP_DISPC _IOW('O', 133, struct dsscomp_setup_dispc_data) 370 #define DSSCIOC_SETUP_DISPLAY _IOW('O', 134, struct dsscomp_setup_display_data) 371 #endif 372