Commit | Line | Data |
---|---|---|
da6df077 DW |
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 */ | |
a8d380f3 | 35 | MDP_RGBX_8888, /* RGBX 888 */ |
da6df077 DW |
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_ */ |