linux/include/linux/msm_mdp.h
<<
>>
Prefs
   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