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#ifndef __DAL_LOGGER_TYPES_H__
27#define __DAL_LOGGER_TYPES_H__
28
29#include "os_types.h"
30
31#define MAX_NAME_LEN 32
32#define DC_LOG_ERROR(a, ...) dm_logger_write(DC_LOGGER, LOG_ERROR, a, ## __VA_ARGS__)
33#define DC_LOG_WARNING(a, ...) dm_logger_write(DC_LOGGER, LOG_WARNING, a, ## __VA_ARGS__)
34#define DC_LOG_DEBUG(a, ...) dm_logger_write(DC_LOGGER, LOG_DEBUG, a, ## __VA_ARGS__)
35#define DC_LOG_DC(a, ...) dm_logger_write(DC_LOGGER, LOG_DC, a, ## __VA_ARGS__)
36#define DC_LOG_DTN(a, ...) dm_logger_write(DC_LOGGER, LOG_DTN, a, ## __VA_ARGS__)
37#define DC_LOG_SURFACE(a, ...) dm_logger_write(DC_LOGGER, LOG_SURFACE, a, ## __VA_ARGS__)
38#define DC_LOG_HW_HOTPLUG(a, ...) dm_logger_write(DC_LOGGER, LOG_HW_HOTPLUG, a, ## __VA_ARGS__)
39#define DC_LOG_HW_LINK_TRAINING(a, ...) dm_logger_write(DC_LOGGER, LOG_HW_LINK_TRAINING, a, ## __VA_ARGS__)
40#define DC_LOG_HW_SET_MODE(a, ...) dm_logger_write(DC_LOGGER, LOG_HW_SET_MODE, a, ## __VA_ARGS__)
41#define DC_LOG_HW_RESUME_S3(a, ...) dm_logger_write(DC_LOGGER, LOG_HW_RESUME_S3, a, ## __VA_ARGS__)
42#define DC_LOG_HW_AUDIO(a, ...) dm_logger_write(DC_LOGGER, LOG_HW_AUDIO, a, ## __VA_ARGS__)
43#define DC_LOG_HW_HPD_IRQ(a, ...) dm_logger_write(DC_LOGGER, LOG_HW_HPD_IRQ, a, ## __VA_ARGS__)
44#define DC_LOG_MST(a, ...) dm_logger_write(DC_LOGGER, LOG_MST, a, ## __VA_ARGS__)
45#define DC_LOG_SCALER(a, ...) dm_logger_write(DC_LOGGER, LOG_SCALER, a, ## __VA_ARGS__)
46#define DC_LOG_BIOS(a, ...) dm_logger_write(DC_LOGGER, LOG_BIOS, a, ## __VA_ARGS__)
47#define DC_LOG_BANDWIDTH_CALCS(a, ...) dm_logger_write(DC_LOGGER, LOG_BANDWIDTH_CALCS, a, ## __VA_ARGS__)
48#define DC_LOG_BANDWIDTH_VALIDATION(a, ...) dm_logger_write(DC_LOGGER, LOG_BANDWIDTH_VALIDATION, a, ## __VA_ARGS__)
49#define DC_LOG_I2C_AUX(a, ...) dm_logger_write(DC_LOGGER, LOG_I2C_AUX, a, ## __VA_ARGS__)
50#define DC_LOG_SYNC(a, ...) dm_logger_write(DC_LOGGER, LOG_SYNC, a, ## __VA_ARGS__)
51#define DC_LOG_BACKLIGHT(a, ...) dm_logger_write(DC_LOGGER, LOG_BACKLIGHT, a, ## __VA_ARGS__)
52#define DC_LOG_FEATURE_OVERRIDE(a, ...) dm_logger_write(DC_LOGGER, LOG_FEATURE_OVERRIDE, a, ## __VA_ARGS__)
53#define DC_LOG_DETECTION_EDID_PARSER(a, ...) dm_logger_write(DC_LOGGER, LOG_DETECTION_EDID_PARSER, a, ## __VA_ARGS__)
54#define DC_LOG_DETECTION_DP_CAPS(a, ...) dm_logger_write(DC_LOGGER, LOG_DETECTION_DP_CAPS, a, ## __VA_ARGS__)
55#define DC_LOG_RESOURCE(a, ...) dm_logger_write(DC_LOGGER, LOG_RESOURCE, a, ## __VA_ARGS__)
56#define DC_LOG_DML(a, ...) dm_logger_write(DC_LOGGER, LOG_DML, a, ## __VA_ARGS__)
57#define DC_LOG_EVENT_MODE_SET(a, ...) dm_logger_write(DC_LOGGER, LOG_EVENT_MODE_SET, a, ## __VA_ARGS__)
58#define DC_LOG_EVENT_DETECTION(a, ...) dm_logger_write(DC_LOGGER, LOG_EVENT_DETECTION, a, ## __VA_ARGS__)
59#define DC_LOG_EVENT_LINK_TRAINING(a, ...) dm_logger_write(DC_LOGGER, LOG_EVENT_LINK_TRAINING, a, ## __VA_ARGS__)
60#define DC_LOG_EVENT_LINK_LOSS(a, ...) dm_logger_write(DC_LOGGER, LOG_EVENT_LINK_LOSS, a, ## __VA_ARGS__)
61#define DC_LOG_EVENT_UNDERFLOW(a, ...) dm_logger_write(DC_LOGGER, LOG_EVENT_UNDERFLOW, a, ## __VA_ARGS__)
62#define DC_LOG_IF_TRACE(a, ...) dm_logger_write(DC_LOGGER, LOG_IF_TRACE, a, ## __VA_ARGS__)
63#define DC_LOG_PERF_TRACE(a, ...) dm_logger_write(DC_LOGGER, LOG_PERF_TRACE, a, ## __VA_ARGS__)
64
65
66struct dal_logger;
67
68enum dc_log_type {
69 LOG_ERROR = 0,
70 LOG_WARNING,
71 LOG_DEBUG,
72 LOG_DC,
73 LOG_DTN,
74 LOG_SURFACE,
75 LOG_HW_HOTPLUG,
76 LOG_HW_LINK_TRAINING,
77 LOG_HW_SET_MODE,
78 LOG_HW_RESUME_S3,
79 LOG_HW_AUDIO,
80 LOG_HW_HPD_IRQ,
81 LOG_MST,
82 LOG_SCALER,
83 LOG_BIOS,
84 LOG_BANDWIDTH_CALCS,
85 LOG_BANDWIDTH_VALIDATION,
86 LOG_I2C_AUX,
87 LOG_SYNC,
88 LOG_BACKLIGHT,
89 LOG_FEATURE_OVERRIDE,
90 LOG_DETECTION_EDID_PARSER,
91 LOG_DETECTION_DP_CAPS,
92 LOG_RESOURCE,
93 LOG_DML,
94 LOG_EVENT_MODE_SET,
95 LOG_EVENT_DETECTION,
96 LOG_EVENT_LINK_TRAINING,
97 LOG_EVENT_LINK_LOSS,
98 LOG_EVENT_UNDERFLOW,
99 LOG_IF_TRACE,
100 LOG_PERF_TRACE,
101 LOG_PROFILING,
102
103 LOG_SECTION_TOTAL_COUNT
104};
105
106#define DC_MIN_LOG_MASK ((1 << LOG_ERROR) | \
107 (1 << LOG_DETECTION_EDID_PARSER))
108
109#define DC_DEFAULT_LOG_MASK ((1 << LOG_ERROR) | \
110 (1 << LOG_WARNING) | \
111 (1 << LOG_EVENT_MODE_SET) | \
112 (1 << LOG_EVENT_DETECTION) | \
113 (1 << LOG_EVENT_LINK_TRAINING) | \
114 (1 << LOG_EVENT_LINK_LOSS) | \
115 (1 << LOG_EVENT_UNDERFLOW) | \
116 (1 << LOG_RESOURCE) | \
117 (1 << LOG_FEATURE_OVERRIDE) | \
118 (1 << LOG_DETECTION_EDID_PARSER) | \
119 (1 << LOG_DC) | \
120 (1 << LOG_HW_HOTPLUG) | \
121 (1 << LOG_HW_SET_MODE) | \
122 (1 << LOG_HW_RESUME_S3) | \
123 (1 << LOG_HW_HPD_IRQ) | \
124 (1 << LOG_SYNC) | \
125 (1 << LOG_BANDWIDTH_VALIDATION) | \
126 (1 << LOG_MST) | \
127 (1 << LOG_DETECTION_DP_CAPS) | \
128 (1 << LOG_BACKLIGHT)) | \
129 (1 << LOG_I2C_AUX) | \
130 (1 << LOG_IF_TRACE) | \
131 (1 << LOG_DTN)
132
133
134
135
136
137
138
139
140
141union logger_flags {
142 struct {
143 uint32_t ENABLE_CONSOLE:1;
144 uint32_t ENABLE_BUFFER:1;
145 uint32_t RESERVED:30;
146 } bits;
147 uint32_t value;
148};
149
150struct log_entry {
151 struct dal_logger *logger;
152 enum dc_log_type type;
153
154 char *buf;
155 uint32_t buf_offset;
156 uint32_t max_buf_bytes;
157};
158
159
160
161
162struct dc_log_type_info {
163 enum dc_log_type type;
164 char name[MAX_NAME_LEN];
165};
166
167
168
169#define DAL_LOGGER_BUFFER_MAX_SIZE 2048
170
171
172
173
174#define LOG_MAX_LINE_SIZE 896
175
176struct dal_logger {
177
178
179
180
181
182 uint32_t buffer_read_offset;
183
184
185
186
187 uint32_t buffer_write_offset;
188
189 uint32_t open_count;
190
191 char *log_buffer;
192 uint32_t log_buffer_size;
193
194 uint32_t mask;
195
196 union logger_flags flags;
197 struct dc_context *ctx;
198};
199
200#endif
201