1 /* include/linux/msm_mdp.h 2 * 3 * Copyright (C) 2007 Google Incorporated 4 * 5 * This software is licensed under the terms of the GNU General Public 6 * License version 2, as published by the Free Software Foundation, and 7 * may be copied, distributed, and modified under those terms. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 */ 14 #ifndef _MSM_MDP_H_ 15 #define _MSM_MDP_H_ 16 17 #include <linux/types.h> 18 19 #define MSMFB_IOCTL_MAGIC 'm' 20 #define MSMFB_GRP_DISP _IOW(MSMFB_IOCTL_MAGIC, 1, unsigned int) 21 #define MSMFB_BLIT _IOW(MSMFB_IOCTL_MAGIC, 2, unsigned int) 22 23 enum { 24 MDP_RGB_565, /* RGB 565 planar */ 25 MDP_XRGB_8888, /* RGB 888 padded */ 26 MDP_Y_CBCR_H2V2, /* Y and CbCr, pseudo planar w/ Cb is in MSB */ 27 MDP_ARGB_8888, /* ARGB 888 */ 28 MDP_RGB_888, /* RGB 888 planar */ 29 MDP_Y_CRCB_H2V2, /* Y and CrCb, pseudo planar w/ Cr is in MSB */ 30 MDP_YCRYCB_H2V1, /* YCrYCb interleave */ 31 MDP_Y_CRCB_H2V1, /* Y and CrCb, pseduo planar w/ Cr is in MSB */ 32 MDP_Y_CBCR_H2V1, /* Y and CrCb, pseduo planar w/ Cr is in MSB */ 33 MDP_RGBA_8888, /* ARGB 888 */ 34 MDP_BGRA_8888, /* ABGR 888 */ 35 MDP_RGBX_8888, /* RGBX 888 */ 36 MDP_IMGTYPE_LIMIT /* Non valid image type after this enum */ 37 }; 38 39 enum { 40 PMEM_IMG, 41 FB_IMG, 42 }; 43 44 /* flag values */ 45 #define MDP_ROT_NOP 0 46 #define MDP_FLIP_LR 0x1 47 #define MDP_FLIP_UD 0x2 48 #define MDP_ROT_90 0x4 49 #define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR) 50 #define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR) 51 #define MDP_DITHER 0x8 52 #define MDP_BLUR 0x10 53 54 #define MDP_TRANSP_NOP 0xffffffff 55 #define MDP_ALPHA_NOP 0xff 56 57 struct mdp_rect { 58 u32 x, y, w, h; 59 }; 60 61 struct mdp_img { 62 u32 width, height, format, offset; 63 int memory_id; /* the file descriptor */ 64 }; 65 66 struct mdp_blit_req { 67 struct mdp_img src; 68 struct mdp_img dst; 69 struct mdp_rect src_rect; 70 struct mdp_rect dst_rect; 71 u32 alpha, transp_mask, flags; 72 }; 73 74 struct mdp_blit_req_list { 75 u32 count; 76 struct mdp_blit_req req[]; 77 }; 78 79 #endif /* _MSM_MDP_H_ */ 80