aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/ext_disp/mt6735/external_display.h
blob: 179a18c75db97f5ae708047a0fd11f5335b31696 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#ifndef _EXTD_DDP_H_
#define _EXTD_DDP_H_

#include "ddp_hal.h"
#include "ddp_manager.h"

#define ALIGN_TO(x, n)  \
    (((x) + ((n) - 1)) & ~((n) - 1))


typedef enum
{
	EXTD_DIRECT_LINK_MODE,
	EXTD_DECOUPLE_MODE,
	EXTD_SINGLE_LAYER_MODE,
	EXTD_RDMA_DPI_MODE
}EXT_DISP_PATH_MODE;

typedef enum
{	
   EXT_DISP_STATUS_OK = 0,

   EXT_DISP_STATUS_NOT_IMPLEMENTED,
   EXT_DISP_STATUS_ALREADY_SET,
   EXT_DISP_STATUS_ERROR
} EXT_DISP_STATUS;

typedef enum
{
	EXTD_DEINIT = 0,
	EXTD_INIT,
	EXTD_RESUME,
	EXTD_SUSPEND
}EXTD_POWER_STATE;

typedef struct
{
	unsigned int layer;
	unsigned int layer_en;
	unsigned int buff_source;
	unsigned int fmt;
	unsigned long addr;  
	unsigned long addr_sub_u;
	unsigned long addr_sub_v;
	unsigned long vaddr;
	unsigned int src_x;
	unsigned int src_y;
	unsigned int src_w;
	unsigned int src_h;
	unsigned int src_pitch;
	unsigned int dst_x;
	unsigned int dst_y;
	unsigned int dst_w;
	unsigned int dst_h;                  // clip region
	unsigned int keyEn;
	unsigned int key; 
	unsigned int aen; 
	unsigned char alpha;  
	
    unsigned int  sur_aen;
	unsigned int  src_alpha;
	unsigned int  dst_alpha;

	unsigned int isTdshp;
	unsigned int isDirty;

	unsigned int buff_idx;
	unsigned int identity;
	unsigned int connected_type;
	unsigned int security;
	unsigned int dirty;
}ext_disp_input_config;


int ext_disp_init(char *lcm_name,  unsigned int session);
int ext_disp_deinit(char *lcm_name);
int ext_disp_suspend(void);
int ext_disp_resume(void);
EXT_DISP_PATH_MODE ext_disp_path_get_mode(void);
void ext_disp_path_set_mode(EXT_DISP_PATH_MODE mode);

unsigned int ext_disp_get_sess_id(void);

int ext_disp_get_width(void);
int ext_disp_get_height(void);
int ext_disp_get_bpp(void);
int ext_disp_get_pages(void);

int ext_disp_is_alive(void);
int ext_disp_is_sleepd(void);
int ext_disp_wait_for_vsync(void *config);
int ext_disp_config_input(ext_disp_input_config* input);
int ext_disp_config_input_multiple(ext_disp_input_config* input, int idx);
int ext_disp_trigger(int blocking, void *callback, unsigned int userdata);

int ext_disp_get_info(void *info);
int ext_disp_is_video_mode(void);
CMDQ_SWITCH ext_disp_cmdq_enabled(void);
int ext_disp_switch_cmdq_cpu(CMDQ_SWITCH use_cmdq);
int ext_disp_diagnose(void);
void extd_get_curr_addr(unsigned long *input_curr_addr, int module);
int ext_disp_factory_test(int mode, void *config);
int extd_get_handle(disp_path_handle *dp_handle, cmdqRecHandle *pHandle);

#endif