1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #if !defined(_VISL_TRACE_VP9_H_) || defined(TRACE_HEADER_MULTI_READ) |
3 | #define _VISL_TRACE_VP9_H_ |
4 | |
5 | #include <linux/tracepoint.h> |
6 | #include "visl.h" |
7 | |
8 | #undef TRACE_SYSTEM |
9 | #define TRACE_SYSTEM visl_vp9_controls |
10 | |
11 | DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_frame_tmpl, |
12 | TP_PROTO(const struct v4l2_ctrl_vp9_frame *f), |
13 | TP_ARGS(f), |
14 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_frame, f)), |
15 | TP_fast_assign(__entry->f = *f;), |
16 | TP_printk("\nlf.ref_deltas %s\n" |
17 | "lf.mode_deltas %s\n" |
18 | "lf.level %u\n" |
19 | "lf.sharpness %u\n" |
20 | "lf.flags %s\n" |
21 | "quant.base_q_idx %u\n" |
22 | "quant.delta_q_y_dc %d\n" |
23 | "quant.delta_q_uv_dc %d\n" |
24 | "quant.delta_q_uv_ac %d\n" |
25 | "seg.feature_data {%s}\n" |
26 | "seg.feature_enabled %s\n" |
27 | "seg.tree_probs %s\n" |
28 | "seg.pred_probs %s\n" |
29 | "seg.flags %s\n" |
30 | "flags %s\n" |
31 | "compressed_header_size %u\n" |
32 | "uncompressed_header_size %u\n" |
33 | "frame_width_minus_1 %u\n" |
34 | "frame_height_minus_1 %u\n" |
35 | "render_width_minus_1 %u\n" |
36 | "render_height_minus_1 %u\n" |
37 | "last_frame_ts %llu\n" |
38 | "golden_frame_ts %llu\n" |
39 | "alt_frame_ts %llu\n" |
40 | "ref_frame_sign_bias %s\n" |
41 | "reset_frame_context %s\n" |
42 | "frame_context_idx %u\n" |
43 | "profile %u\n" |
44 | "bit_depth %u\n" |
45 | "interpolation_filter %s\n" |
46 | "tile_cols_log2 %u\n" |
47 | "tile_rows_log_2 %u\n" |
48 | "reference_mode %s\n" , |
49 | __print_array(__entry->f.lf.ref_deltas, |
50 | ARRAY_SIZE(__entry->f.lf.ref_deltas), |
51 | sizeof(__entry->f.lf.ref_deltas[0])), |
52 | __print_array(__entry->f.lf.mode_deltas, |
53 | ARRAY_SIZE(__entry->f.lf.mode_deltas), |
54 | sizeof(__entry->f.lf.mode_deltas[0])), |
55 | __entry->f.lf.level, |
56 | __entry->f.lf.sharpness, |
57 | __print_flags(__entry->f.lf.flags, "|" , |
58 | {V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED, "DELTA_ENABLED" }, |
59 | {V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE, "DELTA_UPDATE" }), |
60 | __entry->f.quant.base_q_idx, |
61 | __entry->f.quant.delta_q_y_dc, |
62 | __entry->f.quant.delta_q_uv_dc, |
63 | __entry->f.quant.delta_q_uv_ac, |
64 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
65 | __entry->f.seg.feature_data, |
66 | sizeof(__entry->f.seg.feature_data), |
67 | false), |
68 | __print_array(__entry->f.seg.feature_enabled, |
69 | ARRAY_SIZE(__entry->f.seg.feature_enabled), |
70 | sizeof(__entry->f.seg.feature_enabled[0])), |
71 | __print_array(__entry->f.seg.tree_probs, |
72 | ARRAY_SIZE(__entry->f.seg.tree_probs), |
73 | sizeof(__entry->f.seg.tree_probs[0])), |
74 | __print_array(__entry->f.seg.pred_probs, |
75 | ARRAY_SIZE(__entry->f.seg.pred_probs), |
76 | sizeof(__entry->f.seg.pred_probs[0])), |
77 | __print_flags(__entry->f.seg.flags, "|" , |
78 | {V4L2_VP9_SEGMENTATION_FLAG_ENABLED, "ENABLED" }, |
79 | {V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP, "UPDATE_MAP" }, |
80 | {V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE, "TEMPORAL_UPDATE" }, |
81 | {V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA, "UPDATE_DATA" }, |
82 | {V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE, "ABS_OR_DELTA_UPDATE" }), |
83 | __print_flags(__entry->f.flags, "|" , |
84 | {V4L2_VP9_FRAME_FLAG_KEY_FRAME, "KEY_FRAME" }, |
85 | {V4L2_VP9_FRAME_FLAG_SHOW_FRAME, "SHOW_FRAME" }, |
86 | {V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT, "ERROR_RESILIENT" }, |
87 | {V4L2_VP9_FRAME_FLAG_INTRA_ONLY, "INTRA_ONLY" }, |
88 | {V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV, "ALLOW_HIGH_PREC_MV" }, |
89 | {V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX, "REFRESH_FRAME_CTX" }, |
90 | {V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE, "PARALLEL_DEC_MODE" }, |
91 | {V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING, "X_SUBSAMPLING" }, |
92 | {V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING, "Y_SUBSAMPLING" }, |
93 | {V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING, "COLOR_RANGE_FULL_SWING" }), |
94 | __entry->f.compressed_header_size, |
95 | __entry->f.uncompressed_header_size, |
96 | __entry->f.frame_width_minus_1, |
97 | __entry->f.frame_height_minus_1, |
98 | __entry->f.render_width_minus_1, |
99 | __entry->f.render_height_minus_1, |
100 | __entry->f.last_frame_ts, |
101 | __entry->f.golden_frame_ts, |
102 | __entry->f.alt_frame_ts, |
103 | __print_symbolic(__entry->f.ref_frame_sign_bias, |
104 | {V4L2_VP9_SIGN_BIAS_LAST, "SIGN_BIAS_LAST" }, |
105 | {V4L2_VP9_SIGN_BIAS_GOLDEN, "SIGN_BIAS_GOLDEN" }, |
106 | {V4L2_VP9_SIGN_BIAS_ALT, "SIGN_BIAS_ALT" }), |
107 | __print_symbolic(__entry->f.reset_frame_context, |
108 | {V4L2_VP9_RESET_FRAME_CTX_NONE, "RESET_FRAME_CTX_NONE" }, |
109 | {V4L2_VP9_RESET_FRAME_CTX_SPEC, "RESET_FRAME_CTX_SPEC" }, |
110 | {V4L2_VP9_RESET_FRAME_CTX_ALL, "RESET_FRAME_CTX_ALL" }), |
111 | __entry->f.frame_context_idx, |
112 | __entry->f.profile, |
113 | __entry->f.bit_depth, |
114 | __print_symbolic(__entry->f.interpolation_filter, |
115 | {V4L2_VP9_INTERP_FILTER_EIGHTTAP, "INTERP_FILTER_EIGHTTAP" }, |
116 | {V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH, "INTERP_FILTER_EIGHTTAP_SMOOTH" }, |
117 | {V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP, "INTERP_FILTER_EIGHTTAP_SHARP" }, |
118 | {V4L2_VP9_INTERP_FILTER_BILINEAR, "INTERP_FILTER_BILINEAR" }, |
119 | {V4L2_VP9_INTERP_FILTER_SWITCHABLE, "INTERP_FILTER_SWITCHABLE" }), |
120 | __entry->f.tile_cols_log2, |
121 | __entry->f.tile_rows_log2, |
122 | __print_symbolic(__entry->f.reference_mode, |
123 | {V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE, "REFERENCE_MODE_SINGLE_REFERENCE" }, |
124 | {V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE, "REFERENCE_MODE_COMPOUND_REFERENCE" }, |
125 | {V4L2_VP9_REFERENCE_MODE_SELECT, "REFERENCE_MODE_SELECT" })) |
126 | ); |
127 | |
128 | DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_hdr_tmpl, |
129 | TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
130 | TP_ARGS(h), |
131 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), |
132 | TP_fast_assign(__entry->h = *h;), |
133 | TP_printk("\ntx_mode %s\n" |
134 | "tx8 {%s}\n" |
135 | "tx16 {%s}\n" |
136 | "tx32 {%s}\n" |
137 | "skip %s\n" |
138 | "inter_mode {%s}\n" |
139 | "interp_filter {%s}\n" |
140 | "is_inter %s\n" |
141 | "comp_mode %s\n" |
142 | "single_ref {%s}\n" |
143 | "comp_ref %s\n" |
144 | "y_mode {%s}\n" |
145 | "uv_mode {%s}\n" |
146 | "partition {%s}\n" , |
147 | __print_symbolic(__entry->h.tx_mode, |
148 | {V4L2_VP9_TX_MODE_ONLY_4X4, "TX_MODE_ONLY_4X4" }, |
149 | {V4L2_VP9_TX_MODE_ALLOW_8X8, "TX_MODE_ALLOW_8X8" }, |
150 | {V4L2_VP9_TX_MODE_ALLOW_16X16, "TX_MODE_ALLOW_16X16" }, |
151 | {V4L2_VP9_TX_MODE_ALLOW_32X32, "TX_MODE_ALLOW_32X32" }, |
152 | {V4L2_VP9_TX_MODE_SELECT, "TX_MODE_SELECT" }), |
153 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
154 | __entry->h.tx8, |
155 | sizeof(__entry->h.tx8), |
156 | false), |
157 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
158 | __entry->h.tx16, |
159 | sizeof(__entry->h.tx16), |
160 | false), |
161 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
162 | __entry->h.tx32, |
163 | sizeof(__entry->h.tx32), |
164 | false), |
165 | __print_array(__entry->h.skip, |
166 | ARRAY_SIZE(__entry->h.skip), |
167 | sizeof(__entry->h.skip[0])), |
168 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
169 | __entry->h.inter_mode, |
170 | sizeof(__entry->h.inter_mode), |
171 | false), |
172 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
173 | __entry->h.interp_filter, |
174 | sizeof(__entry->h.interp_filter), |
175 | false), |
176 | __print_array(__entry->h.is_inter, |
177 | ARRAY_SIZE(__entry->h.is_inter), |
178 | sizeof(__entry->h.is_inter[0])), |
179 | __print_array(__entry->h.comp_mode, |
180 | ARRAY_SIZE(__entry->h.comp_mode), |
181 | sizeof(__entry->h.comp_mode[0])), |
182 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
183 | __entry->h.single_ref, |
184 | sizeof(__entry->h.single_ref), |
185 | false), |
186 | __print_array(__entry->h.comp_ref, |
187 | ARRAY_SIZE(__entry->h.comp_ref), |
188 | sizeof(__entry->h.comp_ref[0])), |
189 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
190 | __entry->h.y_mode, |
191 | sizeof(__entry->h.y_mode), |
192 | false), |
193 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
194 | __entry->h.uv_mode, |
195 | sizeof(__entry->h.uv_mode), |
196 | false), |
197 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
198 | __entry->h.partition, |
199 | sizeof(__entry->h.partition), |
200 | false) |
201 | ) |
202 | ); |
203 | |
204 | DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_coef_tmpl, |
205 | TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
206 | TP_ARGS(h), |
207 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), |
208 | TP_fast_assign(__entry->h = *h;), |
209 | TP_printk("\n coef {%s}" , |
210 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
211 | __entry->h.coef, |
212 | sizeof(__entry->h.coef), |
213 | false) |
214 | ) |
215 | ); |
216 | |
217 | DECLARE_EVENT_CLASS(v4l2_vp9_mv_probs_tmpl, |
218 | TP_PROTO(const struct v4l2_vp9_mv_probs *p), |
219 | TP_ARGS(p), |
220 | TP_STRUCT__entry(__field_struct(struct v4l2_vp9_mv_probs, p)), |
221 | TP_fast_assign(__entry->p = *p;), |
222 | TP_printk("\n joint %s\n" |
223 | "sign %s\n" |
224 | "classes {%s}\n" |
225 | "class0_bit %s\n" |
226 | "bits {%s}\n" |
227 | "class0_fr {%s}\n" |
228 | "fr {%s}\n" |
229 | "class0_hp %s\n" |
230 | "hp %s\n" , |
231 | __print_array(__entry->p.joint, |
232 | ARRAY_SIZE(__entry->p.joint), |
233 | sizeof(__entry->p.joint[0])), |
234 | __print_array(__entry->p.sign, |
235 | ARRAY_SIZE(__entry->p.sign), |
236 | sizeof(__entry->p.sign[0])), |
237 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
238 | __entry->p.classes, |
239 | sizeof(__entry->p.classes), |
240 | false), |
241 | __print_array(__entry->p.class0_bit, |
242 | ARRAY_SIZE(__entry->p.class0_bit), |
243 | sizeof(__entry->p.class0_bit[0])), |
244 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
245 | __entry->p.bits, |
246 | sizeof(__entry->p.bits), |
247 | false), |
248 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
249 | __entry->p.class0_fr, |
250 | sizeof(__entry->p.class0_fr), |
251 | false), |
252 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
253 | __entry->p.fr, |
254 | sizeof(__entry->p.fr), |
255 | false), |
256 | __print_array(__entry->p.class0_hp, |
257 | ARRAY_SIZE(__entry->p.class0_hp), |
258 | sizeof(__entry->p.class0_hp[0])), |
259 | __print_array(__entry->p.hp, |
260 | ARRAY_SIZE(__entry->p.hp), |
261 | sizeof(__entry->p.hp[0])) |
262 | ) |
263 | ); |
264 | |
265 | DEFINE_EVENT(v4l2_ctrl_vp9_frame_tmpl, v4l2_ctrl_vp9_frame, |
266 | TP_PROTO(const struct v4l2_ctrl_vp9_frame *f), |
267 | TP_ARGS(f) |
268 | ); |
269 | |
270 | DEFINE_EVENT(v4l2_ctrl_vp9_compressed_hdr_tmpl, v4l2_ctrl_vp9_compressed_hdr, |
271 | TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
272 | TP_ARGS(h) |
273 | ); |
274 | |
275 | DEFINE_EVENT(v4l2_ctrl_vp9_compressed_coef_tmpl, v4l2_ctrl_vp9_compressed_coeff, |
276 | TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
277 | TP_ARGS(h) |
278 | ); |
279 | |
280 | |
281 | DEFINE_EVENT(v4l2_vp9_mv_probs_tmpl, v4l2_vp9_mv_probs, |
282 | TP_PROTO(const struct v4l2_vp9_mv_probs *p), |
283 | TP_ARGS(p) |
284 | ); |
285 | |
286 | #endif |
287 | |
288 | #undef TRACE_INCLUDE_PATH |
289 | #undef TRACE_INCLUDE_FILE |
290 | #define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl |
291 | #define TRACE_INCLUDE_FILE visl-trace-vp9 |
292 | #include <trace/define_trace.h> |
293 | |