406 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2#if !defined(_VISL_TRACE_HEVC_H_) || defined(TRACE_HEADER_MULTI_READ)3#define _VISL_TRACE_HEVC_H_4 5#include <linux/tracepoint.h>6#include "visl.h"7 8#undef TRACE_SYSTEM9#define TRACE_SYSTEM visl_hevc_controls10 11DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl,12 TP_PROTO(const struct v4l2_ctrl_hevc_sps *s),13 TP_ARGS(s),14 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_sps, s)),15 TP_fast_assign(__entry->s = *s),16 TP_printk("\nvideo_parameter_set_id %u\n"17 "seq_parameter_set_id %u\n"18 "pic_width_in_luma_samples %u\n"19 "pic_height_in_luma_samples %u\n"20 "bit_depth_luma_minus8 %u\n"21 "bit_depth_chroma_minus8 %u\n"22 "log2_max_pic_order_cnt_lsb_minus4 %u\n"23 "sps_max_dec_pic_buffering_minus1 %u\n"24 "sps_max_num_reorder_pics %u\n"25 "sps_max_latency_increase_plus1 %u\n"26 "log2_min_luma_coding_block_size_minus3 %u\n"27 "log2_diff_max_min_luma_coding_block_size %u\n"28 "log2_min_luma_transform_block_size_minus2 %u\n"29 "log2_diff_max_min_luma_transform_block_size %u\n"30 "max_transform_hierarchy_depth_inter %u\n"31 "max_transform_hierarchy_depth_intra %u\n"32 "pcm_sample_bit_depth_luma_minus1 %u\n"33 "pcm_sample_bit_depth_chroma_minus1 %u\n"34 "log2_min_pcm_luma_coding_block_size_minus3 %u\n"35 "log2_diff_max_min_pcm_luma_coding_block_size %u\n"36 "num_short_term_ref_pic_sets %u\n"37 "num_long_term_ref_pics_sps %u\n"38 "chroma_format_idc %u\n"39 "sps_max_sub_layers_minus1 %u\n"40 "flags %s",41 __entry->s.video_parameter_set_id,42 __entry->s.seq_parameter_set_id,43 __entry->s.pic_width_in_luma_samples,44 __entry->s.pic_height_in_luma_samples,45 __entry->s.bit_depth_luma_minus8,46 __entry->s.bit_depth_chroma_minus8,47 __entry->s.log2_max_pic_order_cnt_lsb_minus4,48 __entry->s.sps_max_dec_pic_buffering_minus1,49 __entry->s.sps_max_num_reorder_pics,50 __entry->s.sps_max_latency_increase_plus1,51 __entry->s.log2_min_luma_coding_block_size_minus3,52 __entry->s.log2_diff_max_min_luma_coding_block_size,53 __entry->s.log2_min_luma_transform_block_size_minus2,54 __entry->s.log2_diff_max_min_luma_transform_block_size,55 __entry->s.max_transform_hierarchy_depth_inter,56 __entry->s.max_transform_hierarchy_depth_intra,57 __entry->s.pcm_sample_bit_depth_luma_minus1,58 __entry->s.pcm_sample_bit_depth_chroma_minus1,59 __entry->s.log2_min_pcm_luma_coding_block_size_minus3,60 __entry->s.log2_diff_max_min_pcm_luma_coding_block_size,61 __entry->s.num_short_term_ref_pic_sets,62 __entry->s.num_long_term_ref_pics_sps,63 __entry->s.chroma_format_idc,64 __entry->s.sps_max_sub_layers_minus1,65 __print_flags(__entry->s.flags, "|",66 {V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE"},67 {V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED, "SCALING_LIST_ENABLED"},68 {V4L2_HEVC_SPS_FLAG_AMP_ENABLED, "AMP_ENABLED"},69 {V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET, "SAMPLE_ADAPTIVE_OFFSET"},70 {V4L2_HEVC_SPS_FLAG_PCM_ENABLED, "PCM_ENABLED"},71 {V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED, "V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED"},72 {V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT, "LONG_TERM_REF_PICS_PRESENT"},73 {V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED, "TEMPORAL_MVP_ENABLED"},74 {V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED, "STRONG_INTRA_SMOOTHING_ENABLED"}75 ))76 77);78 79 80DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl,81 TP_PROTO(const struct v4l2_ctrl_hevc_pps *p),82 TP_ARGS(p),83 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_pps, p)),84 TP_fast_assign(__entry->p = *p),85 TP_printk("\npic_parameter_set_id %u\n"86 "num_extra_slice_header_bits %u\n"87 "num_ref_idx_l0_default_active_minus1 %u\n"88 "num_ref_idx_l1_default_active_minus1 %u\n"89 "init_qp_minus26 %d\n"90 "diff_cu_qp_delta_depth %u\n"91 "pps_cb_qp_offset %d\n"92 "pps_cr_qp_offset %d\n"93 "num_tile_columns_minus1 %d\n"94 "num_tile_rows_minus1 %d\n"95 "column_width_minus1 %s\n"96 "row_height_minus1 %s\n"97 "pps_beta_offset_div2 %d\n"98 "pps_tc_offset_div2 %d\n"99 "log2_parallel_merge_level_minus2 %u\n"100 "flags %s",101 __entry->p.pic_parameter_set_id,102 __entry->p.num_extra_slice_header_bits,103 __entry->p.num_ref_idx_l0_default_active_minus1,104 __entry->p.num_ref_idx_l1_default_active_minus1,105 __entry->p.init_qp_minus26,106 __entry->p.diff_cu_qp_delta_depth,107 __entry->p.pps_cb_qp_offset,108 __entry->p.pps_cr_qp_offset,109 __entry->p.num_tile_columns_minus1,110 __entry->p.num_tile_rows_minus1,111 __print_array(__entry->p.column_width_minus1,112 ARRAY_SIZE(__entry->p.column_width_minus1),113 sizeof(__entry->p.column_width_minus1[0])),114 __print_array(__entry->p.row_height_minus1,115 ARRAY_SIZE(__entry->p.row_height_minus1),116 sizeof(__entry->p.row_height_minus1[0])),117 __entry->p.pps_beta_offset_div2,118 __entry->p.pps_tc_offset_div2,119 __entry->p.log2_parallel_merge_level_minus2,120 __print_flags(__entry->p.flags, "|",121 {V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED, "DEPENDENT_SLICE_SEGMENT_ENABLED"},122 {V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT, "OUTPUT_FLAG_PRESENT"},123 {V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED, "SIGN_DATA_HIDING_ENABLED"},124 {V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT, "CABAC_INIT_PRESENT"},125 {V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED"},126 {V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED, "CU_QP_DELTA_ENABLED"},127 {V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT, "PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT"},128 {V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED"},129 {V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED, "WEIGHTED_BIPRED"},130 {V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED, "TRANSQUANT_BYPASS_ENABLED"},131 {V4L2_HEVC_PPS_FLAG_TILES_ENABLED, "TILES_ENABLED"},132 {V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED, "ENTROPY_CODING_SYNC_ENABLED"},133 {V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED, "LOOP_FILTER_ACROSS_TILES_ENABLED"},134 {V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED, "PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED"},135 {V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED, "DEBLOCKING_FILTER_OVERRIDE_ENABLED"},136 {V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER, "DISABLE_DEBLOCKING_FILTER"},137 {V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT, "LISTS_MODIFICATION_PRESENT"},138 {V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT, "SLICE_SEGMENT_HEADER_EXTENSION_PRESENT"},139 {V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FILTER_CONTROL_PRESENT"},140 {V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING, "UNIFORM_SPACING"}141 ))142 143);144 145 146 147DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl,148 TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s),149 TP_ARGS(s),150 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_slice_params, s)),151 TP_fast_assign(__entry->s = *s),152 TP_printk("\nbit_size %u\n"153 "data_byte_offset %u\n"154 "num_entry_point_offsets %u\n"155 "nal_unit_type %u\n"156 "nuh_temporal_id_plus1 %u\n"157 "slice_type %u\n"158 "colour_plane_id %u\n"159 "slice_pic_order_cnt %d\n"160 "num_ref_idx_l0_active_minus1 %u\n"161 "num_ref_idx_l1_active_minus1 %u\n"162 "collocated_ref_idx %u\n"163 "five_minus_max_num_merge_cand %u\n"164 "slice_qp_delta %d\n"165 "slice_cb_qp_offset %d\n"166 "slice_cr_qp_offset %d\n"167 "slice_act_y_qp_offset %d\n"168 "slice_act_cb_qp_offset %d\n"169 "slice_act_cr_qp_offset %d\n"170 "slice_beta_offset_div2 %d\n"171 "slice_tc_offset_div2 %d\n"172 "pic_struct %u\n"173 "slice_segment_addr %u\n"174 "ref_idx_l0 %s\n"175 "ref_idx_l1 %s\n"176 "short_term_ref_pic_set_size %u\n"177 "long_term_ref_pic_set_size %u\n"178 "flags %s",179 __entry->s.bit_size,180 __entry->s.data_byte_offset,181 __entry->s.num_entry_point_offsets,182 __entry->s.nal_unit_type,183 __entry->s.nuh_temporal_id_plus1,184 __entry->s.slice_type,185 __entry->s.colour_plane_id,186 __entry->s.slice_pic_order_cnt,187 __entry->s.num_ref_idx_l0_active_minus1,188 __entry->s.num_ref_idx_l1_active_minus1,189 __entry->s.collocated_ref_idx,190 __entry->s.five_minus_max_num_merge_cand,191 __entry->s.slice_qp_delta,192 __entry->s.slice_cb_qp_offset,193 __entry->s.slice_cr_qp_offset,194 __entry->s.slice_act_y_qp_offset,195 __entry->s.slice_act_cb_qp_offset,196 __entry->s.slice_act_cr_qp_offset,197 __entry->s.slice_beta_offset_div2,198 __entry->s.slice_tc_offset_div2,199 __entry->s.pic_struct,200 __entry->s.slice_segment_addr,201 __print_array(__entry->s.ref_idx_l0,202 ARRAY_SIZE(__entry->s.ref_idx_l0),203 sizeof(__entry->s.ref_idx_l0[0])),204 __print_array(__entry->s.ref_idx_l1,205 ARRAY_SIZE(__entry->s.ref_idx_l1),206 sizeof(__entry->s.ref_idx_l1[0])),207 __entry->s.short_term_ref_pic_set_size,208 __entry->s.long_term_ref_pic_set_size,209 __print_flags(__entry->s.flags, "|",210 {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA, "SLICE_SAO_LUMA"},211 {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA, "SLICE_SAO_CHROMA"},212 {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED, "SLICE_TEMPORAL_MVP_ENABLED"},213 {V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO, "MVD_L1_ZERO"},214 {V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT, "CABAC_INIT"},215 {V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0, "COLLOCATED_FROM_L0"},216 {V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV, "USE_INTEGER_MV"},217 {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED, "SLICE_DEBLOCKING_FILTER_DISABLED"},218 {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED, "SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED"},219 {V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT, "DEPENDENT_SLICE_SEGMENT"}220 221 ))222);223 224DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl,225 TP_PROTO(const struct v4l2_hevc_pred_weight_table *p),226 TP_ARGS(p),227 TP_STRUCT__entry(__field_struct(struct v4l2_hevc_pred_weight_table, p)),228 TP_fast_assign(__entry->p = *p),229 TP_printk("\ndelta_luma_weight_l0 %s\n"230 "luma_offset_l0 %s\n"231 "delta_chroma_weight_l0 {%s}\n"232 "chroma_offset_l0 {%s}\n"233 "delta_luma_weight_l1 %s\n"234 "luma_offset_l1 %s\n"235 "delta_chroma_weight_l1 {%s}\n"236 "chroma_offset_l1 {%s}\n"237 "luma_log2_weight_denom %d\n"238 "delta_chroma_log2_weight_denom %d\n",239 __print_array(__entry->p.delta_luma_weight_l0,240 ARRAY_SIZE(__entry->p.delta_luma_weight_l0),241 sizeof(__entry->p.delta_luma_weight_l0[0])),242 __print_array(__entry->p.luma_offset_l0,243 ARRAY_SIZE(__entry->p.luma_offset_l0),244 sizeof(__entry->p.luma_offset_l0[0])),245 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,246 __entry->p.delta_chroma_weight_l0,247 sizeof(__entry->p.delta_chroma_weight_l0),248 false),249 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,250 __entry->p.chroma_offset_l0,251 sizeof(__entry->p.chroma_offset_l0),252 false),253 __print_array(__entry->p.delta_luma_weight_l1,254 ARRAY_SIZE(__entry->p.delta_luma_weight_l1),255 sizeof(__entry->p.delta_luma_weight_l1[0])),256 __print_array(__entry->p.luma_offset_l1,257 ARRAY_SIZE(__entry->p.luma_offset_l1),258 sizeof(__entry->p.luma_offset_l1[0])),259 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,260 __entry->p.delta_chroma_weight_l1,261 sizeof(__entry->p.delta_chroma_weight_l1),262 false),263 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,264 __entry->p.chroma_offset_l1,265 sizeof(__entry->p.chroma_offset_l1),266 false),267 __entry->p.luma_log2_weight_denom,268 __entry->p.delta_chroma_log2_weight_denom269 270 ))271 272DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_scaling_matrix_tmpl,273 TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s),274 TP_ARGS(s),275 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_scaling_matrix, s)),276 TP_fast_assign(__entry->s = *s),277 TP_printk("\nscaling_list_4x4 {%s}\n"278 "scaling_list_8x8 {%s}\n"279 "scaling_list_16x16 {%s}\n"280 "scaling_list_32x32 {%s}\n"281 "scaling_list_dc_coef_16x16 %s\n"282 "scaling_list_dc_coef_32x32 %s\n",283 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,284 __entry->s.scaling_list_4x4,285 sizeof(__entry->s.scaling_list_4x4),286 false),287 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,288 __entry->s.scaling_list_8x8,289 sizeof(__entry->s.scaling_list_8x8),290 false),291 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,292 __entry->s.scaling_list_16x16,293 sizeof(__entry->s.scaling_list_16x16),294 false),295 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,296 __entry->s.scaling_list_32x32,297 sizeof(__entry->s.scaling_list_32x32),298 false),299 __print_array(__entry->s.scaling_list_dc_coef_16x16,300 ARRAY_SIZE(__entry->s.scaling_list_dc_coef_16x16),301 sizeof(__entry->s.scaling_list_dc_coef_16x16[0])),302 __print_array(__entry->s.scaling_list_dc_coef_32x32,303 ARRAY_SIZE(__entry->s.scaling_list_dc_coef_32x32),304 sizeof(__entry->s.scaling_list_dc_coef_32x32[0]))305 ))306 307DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl,308 TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d),309 TP_ARGS(d),310 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_decode_params, d)),311 TP_fast_assign(__entry->d = *d),312 TP_printk("\npic_order_cnt_val %d\n"313 "short_term_ref_pic_set_size %u\n"314 "long_term_ref_pic_set_size %u\n"315 "num_active_dpb_entries %u\n"316 "num_poc_st_curr_before %u\n"317 "num_poc_st_curr_after %u\n"318 "num_poc_lt_curr %u\n"319 "poc_st_curr_before %s\n"320 "poc_st_curr_after %s\n"321 "poc_lt_curr %s\n"322 "flags %s",323 __entry->d.pic_order_cnt_val,324 __entry->d.short_term_ref_pic_set_size,325 __entry->d.long_term_ref_pic_set_size,326 __entry->d.num_active_dpb_entries,327 __entry->d.num_poc_st_curr_before,328 __entry->d.num_poc_st_curr_after,329 __entry->d.num_poc_lt_curr,330 __print_array(__entry->d.poc_st_curr_before,331 ARRAY_SIZE(__entry->d.poc_st_curr_before),332 sizeof(__entry->d.poc_st_curr_before[0])),333 __print_array(__entry->d.poc_st_curr_after,334 ARRAY_SIZE(__entry->d.poc_st_curr_after),335 sizeof(__entry->d.poc_st_curr_after[0])),336 __print_array(__entry->d.poc_lt_curr,337 ARRAY_SIZE(__entry->d.poc_lt_curr),338 sizeof(__entry->d.poc_lt_curr[0])),339 __print_flags(__entry->d.flags, "|",340 {V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC, "IRAP_PIC"},341 {V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC"},342 {V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR, "NO_OUTPUT_OF_PRIOR"}343 ))344);345 346 347DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl,348 TP_PROTO(const struct v4l2_hevc_dpb_entry *e),349 TP_ARGS(e),350 TP_STRUCT__entry(__field_struct(struct v4l2_hevc_dpb_entry, e)),351 TP_fast_assign(__entry->e = *e),352 TP_printk("\ntimestamp %llu\n"353 "flags %s\n"354 "field_pic %u\n"355 "pic_order_cnt_val %d\n",356 __entry->e.timestamp,357 __print_flags(__entry->e.flags, "|",358 {V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE, "LONG_TERM_REFERENCE"}359 ),360 __entry->e.field_pic,361 __entry->e.pic_order_cnt_val362 ))363 364DEFINE_EVENT(v4l2_ctrl_hevc_sps_tmpl, v4l2_ctrl_hevc_sps,365 TP_PROTO(const struct v4l2_ctrl_hevc_sps *s),366 TP_ARGS(s)367);368 369DEFINE_EVENT(v4l2_ctrl_hevc_pps_tmpl, v4l2_ctrl_hevc_pps,370 TP_PROTO(const struct v4l2_ctrl_hevc_pps *p),371 TP_ARGS(p)372);373 374DEFINE_EVENT(v4l2_ctrl_hevc_slice_params_tmpl, v4l2_ctrl_hevc_slice_params,375 TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s),376 TP_ARGS(s)377);378 379DEFINE_EVENT(v4l2_hevc_pred_weight_table_tmpl, v4l2_hevc_pred_weight_table,380 TP_PROTO(const struct v4l2_hevc_pred_weight_table *p),381 TP_ARGS(p)382);383 384DEFINE_EVENT(v4l2_ctrl_hevc_scaling_matrix_tmpl, v4l2_ctrl_hevc_scaling_matrix,385 TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s),386 TP_ARGS(s)387);388 389DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_params,390 TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d),391 TP_ARGS(d)392);393 394DEFINE_EVENT(v4l2_hevc_dpb_entry_tmpl, v4l2_hevc_dpb_entry,395 TP_PROTO(const struct v4l2_hevc_dpb_entry *e),396 TP_ARGS(e)397);398 399#endif400 401#undef TRACE_INCLUDE_PATH402#undef TRACE_INCLUDE_FILE403#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl404#define TRACE_INCLUDE_FILE visl-trace-hevc405#include <trace/define_trace.h>406