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 23enum { 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 39enum { 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 57struct mdp_rect { 58 u32 x, y, w, h; 59}; 60 61struct mdp_img { 62 u32 width, height, format, offset; 63 int memory_id; /* the file descriptor */ 64}; 65 66struct 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 74struct mdp_blit_req_list { 75 u32 count; 76 struct mdp_blit_req req[]; 77}; 78 79#endif /* _MSM_MDP_H_ */ 80