1 | /* |
2 | * Copyright 2012-15 Advanced Micro Devices, Inc. |
3 | * |
4 | * Permission is hereby granted, free of charge, to any person obtaining a |
5 | * copy of this software and associated documentation files (the "Software"), |
6 | * to deal in the Software without restriction, including without limitation |
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
8 | * and/or sell copies of the Software, and to permit persons to whom the |
9 | * Software is furnished to do so, subject to the following conditions: |
10 | * |
11 | * The above copyright notice and this permission notice shall be included in |
12 | * all copies or substantial portions of the Software. |
13 | * |
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR |
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
20 | * OTHER DEALINGS IN THE SOFTWARE. |
21 | * |
22 | * Authors: AMD |
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 | |
33 | #define DC_LOG_ERROR(...) DRM_ERROR(__VA_ARGS__) |
34 | #define DC_LOG_WARNING(...) DRM_WARN(__VA_ARGS__) |
35 | #define DC_LOG_DEBUG(...) DRM_DEBUG_KMS(__VA_ARGS__) |
36 | #define DC_LOG_DC(...) DRM_DEBUG_KMS(__VA_ARGS__) |
37 | #define DC_LOG_DTN(...) DRM_DEBUG_KMS(__VA_ARGS__) |
38 | #define DC_LOG_SURFACE(...) pr_debug("[SURFACE]:"__VA_ARGS__) |
39 | #define DC_LOG_HW_HOTPLUG(...) DRM_DEBUG_KMS(__VA_ARGS__) |
40 | #define DC_LOG_HW_LINK_TRAINING(...) pr_debug("[HW_LINK_TRAINING]:"__VA_ARGS__) |
41 | #define DC_LOG_HW_SET_MODE(...) DRM_DEBUG_KMS(__VA_ARGS__) |
42 | #define DC_LOG_HW_RESUME_S3(...) DRM_DEBUG_KMS(__VA_ARGS__) |
43 | #define DC_LOG_HW_AUDIO(...) pr_debug("[HW_AUDIO]:"__VA_ARGS__) |
44 | #define DC_LOG_HW_HPD_IRQ(...) DRM_DEBUG_KMS(__VA_ARGS__) |
45 | #define DC_LOG_MST(...) DRM_DEBUG_KMS(__VA_ARGS__) |
46 | #define DC_LOG_SCALER(...) pr_debug("[SCALER]:"__VA_ARGS__) |
47 | #define DC_LOG_BIOS(...) pr_debug("[BIOS]:"__VA_ARGS__) |
48 | #define DC_LOG_BANDWIDTH_CALCS(...) pr_debug("[BANDWIDTH_CALCS]:"__VA_ARGS__) |
49 | #define DC_LOG_BANDWIDTH_VALIDATION(...) DRM_DEBUG_KMS(__VA_ARGS__) |
50 | #define DC_LOG_I2C_AUX(...) DRM_DEBUG_KMS(__VA_ARGS__) |
51 | #define DC_LOG_SYNC(...) DRM_DEBUG_KMS(__VA_ARGS__) |
52 | #define DC_LOG_BACKLIGHT(...) DRM_DEBUG_KMS(__VA_ARGS__) |
53 | #define DC_LOG_FEATURE_OVERRIDE(...) DRM_DEBUG_KMS(__VA_ARGS__) |
54 | #define DC_LOG_DETECTION_EDID_PARSER(...) DRM_DEBUG_KMS(__VA_ARGS__) |
55 | #define DC_LOG_DETECTION_DP_CAPS(...) DRM_DEBUG_KMS(__VA_ARGS__) |
56 | #define DC_LOG_RESOURCE(...) DRM_DEBUG_KMS(__VA_ARGS__) |
57 | #define DC_LOG_DML(...) pr_debug("[DML]:"__VA_ARGS__) |
58 | #define DC_LOG_EVENT_MODE_SET(...) DRM_DEBUG_KMS(__VA_ARGS__) |
59 | #define DC_LOG_EVENT_DETECTION(...) DRM_DEBUG_KMS(__VA_ARGS__) |
60 | #define DC_LOG_EVENT_LINK_TRAINING(...) DRM_DEBUG_KMS(__VA_ARGS__) |
61 | #define DC_LOG_EVENT_LINK_LOSS(...) DRM_DEBUG_KMS(__VA_ARGS__) |
62 | #define DC_LOG_EVENT_UNDERFLOW(...) DRM_DEBUG_KMS(__VA_ARGS__) |
63 | #define DC_LOG_IF_TRACE(...) pr_debug("[IF_TRACE]:"__VA_ARGS__) |
64 | #define DC_LOG_PERF_TRACE(...) DRM_DEBUG_KMS(__VA_ARGS__) |
65 | #define DC_LOG_RETIMER_REDRIVER(...) DRM_DEBUG_KMS(__VA_ARGS__) |
66 | |
67 | struct dal_logger; |
68 | |
69 | struct dc_log_buffer_ctx { |
70 | char *buf; |
71 | size_t pos; |
72 | size_t size; |
73 | }; |
74 | |
75 | enum dc_log_type { |
76 | LOG_ERROR = 0, |
77 | LOG_WARNING, |
78 | LOG_DEBUG, |
79 | LOG_DC, |
80 | LOG_DTN, |
81 | LOG_SURFACE, |
82 | LOG_HW_HOTPLUG, |
83 | LOG_HW_LINK_TRAINING, |
84 | LOG_HW_SET_MODE, |
85 | LOG_HW_RESUME_S3, |
86 | LOG_HW_AUDIO, |
87 | LOG_HW_HPD_IRQ, |
88 | LOG_MST, |
89 | LOG_SCALER, |
90 | LOG_BIOS, |
91 | LOG_BANDWIDTH_CALCS, |
92 | LOG_BANDWIDTH_VALIDATION, |
93 | LOG_I2C_AUX, |
94 | LOG_SYNC, |
95 | LOG_BACKLIGHT, |
96 | LOG_FEATURE_OVERRIDE, |
97 | LOG_DETECTION_EDID_PARSER, |
98 | LOG_DETECTION_DP_CAPS, |
99 | LOG_RESOURCE, |
100 | LOG_DML, |
101 | LOG_EVENT_MODE_SET, |
102 | LOG_EVENT_DETECTION, |
103 | LOG_EVENT_LINK_TRAINING, |
104 | LOG_EVENT_LINK_LOSS, |
105 | LOG_EVENT_UNDERFLOW, |
106 | LOG_IF_TRACE, |
107 | LOG_PERF_TRACE, |
108 | LOG_DISPLAYSTATS, |
109 | LOG_HDMI_RETIMER_REDRIVER, |
110 | LOG_SECTION_TOTAL_COUNT |
111 | }; |
112 | |
113 | #define DC_MIN_LOG_MASK ((1 << LOG_ERROR) | \ |
114 | (1 << LOG_DETECTION_EDID_PARSER)) |
115 | |
116 | #define DC_DEFAULT_LOG_MASK ((1 << LOG_ERROR) | \ |
117 | (1 << LOG_WARNING) | \ |
118 | (1 << LOG_EVENT_MODE_SET) | \ |
119 | (1 << LOG_EVENT_DETECTION) | \ |
120 | (1 << LOG_EVENT_LINK_TRAINING) | \ |
121 | (1 << LOG_EVENT_LINK_LOSS) | \ |
122 | (1 << LOG_EVENT_UNDERFLOW) | \ |
123 | (1 << LOG_RESOURCE) | \ |
124 | (1 << LOG_FEATURE_OVERRIDE) | \ |
125 | (1 << LOG_DETECTION_EDID_PARSER) | \ |
126 | (1 << LOG_DC) | \ |
127 | (1 << LOG_HW_HOTPLUG) | \ |
128 | (1 << LOG_HW_SET_MODE) | \ |
129 | (1 << LOG_HW_RESUME_S3) | \ |
130 | (1 << LOG_HW_HPD_IRQ) | \ |
131 | (1 << LOG_SYNC) | \ |
132 | (1 << LOG_BANDWIDTH_VALIDATION) | \ |
133 | (1 << LOG_MST) | \ |
134 | (1 << LOG_DETECTION_DP_CAPS) | \ |
135 | (1 << LOG_BACKLIGHT)) | \ |
136 | (1 << LOG_I2C_AUX) | \ |
137 | (1 << LOG_IF_TRACE) | \ |
138 | (1 << LOG_DTN) /* | \ |
139 | (1 << LOG_DEBUG) | \ |
140 | (1 << LOG_BIOS) | \ |
141 | (1 << LOG_SURFACE) | \ |
142 | (1 << LOG_SCALER) | \ |
143 | (1 << LOG_DML) | \ |
144 | (1 << LOG_HW_LINK_TRAINING) | \ |
145 | (1 << LOG_HW_AUDIO)| \ |
146 | (1 << LOG_BANDWIDTH_CALCS)*/ |
147 | |
148 | #endif /* __DAL_LOGGER_TYPES_H__ */ |
149 | |