lcd_catcher_log.h
10.5 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
#ifndef __LCD_CATCHER_LOG_H__
#define __LCD_CATCHER_LOG_H__
#include "kal_trace.h"
#include "drv_trc.h"
#include "drv_features_display.h"
#if defined(__MTK_TARGET__)
///Bin: enable this to profiling LCD performance
#if !defined(__LOW_COST_SUPPORT_COMMON__) && !defined(__LOW_COST_SUPPORT_ULC__)
#define DDV2_PERFORMANCE_PROFILING_SUPPORT
#endif
#endif
typedef enum
{
LAYER0 = 0 ,
LAYER1 ,
LAYER2 ,
LAYER3 ,
LAYER4 ,
LAYER5 ,
LAYER_TOTAL_NUMBER
}PROFILING_LCD_LAYER_ID_ENUM;
typedef enum
{
MAIN_LCM = 0 ,
SUB_LCM ,
SCREEN_TOTAL_NUMBER
}PROFILING_LCD_SCREEN_ID_ENUM;
typedef enum
{
/* definition of LCM data outptu format */
P_LCM_8BIT_8_BPP_RGB332_1 = 0x00, /* RRRGGBB */
P_LCM_8BIT_8_BPP_RGB332_2 = 0x01, /* BBGGGRR */
P_LCM_8BIT_12_BPP_RGB444_1 = 0x08, /* RRRRGGGG, BBBBRRRR, GGGGBBBB */
P_LCM_8BIT_12_BPP_RGB444_2 = 0x0B, /* GGGGRRRR, RRRRBBBB, BBBBGGGG */
P_LCM_8BIT_16_BPP_RGB565_1 = 0x10, /* RRRRRGGG, GGGBBBBB */
P_LCM_8BIT_16_BPP_RGB565_2 = 0x12, /* GGGBBBBB, RRRRRGGG */
P_LCM_8BIT_16_BPP_BGR565_1 = 0x11, /* BBBBBGGG, GGGRRRRR */
P_LCM_8BIT_16_BPP_BGR565_2 = 0x13, /* GGGRRRRR, BBBBBGGG */
P_LCM_8BIT_18_BPP_RGB666_1 = 0x18, /* RRRRRRXX, GGGGGGXX, BBBBBBXX */
P_LCM_8BIT_18_BPP_RGB666_2 = 0x1C, /* XXRRRRRR, XXGGGGGG, XXBBBBBB */
P_LCM_8BIT_24_BPP_RGB888_1 = 0x20, /* RRRRRRRR, GGGGGGGG, BBBBBBBB */
P_LCM_16BIT_8_BPP_RGB332_1 = 0x40, /* RRRGGGBBRRRGGGBB, MSB first*/
P_LCM_16BIT_8_BPP_RGB332_2 = 0x42, /* RRRGGGBBRRRGGGBB, LSB first*/
P_LCM_16BIT_8_BPP_RGB332_3 = 0x41, /* BBGGGRRRBBGGGRRR, MSB first */
P_LCM_16BIT_8_BPP_RGB332_4 = 0x43, /* BBGGGRRRBBGGGRRR, LSB first */
P_LCM_16BIT_12_BPP_RGB444_1= 0x4C, /* XXXXRRRRGGGGBBBB */
P_LCM_16BIT_12_BPP_RGB444_2= 0x4D, /* XXXXBBBBGGGGRRRR */
P_LCM_16BIT_12_BPP_RGB444_3= 0x48, /* RRRRGGGGBBBBXXXX */
P_LCM_16BIT_12_BPP_RGB444_4= 0x49, /* BBBBGGGGRRRRXXXX */
P_LCM_16BIT_16_BPP_RGB565_1= 0x50, /* RRRRRGGGGGGBBBBB */
P_LCM_16BIT_16_BPP_RGB565_2= 0x52, /* GGGBBBBBRRRRRGGG */
P_LCM_16BIT_16_BPP_BGR565_1= 0x51, /* BBBBBGGGGGGRRRRR */
P_LCM_16BIT_16_BPP_BGR565_2= 0x53, /* GGGRRRRRBBBBBGGG */
P_LCM_16BIT_18_BPP_RGB666_1= 0x5C, /* XXXXRRRRRRGGGGGG, XXXXBBBBBBRRRRRR, XXXXGGGGGGBBBBBB */
P_LCM_16BIT_18_BPP_RGB666_2= 0x5F, /* XXXXGGGGGGRRRRRR, XXXXRRRRRRBBBBBB, XXXXBBBBBBGGGGGG */
P_LCM_16BIT_18_BPP_RGB666_3= 0x58, /* RRRRRRGGGGGGXXXX, BBBBBBRRRRRRXXXX, GGGGGGBBBBBBXXXX */
P_LCM_16BIT_18_BPP_RGB666_4= 0x5B, /* GGGGGGRRRRRRXXXX, RRRRRRBBBBBBXXXX, BBBBBBGGGGGGXXXX */
P_LCM_16BIT_24_BPP_RGB888_1= 0x60, /* RRRRRRRRGGGGGGGG, BBBBBBBBRRRRRRRR, GGGGGGGGBBBBBBBB */
P_LCM_16BIT_24_BPP_RGB888_2= 0x63, /* GGGGGGGGRRRRRRRR, RRRRRRRRBBBBBBBB, BBBBBBBBGGGGGGGG */
P_LCM_9BIT_8_BPP_RGB332_1 = 0x80, /* RRRGGGBBX */
P_LCM_9BIT_8_BPP_RGB332_2 = 0x81, /* BBGGGRRRX */
P_LCM_9BIT_12_BPP_RGB444_1 = 0x88, /* RRRRGGGGX, BBBBRRRRX, GGGGBBBBX */
P_LCM_9BIT_12_BPP_RGB444_2 = 0x8B, /* GGGGRRRRX, RRRRBBBBX, BBBBGGGGX */
P_LCM_9BIT_16_BPP_RGB565_1 = 0x90, /* RRRRRGGGX, GGGBBBBBX */
P_LCM_9BIT_16_BPP_RGB565_2 = 0x93, /* GGGRRRRRX, BBBBBGGGX */
P_LCM_9BIT_18_BPP_RGB666_1 = 0x98, /* RRRRRRGGG, GGGBBBBBB */
P_LCM_9BIT_18_BPP_RGB666_2 = 0x9B, /* GGGRRRRRR, BBBBBBGGG */
P_LCM_9BIT_24_BPP_RGB888_1 = 0xA0, /* RRRRRRRRX, GGGGGGGGX, BBBBBBBBX */
P_LCM_18BIT_8_BPP_RGB332_1 = 0xC0, /* RRRGGGBBRRRGGGBBXX, MSB first */
P_LCM_18BIT_8_BPP_RGB332_2 = 0xC2, /* RRRGGGBBRRRGGGBBXX, LSB first */
P_LCM_18BIT_8_BPP_RGB332_3 = 0xC1, /* BBGGGRRRBBGGGRRRXX, MSB first */
P_LCM_18BIT_8_BPP_RGB332_4 = 0xC3, /* BBGGGRRRBBGGGRRRXX, LSB first */
P_LCM_18BIT_12_BPP_RGB444_1= 0xCC, /* XXXXXXRRRRGGGGBBBB */
P_LCM_18BIT_12_BPP_RGB444_2= 0xCD, /* XXXXXXBBBBGGGGRRRR */
P_LCM_18BIT_12_BPP_RGB444_3= 0xC8, /* RRRRGGGGBBBBXXXXXX */
P_LCM_18BIT_12_BPP_RGB444_4= 0xC9, /* BBBBGGGGRRRRXXXXXX */
P_LCM_18BIT_16_BPP_RGB565_1= 0xD0, /* RRRRRGGGGGGBBBBBXX */
P_LCM_18BIT_16_BPP_RGB565_2= 0xD1, /* BBBBBGGGGGGRRRRRXX */
P_LCM_18BIT_18_BPP_RGB666_1= 0xD8, /* RRRRRRGGGGGGBBBBBB */
P_LCM_18BIT_18_BPP_RGB666_2= 0xD9, /* BBBBBBGGGGGGRRRRRR */
P_LCM_18BIT_24_BPP_RGB888_1= 0xE0, /* RRRRRRRRGGGGGGGGXX, BBBBBBBBRRRRRRRRXX, GGGGGGGGBBBBBBBBXX */
P_LCM_18BIT_24_BPP_RGB888_2= 0xE3, /* GGGGGGGGRRRRRRRRXX, RRRRRRRRBBBBBBBBXX, BBBBBBBBGGGGGGGGXX */
}PROFILING_LCM_COLOR_FORMAT_ENUM;
typedef enum {
P_IMAGE_NOT_SUPPORTED = 0,
P_IMAGE_ARGB8888 = 0x8888,
P_IMAGE_XRGB8888 = 0xf888,
P_IMAGE_RGB888 = 0x888, /**< \remark <b>[MTK]</b> R in high byte, B in low byte. */
P_IMAGE_BGR888 = 0x1888, /**< <b>[MTK]</b> BGR color format. B in high byte and R in low byte. */
P_IMAGE_RGB565 = 0x565,
P_IMAGE_L32 = 0xA32,
P_IMAGE_L16 = 0xA16,
P_IMAGE_L8 = 0xA8,
P_IMAGE_L1 = 0xA1,
P_IMAGE_UYVY = 0x422, /**< <b>[MTK]</b> UYVY color format. */
P_IMAGE_ARGB_INTERNAL = 0x666 /**< OWFpixel rep */
} PROFILING_OWF_PIXEL_FORMAT;
typedef enum {
FLIP_OFF = 0,
FLIP_ON = 1
} PROFILING_FILP_BOOLEAN;
typedef enum {
DITHER_OFF = 0,
DITHER_ON = 1
} PROFILING_DITHER_BOOLEAN;
#define TRACE_DDV2_INFO TRACE_INFO
#define TRACE_DDV2_WARNING TRACE_WARNING
#define TRACE_DDV2_FUNC TRACE_FUNC
#define TRACE_DDV2_ERROR TRACE_ERROR
#define TRACE_DDV2_STATE TRACE_STATE
#define TRACE_DDV2_RENDERING TRACE_GROUP_1
#define TRACE_DDV2_CONTEXTATTRIB TRACE_GROUP_2
#define TRACE_DDV2_ELEMENTATTRIB TRACE_GROUP_3
#define TRACE_DDV2_RESOURCEALLOCATION TRACE_GROUP_4
#define TRACE_DDV2_ELEMENTINSERTION TRACE_GROUP_5
#define TRACE_DDV2_AUTOMODE TRACE_GROUP_6
#define TRACE_DDV2_HWUPDATE TRACE_GROUP_7
#define TRACE_DDV2_RESERVE1 TRACE_GROUP_8
#define TRACE_DDV2_PROFILING TRACE_GROUP_9
#define TRACE_DDV2_HW_REGISTERS TRACE_GROUP_10
#define TRACE_DDV2_DISPLAY_IO TRACE_GROUP_10
#if defined(__MTK_TARGET__) && !defined(__LOW_COST_SUPPORT_COMMON__) && !defined(__LOW_COST_SUPPORT_ULC__)
#define DDV2_CATCHERLOG_LEVEL 3 // 0: Turn off catcher log. 1: Limited log. 2: Important log. 3: Detail log.
#elif defined(__MTK_TARGET__) && (defined(__LOW_COST_SUPPORT_COMMON__) || defined(__LOW_COST_SUPPORT_ULC__))
#define DDV2_PERFORMANCE_PROFILING_SUPPORT
#define DDV2_CATCHERLOG_LEVEL 2 // 0: Turn off catcher log. 1: Limited log. 2: Important log. 3: Detail log.
#else
#define DDV2_CATCHERLOG_LEVEL 0 // 0: Turn off catcher log. 1: Limited log. 2: Important log. 3: Detail log.
#endif
#if (DDV2_CATCHERLOG_LEVEL == 0)
#define DDV2CatcherLogL1(...)
#define DDV2CatcherLogL1D0(...)
#define DDV2CatcherLogL1D1(...)
#define DDV2CatcherLogL1D2(...)
#define DDV2CatcherLogL1D4(...)
#define DDV2CatcherLogL1D8(...)
#define DDV2CatcherLogL2(...)
#define DDV2CatcherLogL2D0(...)
#define DDV2CatcherLogL2D1(...)
#define DDV2CatcherLogL2D2(...)
#define DDV2CatcherLogL2D4(...)
#define DDV2CatcherLogL2D8(...)
#define DDV2CatcherLogL3(...)
#define DDV2CatcherLogL3D0(...)
#define DDV2CatcherLogL3D1(...)
#define DDV2CatcherLogL3D2(...)
#define DDV2CatcherLogL3D4(...)
#define DDV2CatcherLogL3D8(...)
#define DDV2CatcherLogException(...)
#endif
#if (DDV2_CATCHERLOG_LEVEL == 1)
// Define log with level 1
#define DDV2CatcherLogL1 kal_trace
#define DDV2CatcherLogL1D0 drv_trace0
#define DDV2CatcherLogL1D1 drv_trace1
#define DDV2CatcherLogL1D2 drv_trace2
#define DDV2CatcherLogL1D4 drv_trace4
#define DDV2CatcherLogL1D8 drv_trace8
#define DDV2CatcherLogL2(...)
#define DDV2CatcherLogL2D0(...)
#define DDV2CatcherLogL2D1(...)
#define DDV2CatcherLogL2D2(...)
#define DDV2CatcherLogL2D4(...)
#define DDV2CatcherLogL2D8(...)
#define DDV2CatcherLogL3(...)
#define DDV2CatcherLogL3D0(...)
#define DDV2CatcherLogL3D1(...)
#define DDV2CatcherLogL3D2(...)
#define DDV2CatcherLogL3D4(...)
#define DDV2CatcherLogL3D8(...)
#define DDV2CatcherLogException(...)
#endif
#if (DDV2_CATCHERLOG_LEVEL == 2)
#define DDV2CatcherLogL1 kal_trace
#define DDV2CatcherLogL1D0 drv_trace0
#define DDV2CatcherLogL1D1 drv_trace1
#define DDV2CatcherLogL1D2 drv_trace2
#define DDV2CatcherLogL1D4 drv_trace4
#define DDV2CatcherLogL1D8 drv_trace8
#define DDV2CatcherLogL2 kal_trace
#define DDV2CatcherLogL2D0 drv_trace0
#define DDV2CatcherLogL2D1 drv_trace1
#define DDV2CatcherLogL2D2 drv_trace2
#define DDV2CatcherLogL2D4 drv_trace4
#define DDV2CatcherLogL2D8 drv_trace8
#define DDV2CatcherLogL3(...)
#define DDV2CatcherLogL3D0(...)
#define DDV2CatcherLogL3D1(...)
#define DDV2CatcherLogL3D2(...)
#define DDV2CatcherLogL3D4(...)
#define DDV2CatcherLogL3D8(...)
#define DDV2CatcherLogException(...)
#endif
#if (DDV2_CATCHERLOG_LEVEL > 2)
#define DDV2CatcherLogL1 kal_trace
#define DDV2CatcherLogL1D0 drv_trace0
#define DDV2CatcherLogL1D1 drv_trace1
#define DDV2CatcherLogL1D2 drv_trace2
#define DDV2CatcherLogL1D4 drv_trace4
#define DDV2CatcherLogL1D8 drv_trace8
#define DDV2CatcherLogL2 kal_trace
#define DDV2CatcherLogL2D0 drv_trace0
#define DDV2CatcherLogL2D1 drv_trace1
#define DDV2CatcherLogL2D2 drv_trace2
#define DDV2CatcherLogL2D4 drv_trace4
#define DDV2CatcherLogL2D8 drv_trace8
#define DDV2CatcherLogL3 kal_trace
#define DDV2CatcherLogL3D0 drv_trace0
#define DDV2CatcherLogL3D1 drv_trace1
#define DDV2CatcherLogL3D2 drv_trace2
#define DDV2CatcherLogL3D4 drv_trace4
#define DDV2CatcherLogL3D8 drv_trace8
#define DDV2CatcherLogException(...) kal_assert_trace(TRACE_DDV2_HW_REGISTERS, DDV2_TRC_REGISTER_LCD_HW_REGISTERS, ##__VA_ARGS__)
#endif
typedef enum
{
WFC_NOCALLBACK = 0,
WFC_CALLBACK = 1
} WFCDBG_CallbackResultEnum;
typedef enum
{
WFC_NOWAIT = 0,
WFC_WAIT = 1
} WFCDBG_WaitEnum;
typedef enum
{
WFC_CreateSourceFromStream = 0,
WFC_CreateSourceFromImage,
WFC_MMSetContextAttribi,
WFC_MMSetContextAttribiv,
WFC_MMSetElementAttribi,
WFC_MMSetElementAttribiv,
WFC_MMCommit
} WFCDBG_FunctionEnum;
typedef enum
{
WFC_AUTONOMOUS_OFF = 0x0,
WFC_AUTONOMOUS_TURNING_OFF = 0x1,
WFC_AUTONOMOUS_ON = 0x2,
}WFCDBG_AutonomousState;
typedef enum {
WFC_SYNC_TO_NONE = 0x7A00,
WFC_SYNC_TO_ELEMENT = 0x7A01,
WFC_SYNC_TO_VSYNC = 0x7A02,
WFC_SYNC_TO_TIMER = 0x7A03,
WFC_SYNC_FORCE_32BIT = 0x7FFFFFFF
} WFCDBG_SyncTrigger;
#endif