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 _MSM_MDP_H_ 20 #define _MSM_MDP_H_ 21 #include <linux/types.h> 22 #include <linux/fb.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #define MSMFB_IOCTL_MAGIC 'm' 25 #define MSMFB_GRP_DISP _IOW(MSMFB_IOCTL_MAGIC, 1, unsigned int) 26 #define MSMFB_BLIT _IOW(MSMFB_IOCTL_MAGIC, 2, unsigned int) 27 #define MSMFB_SUSPEND_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 128, unsigned int) 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 #define MSMFB_RESUME_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 129, unsigned int) 30 #define MSMFB_CURSOR _IOW(MSMFB_IOCTL_MAGIC, 130, struct fb_cursor) 31 #define MSMFB_SET_LUT _IOW(MSMFB_IOCTL_MAGIC, 131, struct fb_cmap) 32 #define MSMFB_HISTOGRAM _IOWR(MSMFB_IOCTL_MAGIC, 132, struct mdp_histogram_data) 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 #define MSMFB_GET_CCS_MATRIX _IOWR(MSMFB_IOCTL_MAGIC, 133, struct mdp_ccs) 35 #define MSMFB_SET_CCS_MATRIX _IOW(MSMFB_IOCTL_MAGIC, 134, struct mdp_ccs) 36 #define MSMFB_OVERLAY_SET _IOWR(MSMFB_IOCTL_MAGIC, 135, struct mdp_overlay) 37 #define MSMFB_OVERLAY_UNSET _IOW(MSMFB_IOCTL_MAGIC, 136, unsigned int) 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 #define MSMFB_OVERLAY_PLAY _IOW(MSMFB_IOCTL_MAGIC, 137, struct msmfb_overlay_data) 40 #define MSMFB_OVERLAY_QUEUE MSMFB_OVERLAY_PLAY 41 #define MSMFB_GET_PAGE_PROTECTION _IOR(MSMFB_IOCTL_MAGIC, 138, struct mdp_page_protection) 42 #define MSMFB_SET_PAGE_PROTECTION _IOW(MSMFB_IOCTL_MAGIC, 139, struct mdp_page_protection) 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define MSMFB_OVERLAY_GET _IOR(MSMFB_IOCTL_MAGIC, 140, struct mdp_overlay) 45 #define MSMFB_OVERLAY_PLAY_ENABLE _IOW(MSMFB_IOCTL_MAGIC, 141, unsigned int) 46 #define MSMFB_OVERLAY_BLT _IOWR(MSMFB_IOCTL_MAGIC, 142, struct msmfb_overlay_blt) 47 #define MSMFB_OVERLAY_BLT_OFFSET _IOW(MSMFB_IOCTL_MAGIC, 143, unsigned int) 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 #define MSMFB_HISTOGRAM_START _IOR(MSMFB_IOCTL_MAGIC, 144, struct mdp_histogram_start_req) 50 #define MSMFB_HISTOGRAM_STOP _IOR(MSMFB_IOCTL_MAGIC, 145, unsigned int) 51 #define MSMFB_NOTIFY_UPDATE _IOW(MSMFB_IOCTL_MAGIC, 146, unsigned int) 52 #define MSMFB_OVERLAY_3D _IOWR(MSMFB_IOCTL_MAGIC, 147, struct msmfb_overlay_3d) 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 #define MSMFB_MIXER_INFO _IOWR(MSMFB_IOCTL_MAGIC, 148, struct msmfb_mixer_info_req) 55 #define MSMFB_OVERLAY_PLAY_WAIT _IOWR(MSMFB_IOCTL_MAGIC, 149, struct msmfb_overlay_data) 56 #define MSMFB_WRITEBACK_INIT _IO(MSMFB_IOCTL_MAGIC, 150) 57 #define MSMFB_WRITEBACK_START _IO(MSMFB_IOCTL_MAGIC, 151) 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 #define MSMFB_WRITEBACK_STOP _IO(MSMFB_IOCTL_MAGIC, 152) 60 #define MSMFB_WRITEBACK_QUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 153, struct msmfb_data) 61 #define MSMFB_WRITEBACK_DEQUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 154, struct msmfb_data) 62 #define MSMFB_WRITEBACK_TERMINATE _IO(MSMFB_IOCTL_MAGIC, 155) 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 #define MSMFB_MDP_PP _IOWR(MSMFB_IOCTL_MAGIC, 156, struct msmfb_mdp_pp) 65 #define MSMFB_OVERLAY_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 160, unsigned int) 66 #define MSMFB_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 161, unsigned int) 67 #define MSMFB_BUFFER_SYNC _IOW(MSMFB_IOCTL_MAGIC, 162, struct mdp_buf_sync) 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 #define MSMFB_DISPLAY_COMMIT _IOW(MSMFB_IOCTL_MAGIC, 164, struct mdp_display_commit) 70 #define FB_TYPE_3D_PANEL 0x10101010 71 #define MDP_IMGTYPE2_START 0x10000 72 #define MSMFB_DRIVER_VERSION 0xF9E8D701 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 enum { 75 NOTIFY_UPDATE_START, 76 NOTIFY_UPDATE_STOP, 77 }; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 enum { 80 MDP_RGB_565, 81 MDP_XRGB_8888, 82 MDP_Y_CBCR_H2V2, 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 MDP_Y_CBCR_H2V2_ADRENO, 85 MDP_ARGB_8888, 86 MDP_RGB_888, 87 MDP_Y_CRCB_H2V2, 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 MDP_YCRYCB_H2V1, 90 MDP_Y_CRCB_H2V1, 91 MDP_Y_CBCR_H2V1, 92 MDP_Y_CRCB_H1V2, 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 MDP_Y_CBCR_H1V2, 95 MDP_RGBA_8888, 96 MDP_BGRA_8888, 97 MDP_RGBX_8888, 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 MDP_Y_CRCB_H2V2_TILE, 100 MDP_Y_CBCR_H2V2_TILE, 101 MDP_Y_CR_CB_H2V2, 102 MDP_Y_CR_CB_GH2V2, 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 MDP_Y_CB_CR_H2V2, 105 MDP_Y_CRCB_H1V1, 106 MDP_Y_CBCR_H1V1, 107 MDP_YCRCB_H1V1, 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 MDP_YCBCR_H1V1, 110 MDP_BGR_565, 111 MDP_IMGTYPE_LIMIT, 112 MDP_RGB_BORDERFILL, 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 MDP_FB_FORMAT = MDP_IMGTYPE2_START, 115 MDP_IMGTYPE_LIMIT2 116 }; 117 enum { 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 PMEM_IMG, 120 FB_IMG, 121 }; 122 enum { 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 HSIC_HUE = 0, 125 HSIC_SAT, 126 HSIC_INT, 127 HSIC_CON, 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 NUM_HSIC_PARAM, 130 }; 131 #define MDSS_MDP_ROT_ONLY 0x80 132 #define MDSS_MDP_RIGHT_MIXER 0x100 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 #define MDP_ROT_NOP 0 135 #define MDP_FLIP_LR 0x1 136 #define MDP_FLIP_UD 0x2 137 #define MDP_ROT_90 0x4 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 #define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR) 140 #define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR) 141 #define MDP_DITHER 0x8 142 #define MDP_BLUR 0x10 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 #define MDP_BLEND_FG_PREMULT 0x20000 145 #define MDP_DEINTERLACE 0x80000000 146 #define MDP_SHARPENING 0x40000000 147 #define MDP_NO_DMA_BARRIER_START 0x20000000 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 #define MDP_NO_DMA_BARRIER_END 0x10000000 150 #define MDP_NO_BLIT 0x08000000 151 #define MDP_BLIT_WITH_DMA_BARRIERS 0x000 152 #define MDP_BLIT_WITH_NO_DMA_BARRIERS (MDP_NO_DMA_BARRIER_START | MDP_NO_DMA_BARRIER_END) 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 #define MDP_BLIT_SRC_GEM 0x04000000 155 #define MDP_BLIT_DST_GEM 0x02000000 156 #define MDP_BLIT_NON_CACHED 0x01000000 157 #define MDP_OV_PIPE_SHARE 0x00800000 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 #define MDP_DEINTERLACE_ODD 0x00400000 160 #define MDP_OV_PLAY_NOWAIT 0x00200000 161 #define MDP_SOURCE_ROTATED_90 0x00100000 162 #define MDP_OVERLAY_PP_CFG_EN 0x00080000 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 #define MDP_BACKEND_COMPOSITION 0x00040000 165 #define MDP_BORDERFILL_SUPPORTED 0x00010000 166 #define MDP_SECURE_OVERLAY_SESSION 0x00008000 167 #define MDP_MEMORY_ID_TYPE_FB 0x00001000 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 #define MDP_TRANSP_NOP 0xffffffff 170 #define MDP_ALPHA_NOP 0xff 171 #define MDP_FB_PAGE_PROTECTION_NONCACHED (0) 172 #define MDP_FB_PAGE_PROTECTION_WRITECOMBINE (1) 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 #define MDP_FB_PAGE_PROTECTION_WRITETHROUGHCACHE (2) 175 #define MDP_FB_PAGE_PROTECTION_WRITEBACKCACHE (3) 176 #define MDP_FB_PAGE_PROTECTION_WRITEBACKWACACHE (4) 177 #define MDP_FB_PAGE_PROTECTION_INVALID (5) 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 #define MDP_NUM_FB_PAGE_PROTECTION_VALUES (5) 180 struct mdp_rect { 181 uint32_t x; 182 uint32_t y; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 uint32_t w; 185 uint32_t h; 186 }; 187 struct mdp_img { 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 uint32_t width; 190 uint32_t height; 191 uint32_t format; 192 uint32_t offset; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 int memory_id; 195 uint32_t priv; 196 }; 197 #define MDP_CCS_RGB2YUV 0 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 #define MDP_CCS_YUV2RGB 1 200 #define MDP_CCS_SIZE 9 201 #define MDP_BV_SIZE 3 202 struct mdp_ccs { 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 int direction; 205 uint16_t ccs[MDP_CCS_SIZE]; 206 uint16_t bv[MDP_BV_SIZE]; 207 }; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 struct mdp_csc { 210 int id; 211 uint32_t csc_mv[9]; 212 uint32_t csc_pre_bv[3]; 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 uint32_t csc_post_bv[3]; 215 uint32_t csc_pre_lv[6]; 216 uint32_t csc_post_lv[6]; 217 }; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 #define MDP_BLIT_REQ_VERSION 2 220 struct mdp_blit_req { 221 struct mdp_img src; 222 struct mdp_img dst; 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 struct mdp_rect src_rect; 225 struct mdp_rect dst_rect; 226 uint32_t alpha; 227 uint32_t transp_mask; 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 uint32_t flags; 230 int sharpening_strength; 231 }; 232 struct mdp_blit_req_list { 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 uint32_t count; 235 struct mdp_blit_req req[]; 236 }; 237 #define MSMFB_DATA_VERSION 2 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 struct msmfb_data { 240 uint32_t offset; 241 int memory_id; 242 int id; 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 uint32_t flags; 245 uint32_t priv; 246 uint32_t iova; 247 }; 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 #define MSMFB_NEW_REQUEST -1 250 struct msmfb_overlay_data { 251 uint32_t id; 252 struct msmfb_data data; 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 uint32_t version_key; 255 struct msmfb_data plane1_data; 256 struct msmfb_data plane2_data; 257 struct msmfb_data dst_data; 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 }; 260 struct msmfb_img { 261 uint32_t width; 262 uint32_t height; 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 uint32_t format; 265 }; 266 #define MSMFB_WRITEBACK_DEQUEUE_BLOCKING 0x1 267 struct msmfb_writeback_data { 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 struct msmfb_data buf_info; 270 struct msmfb_img img; 271 }; 272 #define MDP_PP_OPS_READ 0x2 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274 #define MDP_PP_OPS_WRITE 0x4 275 struct mdp_qseed_cfg { 276 uint32_t table_num; 277 uint32_t ops; 278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279 uint32_t len; 280 uint32_t *data; 281 }; 282 struct mdp_qseed_cfg_data { 283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284 uint32_t block; 285 struct mdp_qseed_cfg qseed_data; 286 }; 287 #define MDP_OVERLAY_PP_CSC_CFG 0x1 288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289 #define MDP_OVERLAY_PP_QSEED_CFG 0x2 290 #define MDP_CSC_FLAG_ENABLE 0x1 291 #define MDP_CSC_FLAG_YUV_IN 0x2 292 #define MDP_CSC_FLAG_YUV_OUT 0x4 293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294 struct mdp_csc_cfg { 295 uint32_t flags; 296 uint32_t csc_mv[9]; 297 uint32_t csc_pre_bv[3]; 298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299 uint32_t csc_post_bv[3]; 300 uint32_t csc_pre_lv[6]; 301 uint32_t csc_post_lv[6]; 302 }; 303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304 struct mdp_csc_cfg_data { 305 uint32_t block; 306 struct mdp_csc_cfg csc_data; 307 }; 308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309 struct mdp_overlay_pp_params { 310 uint32_t config_ops; 311 struct mdp_csc_cfg csc_cfg; 312 struct mdp_qseed_cfg qseed_cfg[2]; 313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 314 }; 315 struct mdp_overlay { 316 struct msmfb_img src; 317 struct mdp_rect src_rect; 318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 319 struct mdp_rect dst_rect; 320 uint32_t z_order; 321 uint32_t is_fg; 322 uint32_t alpha; 323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 324 uint32_t transp_mask; 325 uint32_t flags; 326 uint32_t id; 327 uint32_t user_data[8]; 328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 329 struct mdp_overlay_pp_params overlay_pp_cfg; 330 }; 331 struct msmfb_overlay_3d { 332 uint32_t is_3d; 333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 334 uint32_t width; 335 uint32_t height; 336 }; 337 struct msmfb_overlay_blt { 338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 339 uint32_t enable; 340 uint32_t offset; 341 uint32_t width; 342 uint32_t height; 343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 344 uint32_t bpp; 345 }; 346 struct mdp_histogram { 347 uint32_t frame_cnt; 348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 349 uint32_t bin_cnt; 350 uint32_t *r; 351 uint32_t *g; 352 uint32_t *b; 353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 354 }; 355 enum { 356 MDP_BLOCK_RESERVED = 0, 357 MDP_BLOCK_OVERLAY_0, 358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 359 MDP_BLOCK_OVERLAY_1, 360 MDP_BLOCK_VG_1, 361 MDP_BLOCK_VG_2, 362 MDP_BLOCK_RGB_1, 363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 364 MDP_BLOCK_RGB_2, 365 MDP_BLOCK_DMA_P, 366 MDP_BLOCK_DMA_S, 367 MDP_BLOCK_DMA_E, 368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 369 MDP_BLOCK_OVERLAY_2, 370 MDP_BLOCK_MAX, 371 }; 372 struct mdp_histogram_start_req { 373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 374 uint32_t block; 375 uint8_t frame_cnt; 376 uint8_t bit_mask; 377 uint8_t num_bins; 378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 379 }; 380 struct mdp_histogram_data { 381 uint32_t block; 382 uint8_t bin_cnt; 383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 384 uint32_t *c0; 385 uint32_t *c1; 386 uint32_t *c2; 387 uint32_t *extra_info; 388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 389 }; 390 struct mdp_pcc_coeff { 391 uint32_t c, r, g, b, rr, gg, bb, rg, gb, rb, rgb_0, rgb_1; 392 }; 393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 394 struct mdp_pcc_cfg_data { 395 uint32_t block; 396 uint32_t ops; 397 struct mdp_pcc_coeff r, g, b; 398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 399 }; 400 enum { 401 mdp_lut_igc, 402 mdp_lut_pgc, 403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 404 mdp_lut_hist, 405 mdp_lut_max, 406 }; 407 struct mdp_igc_lut_data { 408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 409 uint32_t block; 410 uint32_t len, ops; 411 uint32_t *c0_c1_data; 412 uint32_t *c2_data; 413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 414 }; 415 struct mdp_ar_gc_lut_data { 416 uint32_t x_start; 417 uint32_t slope; 418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 419 uint32_t offset; 420 }; 421 struct mdp_pgc_lut_data { 422 uint32_t block; 423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 424 uint32_t flags; 425 uint8_t num_r_stages; 426 uint8_t num_g_stages; 427 uint8_t num_b_stages; 428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 429 struct mdp_ar_gc_lut_data *r_data; 430 struct mdp_ar_gc_lut_data *g_data; 431 struct mdp_ar_gc_lut_data *b_data; 432 }; 433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 434 struct mdp_hist_lut_data { 435 uint32_t block; 436 uint32_t ops; 437 uint32_t len; 438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 439 uint32_t *data; 440 }; 441 struct mdp_lut_cfg_data { 442 uint32_t lut_type; 443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 444 union { 445 struct mdp_igc_lut_data igc_lut_data; 446 struct mdp_pgc_lut_data pgc_lut_data; 447 struct mdp_hist_lut_data hist_lut_data; 448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 449 } data; 450 }; 451 struct mdp_bl_scale_data { 452 uint32_t min_lvl; 453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 454 uint32_t scale; 455 }; 456 enum { 457 mdp_op_pcc_cfg, 458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 459 mdp_op_csc_cfg, 460 mdp_op_lut_cfg, 461 mdp_op_qseed_cfg, 462 mdp_bl_scale_cfg, 463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 464 mdp_op_max, 465 }; 466 struct msmfb_mdp_pp { 467 uint32_t op; 468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 469 union { 470 struct mdp_pcc_cfg_data pcc_cfg_data; 471 struct mdp_csc_cfg_data csc_cfg_data; 472 struct mdp_lut_cfg_data lut_cfg_data; 473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 474 struct mdp_qseed_cfg_data qseed_cfg_data; 475 struct mdp_bl_scale_data bl_scale_data; 476 } data; 477 }; 478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 479 #define MDP_MAX_FENCE_FD 10 480 #define MDP_BUF_SYNC_FLAG_WAIT 1 481 struct mdp_buf_sync { 482 uint32_t flags; 483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 484 uint32_t acq_fen_fd_cnt; 485 int *acq_fen_fd; 486 int *rel_fen_fd; 487 }; 488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 489 struct mdp_buf_fence { 490 uint32_t flags; 491 uint32_t acq_fen_fd_cnt; 492 int acq_fen_fd[MDP_MAX_FENCE_FD]; 493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 494 int rel_fen_fd[MDP_MAX_FENCE_FD]; 495 }; 496 #define MDP_DISPLAY_COMMIT_OVERLAY 0x00000001 497 struct mdp_display_commit { 498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 499 uint32_t flags; 500 uint32_t wait_for_finish; 501 struct fb_var_screeninfo var; 502 struct mdp_buf_fence buf_fence; 503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 504 }; 505 struct mdp_page_protection { 506 uint32_t page_protection; 507 }; 508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 509 struct mdp_mixer_info { 510 int pndx; 511 int pnum; 512 int ptype; 513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 514 int mixer_num; 515 int z_order; 516 }; 517 #define MAX_PIPE_PER_MIXER 4 518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 519 struct msmfb_mixer_info_req { 520 int mixer_num; 521 int cnt; 522 struct mdp_mixer_info info[MAX_PIPE_PER_MIXER]; 523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 524 }; 525 enum { 526 DISPLAY_SUBSYSTEM_ID, 527 ROTATOR_SUBSYSTEM_ID, 528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 529 }; 530 #endif 531 532