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