1 #ifndef _RGA_DRIVER_H_
\r
2 #define _RGA_DRIVER_H_
\r
4 #include <linux/mutex.h>
\r
5 #include <linux/scatterlist.h>
\r
6 #include <linux/dma-buf.h>
9 #define RGA_BLIT_SYNC 0x5017
\r
10 #define RGA_BLIT_ASYNC 0x5018
\r
11 #define RGA_FLUSH 0x5019
\r
12 #define RGA_GET_RESULT 0x501a
\r
13 #define RGA_GET_VERSION 0x501b
\r
15 #define RGA2_BLIT_SYNC 0x6017
\r
16 #define RGA2_BLIT_ASYNC 0x6018
\r
17 #define RGA2_FLUSH 0x6019
\r
18 #define RGA2_GET_RESULT 0x601a
\r
19 #define RGA2_GET_VERSION 0x601b
\r
22 #define RGA2_REG_CTRL_LEN 0x8 /* 8 */
\r
23 #define RGA2_REG_CMD_LEN 0x20 /* 32 */
\r
24 #define RGA2_CMD_BUF_SIZE 0x700 /* 16*28*4 */
\r
26 #define RGA2_OUT_OF_RESOURCES -10
\r
27 #define RGA2_MALLOC_ERROR -11
\r
29 #define SCALE_DOWN_LARGE 1
\r
31 #define rgaIS_ERROR(status) (status < 0)
\r
32 #define rgaNO_ERROR(status) (status >= 0)
\r
33 #define rgaIS_SUCCESS(status) (status == 0)
\r
35 #define RGA_BUF_GEM_TYPE_MASK 0xC0
36 #define RGA_BUF_GEM_TYPE_DMA 0x80
37 #define RGA2_MAJOR_VERSION_MASK (0xFF000000)
38 #define RGA2_MINOR_VERSION_MASK (0x00F00000)
40 /* RGA2 process mode enum */
\r
44 color_palette_mode = 0x1,
\r
45 color_fill_mode = 0x2,
\r
46 update_palette_table_mode = 0x3,
\r
47 update_patten_buff_mode = 0x4,
\r
54 }; //bitblt_mode select
\r
58 rop_enable_mask = 0x2,
\r
59 dither_enable_mask = 0x8,
\r
60 fading_enable_mask = 0x10,
\r
61 PD_enbale_mask = 0x20,
\r
67 // Alpha Red Green Blue
\r
68 { 4, 32, {{32,24, 8, 0, 16, 8, 24,16 }}, GGL_RGBA }, // RK_FORMAT_RGBA_8888
\r
69 { 4, 24, {{ 0, 0, 8, 0, 16, 8, 24,16 }}, GGL_RGB }, // RK_FORMAT_RGBX_8888
\r
70 { 3, 24, {{ 0, 0, 8, 0, 16, 8, 24,16 }}, GGL_RGB }, // RK_FORMAT_RGB_888
\r
71 { 4, 32, {{32,24, 24,16, 16, 8, 8, 0 }}, GGL_BGRA }, // RK_FORMAT_BGRA_8888
\r
72 { 2, 16, {{ 0, 0, 16,11, 11, 5, 5, 0 }}, GGL_RGB }, // RK_FORMAT_RGB_565
\r
73 { 2, 16, {{ 1, 0, 16,11, 11, 6, 6, 1 }}, GGL_RGBA }, // RK_FORMAT_RGBA_5551
\r
74 { 2, 16, {{ 4, 0, 16,12, 12, 8, 8, 4 }}, GGL_RGBA }, // RK_FORMAT_RGBA_4444
\r
75 { 2, 16, {{ 0, 0, 5, 0 11, 5, 16,11}}, GGL_BGR }, // RK_FORMAT_BGR_565
\r
76 { 2, 16, {{ 1, 0, 6, 1, 11, 6, 16,11}}, GGL_BGRA }, // RK_FORMAT_BGRA_5551
\r
77 { 2, 16, {{ 4, 0, 8, 4, 12, 8, 16,12}}, GGL_BGRA }, // RK_FORMAT_BGRA_4444
\r
82 RGA2_FORMAT_RGBA_8888 = 0x0,
\r
83 RGA2_FORMAT_RGBX_8888 = 0x1,
\r
84 RGA2_FORMAT_RGB_888 = 0x2,
\r
85 RGA2_FORMAT_BGRA_8888 = 0x3,
\r
86 RGA2_FORMAT_BGRX_8888 = 0x4,
\r
87 RGA2_FORMAT_BGR_888 = 0x5,
\r
88 RGA2_FORMAT_RGB_565 = 0x6,
\r
89 RGA2_FORMAT_RGBA_5551 = 0x7,
\r
90 RGA2_FORMAT_RGBA_4444 = 0x8,
\r
91 RGA2_FORMAT_BGR_565 = 0x9,
\r
92 RGA2_FORMAT_BGRA_5551 = 0xa,
\r
93 RGA2_FORMAT_BGRA_4444 = 0xb,
\r
95 RGA2_FORMAT_YCbCr_422_SP = 0x10,
\r
96 RGA2_FORMAT_YCbCr_422_P = 0x11,
\r
97 RGA2_FORMAT_YCbCr_420_SP = 0x12,
\r
98 RGA2_FORMAT_YCbCr_420_P = 0x13,
\r
99 RGA2_FORMAT_YCrCb_422_SP = 0x14,
\r
100 RGA2_FORMAT_YCrCb_422_P = 0x15,
\r
101 RGA2_FORMAT_YCrCb_420_SP = 0x16,
\r
102 RGA2_FORMAT_YCrCb_420_P = 0x17,
\r
103 RGA2_FORMAT_YCbCr_420_SP_10B = 0x20,
\r
104 RGA2_FORMAT_YCrCb_420_SP_10B = 0x21,
\r
105 RGA2_FORMAT_YCbCr_422_SP_10B = 0x22,
\r
106 RGA2_FORMAT_YCrCb_422_SP_10B = 0x23,
\r
109 typedef struct mdp_img
\r
118 typedef struct mdp_img_act
\r
120 u16 width; // width
\r
121 u16 height; // height
\r
122 s16 x_off; // x offset for the vir
\r
123 s16 y_off; // y offset for the vir
\r
129 typedef struct mdp_img_vir
\r
141 typedef struct MMU_INFO
\r
143 unsigned long src0_base_addr;
\r
144 unsigned long src1_base_addr;
\r
145 unsigned long dst_base_addr;
\r
146 unsigned long els_base_addr;
\r
148 u8 src0_mmu_flag; /* [0] src0 mmu enable [1] src0_flush [2] src0_prefetch_en [3] src0_prefetch dir */
\r
149 u8 src1_mmu_flag; /* [0] src1 mmu enable [1] src1_flush [2] src1_prefetch_en [3] src1_prefetch dir */
\r
150 u8 dst_mmu_flag; /* [0] dst mmu enable [1] dst_flush [2] dst_prefetch_en [3] dst_prefetch dir */
\r
151 u8 els_mmu_flag; /* [0] els mmu enable [1] els_flush [2] els_prefetch_en [3] els_prefetch dir */
\r
162 MMU_FLUSH_DIS = 0x0,
\r
172 MMU_PRE_DIR_FORW = 0x0,
\r
173 MMU_PRE_DIR_BACK = 0x8
\r
175 typedef struct COLOR_FILL
\r
190 ALPHA_ORIGINAL = 0x0,
\r
198 R2_MASKNOTPEN = 0x0a,
\r
200 R2_MASKPENNOT = 0x50,
\r
201 R2_MERGENOTPEN = 0xaf,
\r
202 R2_MERGEPEN = 0xfa,
\r
203 R2_MERGEPENNOT = 0xf5,
\r
206 R2_NOTCOPYPEN = 0x0f,
\r
207 R2_NOTMASKPEN = 0x5f,
\r
208 R2_NOTMERGEPEN = 0x05,
\r
209 R2_NOTXORPEN = 0xa5,
\r
215 /***************************************/
\r
216 /* porting from rga.h for msg convert */
\r
217 /***************************************/
\r
219 typedef struct FADING
\r
230 unsigned char mmu_en;
\r
231 unsigned long base_addr;
\r
232 uint32_t mmu_flag; /* [0] mmu enable [1] src_flush [2] dst_flush [3] CMD_flush [4~5] page size*/
\r
235 typedef struct MMU_32
\r
237 unsigned char mmu_en;
\r
238 uint32_t base_addr;
\r
239 uint32_t mmu_flag; /* [0] mmu enable [1] src_flush [2] dst_flush [3] CMD_flush [4~5] page size*/
\r
242 typedef struct RECT
\r
244 unsigned short xmin;
\r
245 unsigned short xmax; // width - 1
\r
246 unsigned short ymin;
\r
247 unsigned short ymax; // height - 1
\r
250 typedef struct POINT
\r
257 typedef struct line_draw_t
\r
259 POINT start_point; /* LineDraw_start_point */
\r
260 POINT end_point; /* LineDraw_end_point */
\r
261 uint32_t color; /* LineDraw_color */
\r
262 uint32_t flag; /* (enum) LineDrawing mode sel */
\r
263 uint32_t line_width; /* range 1~16 */
\r
267 typedef struct rga_img_info_t
\r
269 unsigned long yrgb_addr; /* yrgb mem addr */
\r
270 unsigned long uv_addr; /* cb/cr mem addr */
\r
271 unsigned long v_addr; /* cr mem addr */
\r
272 unsigned int format; //definition by RK_FORMAT
\r
274 unsigned short act_w;
\r
275 unsigned short act_h;
\r
276 unsigned short x_offset;
\r
277 unsigned short y_offset;
\r
279 unsigned short vir_w;
\r
280 unsigned short vir_h;
\r
282 unsigned short endian_mode; //for BPP
\r
283 unsigned short alpha_swap;
\r
287 typedef struct rga_img_info_32_t
\r
289 uint32_t yrgb_addr; /* yrgb mem addr */
\r
290 uint32_t uv_addr; /* cb/cr mem addr */
\r
291 uint32_t v_addr; /* cr mem addr */
\r
292 unsigned int format; //definition by RK_FORMAT
\r
293 unsigned short act_w;
\r
294 unsigned short act_h;
\r
295 unsigned short x_offset;
\r
296 unsigned short y_offset;
\r
297 unsigned short vir_w;
\r
298 unsigned short vir_h;
\r
299 unsigned short endian_mode; //for BPP
\r
300 unsigned short alpha_swap;
\r
305 uint8_t render_mode; /* (enum) process mode sel */
\r
307 rga_img_info_t src; /* src image info */
\r
308 rga_img_info_t dst; /* dst image info */
\r
309 rga_img_info_t pat; /* patten image info */
\r
311 unsigned long rop_mask_addr; /* rop4 mask addr */
\r
312 unsigned long LUT_addr; /* LUT addr */
\r
314 RECT clip; /* dst clip window default value is dst_vir */
\r
315 /* value from [0, w-1] / [0, h-1]*/
\r
317 int32_t sina; /* dst angle default value 0 16.16 scan from table */
\r
318 int32_t cosa; /* dst angle default value 0 16.16 scan from table */
\r
320 uint16_t alpha_rop_flag; /* alpha rop process flag */
\r
321 /* ([0] = 1 alpha_rop_enable) */
\r
322 /* ([1] = 1 rop enable) */
\r
323 /* ([2] = 1 fading_enable) */
\r
324 /* ([3] = 1 PD_enable) */
\r
325 /* ([4] = 1 alpha cal_mode_sel) */
\r
326 /* ([5] = 1 dither_enable) */
\r
327 /* ([6] = 1 gradient fill mode sel) */
\r
328 /* ([7] = 1 AA_enable) */
\r
330 uint8_t scale_mode; /* 0 nearst / 1 bilnear / 2 bicubic */
\r
332 uint32_t color_key_max; /* color key max */
\r
333 uint32_t color_key_min; /* color key min */
\r
335 uint32_t fg_color; /* foreground color */
\r
336 uint32_t bg_color; /* background color */
\r
338 COLOR_FILL gr_color; /* color fill use gradient */
\r
340 line_draw_t line_draw_info;
\r
344 uint8_t PD_mode; /* porter duff alpha mode sel */
\r
346 uint8_t alpha_global_value; /* global alpha value */
\r
348 uint16_t rop_code; /* rop2/3/4 code scan from rop code table*/
\r
350 uint8_t bsfilter_flag; /* [2] 0 blur 1 sharp / [1:0] filter_type*/
\r
352 uint8_t palette_mode; /* (enum) color palatte 0/1bpp, 1/2bpp 2/4bpp 3/8bpp*/
\r
354 uint8_t yuv2rgb_mode; /* (enum) BT.601 MPEG / BT.601 JPEG / BT.709 */
\r
356 uint8_t endian_mode; /* 0/big endian 1/little endian*/
\r
358 uint8_t rotate_mode; /* (enum) rotate mode */
\r
359 /* 0x0, no rotate */
\r
361 /* 0x2, x_mirror */
\r
362 /* 0x3, y_mirror */
\r
364 uint8_t color_fill_mode; /* 0 solid color / 1 patten color */
\r
366 MMU mmu_info; /* mmu information */
\r
368 uint8_t alpha_rop_mode; /* ([0~1] alpha mode) */
\r
369 /* ([2~3] rop mode) */
\r
370 /* ([4] zero mode en) */
\r
371 /* ([5] dst alpha mode) */
\r
372 /* ([6] alpha output mode sel) 0 src / 1 dst*/
\r
374 uint8_t src_trans_mode;
\r
378 uint8_t render_mode; /* (enum) process mode sel */
\r
379 rga_img_info_32_t src; /* src image info */
\r
380 rga_img_info_32_t dst; /* dst image info */
\r
381 rga_img_info_32_t pat; /* patten image info */
\r
382 uint32_t rop_mask_addr; /* rop4 mask addr */
\r
383 uint32_t LUT_addr; /* LUT addr */
\r
384 RECT clip; /* dst clip window default value is dst_vir */
\r
385 /* value from [0, w-1] / [0, h-1]*/
\r
386 int32_t sina; /* dst angle default value 0 16.16 scan from table */
\r
387 int32_t cosa; /* dst angle default value 0 16.16 scan from table */
\r
388 uint16_t alpha_rop_flag; /* alpha rop process flag */
\r
389 /* ([0] = 1 alpha_rop_enable) */
\r
390 /* ([1] = 1 rop enable) */
\r
391 /* ([2] = 1 fading_enable) */
\r
392 /* ([3] = 1 PD_enable) */
\r
393 /* ([4] = 1 alpha cal_mode_sel) */
\r
394 /* ([5] = 1 dither_enable) */
\r
395 /* ([6] = 1 gradient fill mode sel) */
\r
396 /* ([7] = 1 AA_enable) */
\r
397 uint8_t scale_mode; /* 0 nearst / 1 bilnear / 2 bicubic */
\r
398 uint32_t color_key_max; /* color key max */
\r
399 uint32_t color_key_min; /* color key min */
\r
400 uint32_t fg_color; /* foreground color */
\r
401 uint32_t bg_color; /* background color */
\r
402 COLOR_FILL gr_color; /* color fill use gradient */
\r
403 line_draw_t line_draw_info;
\r
405 uint8_t PD_mode; /* porter duff alpha mode sel */
\r
406 uint8_t alpha_global_value; /* global alpha value */
\r
407 uint16_t rop_code; /* rop2/3/4 code scan from rop code table*/
\r
408 uint8_t bsfilter_flag; /* [2] 0 blur 1 sharp / [1:0] filter_type*/
\r
409 uint8_t palette_mode; /* (enum) color palatte 0/1bpp, 1/2bpp 2/4bpp 3/8bpp*/
\r
410 uint8_t yuv2rgb_mode; /* (enum) BT.601 MPEG / BT.601 JPEG / BT.709 */
\r
411 uint8_t endian_mode; /* 0/big endian 1/little endian*/
\r
412 uint8_t rotate_mode; /* (enum) rotate mode */
\r
413 /* 0x0, no rotate */
\r
415 /* 0x2, x_mirror */
\r
416 /* 0x3, y_mirror */
\r
417 uint8_t color_fill_mode; /* 0 solid color / 1 patten color */
\r
418 MMU_32 mmu_info; /* mmu information */
\r
419 uint8_t alpha_rop_mode; /* ([0~1] alpha mode) */
\r
420 /* ([2~3] rop mode) */
\r
421 /* ([4] zero mode en) */
\r
422 /* ([5] dst alpha mode) */
\r
423 /* ([6] alpha output mode sel) 0 src / 1 dst*/
\r
424 uint8_t src_trans_mode;
\r
431 u8 render_mode; /* (enum) process mode sel */
\r
433 rga_img_info_t src; // src active window
\r
434 rga_img_info_t src1; // src1 active window
\r
435 rga_img_info_t dst; // dst active window
\r
436 rga_img_info_t pat; // patten active window
\r
438 unsigned long rop_mask_addr; // rop4 mask addr
\r
439 unsigned long LUT_addr; // LUT addr
\r
441 u32 rop_mask_stride;
\r
443 u8 bitblt_mode; /* 0: SRC + DST => DST */
\r
444 /* 1: SRC + SRC1 => DST */
\r
446 u8 rotate_mode; /* [1:0] */
\r
448 /* 90 degree 0x1 */
\r
449 /* 180 degree 0x2 */
\r
450 /* 270 degree 0x3 */
\r
455 /* x_mirror + y_mirror 0x3 */
\r
457 u16 alpha_rop_flag; /* alpha rop process flag */
\r
458 /* ([0] = 1 alpha_rop_enable) */
\r
459 /* ([1] = 1 rop enable) */
\r
460 /* ([2] = 1 fading_enable) */
\r
461 /* ([3] = 1 alpha cal_mode_sel) */
\r
462 /* ([4] = 1 src_dither_up_enable) */
\r
463 /* ([5] = 1 dst_dither_up_enable) */
\r
464 /* ([6] = 1 dither_down_enable) */
\r
465 /* ([7] = 1 gradient fill mode sel) */
\r
468 u16 alpha_mode_0; /* [0] SrcAlphaMode0 */
\r
469 /* [2:1] SrcGlobalAlphaMode0 */
\r
470 /* [3] SrcAlphaSelectMode0 */
\r
471 /* [6:4] SrcFactorMode0 */
\r
472 /* [7] SrcColorMode */
\r
474 /* [8] DstAlphaMode0 */
\r
475 /* [10:9] DstGlobalAlphaMode0 */
\r
476 /* [11] DstAlphaSelectMode0 */
\r
477 /* [14:12] DstFactorMode0 */
\r
478 /* [15] DstColorMode0 */
\r
480 u16 alpha_mode_1; /* [0] SrcAlphaMode1 */
\r
481 /* [2:1] SrcGlobalAlphaMode1 */
\r
482 /* [3] SrcAlphaSelectMode1 */
\r
483 /* [6:4] SrcFactorMode1 */
\r
485 /* [8] DstAlphaMode1 */
\r
486 /* [10:9] DstGlobalAlphaMode1 */
\r
487 /* [11] DstAlphaSelectMode1 */
\r
488 /* [14:12] DstFactorMode1 */
\r
490 u8 scale_bicu_mode; /* 0 1 2 3 */
\r
492 u32 color_key_max; /* color key max */
\r
493 u32 color_key_min; /* color key min */
\r
495 u32 fg_color; /* foreground color */
\r
496 u32 bg_color; /* background color */
\r
498 u8 color_fill_mode;
\r
499 COLOR_FILL gr_color; /* color fill use gradient */
\r
501 u8 fading_alpha_value; /* Fading value */
\r
506 u8 src_a_global_val; /* src global alpha value */
\r
507 u8 dst_a_global_val; /* dst global alpha value */
\r
511 u16 rop_code; /* rop2/3/4 code */
\r
513 u8 palette_mode; /* (enum) color palatte 0/1bpp, 1/2bpp 2/4bpp 3/8bpp*/
\r
515 u8 yuv2rgb_mode; /* (enum) BT.601 MPEG / BT.601 JPEG / BT.709 */
\r
517 u8 endian_mode; /* 0/little endian 1/big endian */
\r
519 u8 CMD_fin_int_enable;
\r
521 MMU_INFO mmu_info; /* mmu infomation */
\r
532 struct sg_table *sg_src0;
533 struct sg_table *sg_src1;
534 struct sg_table *sg_dst;
535 struct sg_table *sg_els;
536 struct dma_buf_attachment *attach_src0;
537 struct dma_buf_attachment *attach_src1;
538 struct dma_buf_attachment *attach_dst;
541 struct rga2_mmu_buf_t {
\r
547 unsigned int *buf_virtual;
\r
549 struct page **pages;
\r
554 BB_ROTATE_OFF = 0x0, /* no rotate */
\r
555 BB_ROTATE_90 = 0x1, /* rotate 90 */
\r
556 BB_ROTATE_180 = 0x2, /* rotate 180 */
\r
557 BB_ROTATE_270 = 0x3, /* rotate 270 */
\r
562 BB_MIRROR_OFF = (0x0 << 4), /* no mirror */
\r
563 BB_MIRROR_X = (0x1 << 4), /* x mirror */
\r
564 BB_MIRROR_Y = (0x2 << 4), /* y mirror */
\r
565 BB_MIRROR_XY = (0x3 << 4), /* xy mirror */
\r
570 BB_COPY_USE_TILE = (0x1 << 6), /* bitblt mode copy but use Tile mode */
\r
576 BT_601_RANGE0 = 0x1,
\r
577 BT_601_RANGE1 = 0x2,
\r
578 BT_709_RANGE0 = 0x3,
\r
579 }; /*yuv2rgb_mode*/
\r
583 BPP1 = 0x0, /* BPP1 */
\r
584 BPP2 = 0x1, /* BPP2 */
\r
585 BPP4 = 0x2, /* BPP4 */
\r
586 BPP8 = 0x3 /* BPP8 */
\r
587 }; /*palette_mode*/
\r
591 SOLID_COLOR = 0x0, //color fill mode; ROP4: SOLID_rop4_mask_addr COLOR
\r
592 PATTERN_COLOR = 0x1 //pattern_fill_mode;ROP4:PATTERN_COLOR
\r
593 }; /*color fill mode*/
\r
597 COLOR_FILL_CLIP = 0x0,
\r
598 COLOR_FILL_NOT_CLIP = 0x1
\r
607 }; /*bicubic coefficient*/
\r
619 LITTLE_ENDIAN = 0x1
\r
624 MMU_TABLE_4KB = 0x0,
\r
625 MMU_TABLE_64KB = 0x1,
\r
626 }; /*MMU table size*/
\r
634 }; /*dither down mode*/
\r
639 * struct for process session which connect to rga
\r
641 * @author ZhangShengqin (2012-2-15)
\r
643 typedef struct rga2_session {
\r
644 /* a linked list of data so we can access them for debugging */
\r
645 struct list_head list_session;
\r
646 /* a linked list of register data waiting for process */
\r
647 struct list_head waiting;
\r
648 /* a linked list of register data in processing */
\r
649 struct list_head running;
\r
650 /* all coommand this thread done */
\r
652 wait_queue_head_t wait;
\r
654 atomic_t task_running;
\r
659 rga2_session *session;
660 struct list_head session_link;
661 struct list_head status_link;
663 uint32_t cmd_reg[32];
668 struct sg_table *sg_src0;
669 struct sg_table *sg_src1;
670 struct sg_table *sg_dst;
672 struct dma_buf_attachment *attach_src0;
673 struct dma_buf_attachment *attach_src1;
674 struct dma_buf_attachment *attach_dst;
677 struct rga2_service_info {
\r
679 struct timer_list timer; /* timer for power off */
\r
680 struct list_head waiting; /* link to link_reg in struct vpu_reg */
\r
681 struct list_head running; /* link to link_reg in struct vpu_reg */
\r
682 struct list_head done; /* link to link_reg in struct vpu_reg */
\r
683 struct list_head session; /* link to list_session in struct vpu_session */
\r
684 atomic_t total_running;
\r
686 struct rga2_reg *reg;
\r
688 uint32_t cmd_buff[32*8];/* cmd_buff for rga */
\r
689 uint32_t *pre_scale_buf;
\r
690 atomic_t int_disable; /* 0 int enable 1 int disable */
\r
692 atomic_t src_format_swt;
\r
693 int last_prc_src_format;
\r
694 atomic_t rga_working;
\r
698 //struct rga_req req[10];
\r
700 struct mutex mutex; // mutex
\r
703 #define RGA2_TEST_CASE 0
\r
704 #define RGA2_TEST 0
\r
705 #define RGA2_TEST_MSG 0
\r
706 #define RGA2_TEST_TIME 0
\r
708 //General Registers
\r
709 #define RGA2_SYS_CTRL 0x000
\r
710 #define RGA2_CMD_CTRL 0x004
\r
711 #define RGA2_CMD_BASE 0x008
\r
712 #define RGA2_STATUS 0x00c
\r
713 #define RGA2_INT 0x010
\r
714 #define RGA2_MMU_CTRL0 0x018
\r
715 #define RGA2_MMU_CMD_BASE 0x01c
\r
717 //Command code start
\r
718 #define RGA2_MODE_CTRL 0x100
\r
719 #define RGA_BLIT_COMPLETE_EVENT 1
\r
721 #endif /*_RK29_IPP_DRIVER_H_*/
\r