120c516838913956e6f86347b305fe29506e2b491Jiho Chang/*
220c516838913956e6f86347b305fe29506e2b491Jiho Chang * Copyright@ Samsung Electronics Co. LTD
320c516838913956e6f86347b305fe29506e2b491Jiho Chang *
420c516838913956e6f86347b305fe29506e2b491Jiho Chang * Licensed under the Apache License, Version 2.0 (the "License");
520c516838913956e6f86347b305fe29506e2b491Jiho Chang * you may not use this file except in compliance with the License.
620c516838913956e6f86347b305fe29506e2b491Jiho Chang * You may obtain a copy of the License at
720c516838913956e6f86347b305fe29506e2b491Jiho Chang *
820c516838913956e6f86347b305fe29506e2b491Jiho Chang *      http://www.apache.org/licenses/LICENSE-2.0
920c516838913956e6f86347b305fe29506e2b491Jiho Chang *
1020c516838913956e6f86347b305fe29506e2b491Jiho Chang * Unless required by applicable law or agreed to in writing, software
1120c516838913956e6f86347b305fe29506e2b491Jiho Chang * distributed under the License is distributed on an "AS IS" BASIS,
1220c516838913956e6f86347b305fe29506e2b491Jiho Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1320c516838913956e6f86347b305fe29506e2b491Jiho Chang * See the License for the specific language governing permissions and
1420c516838913956e6f86347b305fe29506e2b491Jiho Chang * limitations under the License.
1520c516838913956e6f86347b305fe29506e2b491Jiho Chang */
1620c516838913956e6f86347b305fe29506e2b491Jiho Chang
1720c516838913956e6f86347b305fe29506e2b491Jiho Chang#ifndef _SEC_G2D_DRIVER_H_
1820c516838913956e6f86347b305fe29506e2b491Jiho Chang#define _SEC_G2D_DRIVER_H_
1920c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef unsigned char  u8;
2020c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef unsigned short u16;
2120c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef unsigned long  u32;
2220c516838913956e6f86347b305fe29506e2b491Jiho Chang
2320c516838913956e6f86347b305fe29506e2b491Jiho Chang#define SEC_G2D_DEV_NAME        "/dev/fimg2d"
2420c516838913956e6f86347b305fe29506e2b491Jiho Chang
2520c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_IOCTL_MAGIC 'G'
2620c516838913956e6f86347b305fe29506e2b491Jiho Chang
2720c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_BLIT                    _IO(G2D_IOCTL_MAGIC,0)
2820c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_GET_VERSION             _IO(G2D_IOCTL_MAGIC,1)
2920c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_GET_MEMORY              _IOR(G2D_IOCTL_MAGIC,2, unsigned int)
3020c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_GET_MEMORY_SIZE         _IOR(G2D_IOCTL_MAGIC,3, unsigned int)
3120c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_DMA_CACHE_CLEAN         _IOWR(G2D_IOCTL_MAGIC,4, struct g2d_dma_info)
3220c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_DMA_CACHE_FLUSH         _IOWR(G2D_IOCTL_MAGIC,5, struct g2d_dma_info)
3320c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_SYNC                    _IO(G2D_IOCTL_MAGIC,6)
3420c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_RESET                   _IO(G2D_IOCTL_MAGIC,7)
3520c516838913956e6f86347b305fe29506e2b491Jiho Chang
3620c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_MAX_WIDTH   (2048)
3720c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_MAX_HEIGHT  (2048)
3820c516838913956e6f86347b305fe29506e2b491Jiho Chang
3920c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_ALPHA_VALUE_MAX (255)
4020c516838913956e6f86347b305fe29506e2b491Jiho Chang
4120c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_POLLING (1<<0)
4220c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_INTERRUPT (0<<0)
4320c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_CACHE_OP (1<<1)
4420c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_NONE_INVALIDATE (0<<1)
4520c516838913956e6f86347b305fe29506e2b491Jiho Chang#define G2D_HYBRID_MODE (1<<2)
4620c516838913956e6f86347b305fe29506e2b491Jiho Chang
4720c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
4820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROT_0 = 0,
4920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROT_90,
5020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROT_180,
5120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROT_270,
5220c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROT_X_FLIP,
5320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROT_Y_FLIP
5420c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_ROT_DEG;
5520c516838913956e6f86347b305fe29506e2b491Jiho Chang
5620c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
5720c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ALPHA_BLENDING_MIN    = 0,   // wholly transparent
5820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ALPHA_BLENDING_MAX    = 255, // 255
5920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ALPHA_BLENDING_OPAQUE = 256, // opaque
6020c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_ALPHA_BLENDING_MODE;
6120c516838913956e6f86347b305fe29506e2b491Jiho Chang
6220c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
6320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_COLORKEY_NONE = 0,
6420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_COLORKEY_SRC_ON,
6520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_COLORKEY_DST_ON,
6620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_COLORKEY_SRC_DST_ON,
6720c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_COLORKEY_MODE;
6820c516838913956e6f86347b305fe29506e2b491Jiho Chang
6920c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
7020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BLUE_SCREEN_NONE = 0,
7120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BLUE_SCREEN_TRANSPARENT,
7220c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BLUE_SCREEN_WITH_COLOR,
7320c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_BLUE_SCREEN_MODE;
7420c516838913956e6f86347b305fe29506e2b491Jiho Chang
7520c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
7620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_SRC = 0,
7720c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_DST,
7820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_SRC_AND_DST,
7920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_SRC_OR_DST,
8020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_3RD_OPRND,
8120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_SRC_AND_3RD_OPRND,
8220c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_SRC_OR_3RD_OPRND,
8320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_SRC_XOR_3RD_OPRND,
8420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ROP_DST_OR_3RD,
8520c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_ROP_TYPE;
8620c516838913956e6f86347b305fe29506e2b491Jiho Chang
8720c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
8820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_THIRD_OP_NONE = 0,
8920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_THIRD_OP_PATTERN,
9020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_THIRD_OP_FG,
9120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_THIRD_OP_BG
9220c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_THIRD_OP_MODE;
9320c516838913956e6f86347b305fe29506e2b491Jiho Chang
9420c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
9520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BLACK = 0,
9620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RED,
9720c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_GREEN,
9820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BLUE,
9920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_WHITE,
10020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_YELLOW,
10120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_CYAN,
10220c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_MAGENTA
10320c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_COLOR;
10420c516838913956e6f86347b305fe29506e2b491Jiho Chang
10520c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
10620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGB_565 = ((0<<4)|2),
10720c516838913956e6f86347b305fe29506e2b491Jiho Chang
10820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ABGR_8888 = ((2<<4)|1),
10920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BGRA_8888 = ((3<<4)|1),
11020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ARGB_8888 = ((0<<4)|1),
11120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGBA_8888 = ((1<<4)|1),
11220c516838913956e6f86347b305fe29506e2b491Jiho Chang
11320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_XBGR_8888 = ((2<<4)|0),
11420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BGRX_8888 = ((3<<4)|0),
11520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_XRGB_8888 = ((0<<4)|0),
11620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGBX_8888 = ((1<<4)|0),
11720c516838913956e6f86347b305fe29506e2b491Jiho Chang
11820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ABGR_1555 = ((2<<4)|4),
11920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BGRA_5551 = ((3<<4)|4),
12020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ARGB_1555 = ((0<<4)|4),
12120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGBA_5551 = ((1<<4)|4),
12220c516838913956e6f86347b305fe29506e2b491Jiho Chang
12320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_XBGR_1555 = ((2<<4)|3),
12420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BGRX_5551 = ((3<<4)|3),
12520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_XRGB_1555 = ((0<<4)|3),
12620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGBX_5551 = ((1<<4)|3),
12720c516838913956e6f86347b305fe29506e2b491Jiho Chang
12820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ABGR_4444 = ((2<<4)|6),
12920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BGRA_4444 = ((3<<4)|6),
13020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ARGB_4444 = ((0<<4)|6),
13120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGBA_4444 = ((1<<4)|6),
13220c516838913956e6f86347b305fe29506e2b491Jiho Chang
13320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_XBGR_4444 = ((2<<4)|5),
13420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_BGRX_4444 = ((3<<4)|5),
13520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_XRGB_4444 = ((0<<4)|5),
13620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_RGBX_4444 = ((1<<4)|5),
13720c516838913956e6f86347b305fe29506e2b491Jiho Chang
13820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_PACKED_BGR_888 = ((2<<4)|7),
13920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_PACKED_RGB_888 = ((0<<4)|7),
14020c516838913956e6f86347b305fe29506e2b491Jiho Chang
14120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_MAX_COLOR_SPACE
14220c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_COLOR_SPACE;
14320c516838913956e6f86347b305fe29506e2b491Jiho Chang
14420c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
14520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Clear_Mode,    //!< [0, 0]
14620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Src_Mode,      //!< [Sa, Sc]
14720c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Dst_Mode,      //!< [Da, Dc]
14820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_SrcOver_Mode,  //!< [Sa + Da - Sa*Da, Rc = Sc + (1 - Sa)*Dc]
14920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_DstOver_Mode,  //!< [Sa + Da - Sa*Da, Rc = Dc + (1 - Da)*Sc]
15020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_SrcIn_Mode,    //!< [Sa * Da, Sc * Da]
15120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_DstIn_Mode,    //!< [Sa * Da, Sa * Dc]
15220c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_SrcOut_Mode,   //!< [Sa * (1 - Da), Sc * (1 - Da)]
15320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_DstOut_Mode,   //!< [Da * (1 - Sa), Dc * (1 - Sa)]
15420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_SrcATop_Mode,  //!< [Da, Sc * Da + (1 - Sa) * Dc]
15520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_DstATop_Mode,  //!< [Sa, Sa * Dc + Sc * (1 - Da)]
15620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Xor_Mode,      //!< [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc]
15720c516838913956e6f86347b305fe29506e2b491Jiho Chang
15820c516838913956e6f86347b305fe29506e2b491Jiho Chang    // these modes are defined in the SVG Compositing standard
15920c516838913956e6f86347b305fe29506e2b491Jiho Chang    // http://www.w3.org/TR/2009/WD-SVGCompositing-20090430/
16020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Plus_Mode,
16120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Multiply_Mode,
16220c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Screen_Mode,
16320c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Overlay_Mode,
16420c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Darken_Mode,
16520c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Lighten_Mode,
16620c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ColorDodge_Mode,
16720c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_ColorBurn_Mode,
16820c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_HardLight_Mode,
16920c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_SoftLight_Mode,
17020c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Difference_Mode,
17120c516838913956e6f86347b305fe29506e2b491Jiho Chang    G2D_Exclusion_Mode,
17220c516838913956e6f86347b305fe29506e2b491Jiho Chang
17320c516838913956e6f86347b305fe29506e2b491Jiho Chang    kLastMode = G2D_Exclusion_Mode
17420c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_PORTTERDUFF_MODE;
17520c516838913956e6f86347b305fe29506e2b491Jiho Chang
17620c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef enum {
17720c516838913956e6f86347b305fe29506e2b491Jiho Chang       G2D_MEMORY_KERNEL,
17820c516838913956e6f86347b305fe29506e2b491Jiho Chang       G2D_MEMORY_USER
17920c516838913956e6f86347b305fe29506e2b491Jiho Chang} G2D_MEMORY_TYPE;
18020c516838913956e6f86347b305fe29506e2b491Jiho Chang
18120c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct {
18220c516838913956e6f86347b305fe29506e2b491Jiho Chang    int    x;
18320c516838913956e6f86347b305fe29506e2b491Jiho Chang    int    y;
18420c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    w;
18520c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    h;
18620c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    full_w;
18720c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    full_h;
18820c516838913956e6f86347b305fe29506e2b491Jiho Chang    int             color_format;
18920c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    bytes_per_pixel;
19020c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned char * addr;
19120c516838913956e6f86347b305fe29506e2b491Jiho Chang} g2d_rect;
19220c516838913956e6f86347b305fe29506e2b491Jiho Chang
19320c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct {
19420c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    rotate_val;
19520c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    alpha_val;
19620c516838913956e6f86347b305fe29506e2b491Jiho Chang
19720c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    blue_screen_mode;     //true : enable, false : disable
19820c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    color_key_val;        //screen color value
19920c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    color_switch_val;     //one color
20020c516838913956e6f86347b305fe29506e2b491Jiho Chang
20120c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    src_color;            // when set one color on SRC
20220c516838913956e6f86347b305fe29506e2b491Jiho Chang
20320c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    third_op_mode;
20420c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    rop_mode;
20520c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    mask_mode;
20620c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    render_mode;
20720c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    potterduff_mode;
20820c516838913956e6f86347b305fe29506e2b491Jiho Chang        unsigned int    memory_type;
20920c516838913956e6f86347b305fe29506e2b491Jiho Chang} g2d_flag;
21020c516838913956e6f86347b305fe29506e2b491Jiho Chang
21120c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct {
21220c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    t;
21320c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    b;
21420c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    l;
21520c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int    r;
21620c516838913956e6f86347b305fe29506e2b491Jiho Chang} g2d_clip;
21720c516838913956e6f86347b305fe29506e2b491Jiho Chang
21820c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct {
21920c516838913956e6f86347b305fe29506e2b491Jiho Chang    g2d_rect src_rect;
22020c516838913956e6f86347b305fe29506e2b491Jiho Chang    g2d_rect dst_rect;
22120c516838913956e6f86347b305fe29506e2b491Jiho Chang    g2d_clip clip;
22220c516838913956e6f86347b305fe29506e2b491Jiho Chang    g2d_flag flag;
22320c516838913956e6f86347b305fe29506e2b491Jiho Chang} g2d_params;
22420c516838913956e6f86347b305fe29506e2b491Jiho Chang
22520c516838913956e6f86347b305fe29506e2b491Jiho Changstruct g2d_dma_info {
22620c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned long addr;
22720c516838913956e6f86347b305fe29506e2b491Jiho Chang    unsigned int  size;
22820c516838913956e6f86347b305fe29506e2b491Jiho Chang};
22920c516838913956e6f86347b305fe29506e2b491Jiho Chang
23020c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct _sec_g2d_t {
23120c516838913956e6f86347b305fe29506e2b491Jiho Chang    int dev_fd;
23220c516838913956e6f86347b305fe29506e2b491Jiho Chang    g2d_params  params;
23320c516838913956e6f86347b305fe29506e2b491Jiho Chang}sec_g2d_t;
23420c516838913956e6f86347b305fe29506e2b491Jiho Chang
23520c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct __s5p_rect {
23620c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t x;
23720c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t y;
23820c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t w;
23920c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t h;
24020c516838913956e6f86347b305fe29506e2b491Jiho Chang} __s5p_rect;
24120c516838913956e6f86347b305fe29506e2b491Jiho Chang
24220c516838913956e6f86347b305fe29506e2b491Jiho Changtypedef struct __s5p_img {
24320c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t width;
24420c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t height;
24520c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t format;
24620c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t offset;
24720c516838913956e6f86347b305fe29506e2b491Jiho Chang    uint32_t base;
24820c516838913956e6f86347b305fe29506e2b491Jiho Chang    int memory_id;
24920c516838913956e6f86347b305fe29506e2b491Jiho Chang} __s5p_img;
25020c516838913956e6f86347b305fe29506e2b491Jiho Chang
25120c516838913956e6f86347b305fe29506e2b491Jiho Chang#endif /*_SEC_G2D_DRIVER_H_*/
252