293 lines · c
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_SYSTEM9#define TRACE_SYSTEM visl_vp9_controls10 11DECLARE_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 128DECLARE_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 204DECLARE_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 217DECLARE_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 265DEFINE_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 270DEFINE_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 275DEFINE_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 281DEFINE_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#endif287 288#undef TRACE_INCLUDE_PATH289#undef TRACE_INCLUDE_FILE290#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl291#define TRACE_INCLUDE_FILE visl-trace-vp9292#include <trace/define_trace.h>293