import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / video / mt8127 / disp_ovl_engine_dev.h
1 #ifndef __DISP_OVL_ENGINE_DEV_H__
2 #define __DISP_OVL_ENGINE_DEV_H__
3
4 #include <linux/ioctl.h>
5 #include "mtkfb.h"
6
7 #define HW_OVERLAY_COUNT (4)
8 #define RESERVED_LAYER_COUNT (2)
9 #define VIDEO_LAYER_COUNT (HW_OVERLAY_COUNT - RESERVED_LAYER_COUNT)
10
11 struct DISP_OVL_ENGINE_REGION
12 {
13 unsigned int x;
14 unsigned int y;
15 unsigned int width;
16 unsigned int height;
17 };
18
19
20
21 struct disp_ovl_engine_config_mem_out_struct
22 {
23 unsigned int enable;
24 unsigned int dirty;
25 unsigned int outFormat;
26 unsigned int dstAddr;
27 unsigned int dstPitch;
28 struct DISP_OVL_ENGINE_REGION srcROI; // ROI
29 unsigned int security;
30 int ion_fd;
31 };
32
33
34 struct disp_ovl_engine_setting
35 {
36 struct fb_overlay_layer overlay_layers[HW_OVERLAY_COUNT];
37 struct disp_ovl_engine_config_mem_out_struct mem_out;
38 int out_fence_fd;
39 };
40
41
42 enum {
43 DISP_OVL_REQUEST_FORCE_DISABLE_CABC = 0
44 };
45
46 struct disp_ovl_engine_request_struct
47 {
48 unsigned int request;
49 int value;
50 int ret;
51 };
52
53
54
55 #define DISP_OVL_ENGINE_IOCTL_MAGIC 'l'
56
57 #define DISP_OVL_ENGINE_IOCTL_GET_LAYER_INFO _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 1, DISP_LAYER_INFO)
58 #define DISP_OVL_ENGINE_IOCTL_SET_LAYER_INFO _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 2, struct fb_overlay_layer)
59 #define DISP_OVL_ENGINE_IOCTL_SET_OVERLAYED_BUF _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 3, struct disp_ovl_engine_config_mem_out_struct)
60 #define DISP_OVL_ENGINE_IOCTL_TRIGGER_OVERLAY _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 4, int)
61 #define DISP_OVL_ENGINE_IOCTL_WAIT_OVERLAY_COMPLETE _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 5, int)
62 #define DISP_OVL_ENGINE_IOCTL_SECURE_MVA_MAP _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 6, struct disp_mva_map)
63 #define DISP_OVL_ENGINE_IOCTL_SECURE_MVA_UNMAP _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 7, struct disp_mva_map)
64 #define DISP_OVL_ENGINE_IOCTL_GET_REQUEST _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 8, struct disp_ovl_engine_request_struct)
65 #define DISP_OVL_ENGINE_IOCTL_ACK_REQUEST _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 9, struct disp_ovl_engine_request_struct)
66 #define DISP_OVL_ENGINE_IOCTL_TRIGGER_OVERLAY_FENCE _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 10, struct disp_ovl_engine_setting)
67 #define DISP_OVL_ENGINE_IOCTL_GET_FENCE_FD _IOWR (DISP_OVL_ENGINE_IOCTL_MAGIC, 11, int)
68
69 #endif
70