350 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#if !defined(_VISL_TRACE_H264_H_) || defined(TRACE_HEADER_MULTI_READ)3#define _VISL_TRACE_H264_H_4 5#include <linux/tracepoint.h>6#include "visl.h"7 8#undef TRACE_SYSTEM9#define TRACE_SYSTEM visl_h264_controls10 11DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl,12 TP_PROTO(const struct v4l2_ctrl_h264_sps *s),13 TP_ARGS(s),14 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_sps, s)),15 TP_fast_assign(__entry->s = *s),16 TP_printk("\nprofile_idc %u\n"17 "constraint_set_flags %s\n"18 "level_idc %u\n"19 "seq_parameter_set_id %u\n"20 "chroma_format_idc %u\n"21 "bit_depth_luma_minus8 %u\n"22 "bit_depth_chroma_minus8 %u\n"23 "log2_max_frame_num_minus4 %u\n"24 "pic_order_cnt_type %u\n"25 "log2_max_pic_order_cnt_lsb_minus4 %u\n"26 "max_num_ref_frames %u\n"27 "num_ref_frames_in_pic_order_cnt_cycle %u\n"28 "offset_for_ref_frame %s\n"29 "offset_for_non_ref_pic %d\n"30 "offset_for_top_to_bottom_field %d\n"31 "pic_width_in_mbs_minus1 %u\n"32 "pic_height_in_map_units_minus1 %u\n"33 "flags %s",34 __entry->s.profile_idc,35 __print_flags(__entry->s.constraint_set_flags, "|",36 {V4L2_H264_SPS_CONSTRAINT_SET0_FLAG, "CONSTRAINT_SET0_FLAG"},37 {V4L2_H264_SPS_CONSTRAINT_SET1_FLAG, "CONSTRAINT_SET1_FLAG"},38 {V4L2_H264_SPS_CONSTRAINT_SET2_FLAG, "CONSTRAINT_SET2_FLAG"},39 {V4L2_H264_SPS_CONSTRAINT_SET3_FLAG, "CONSTRAINT_SET3_FLAG"},40 {V4L2_H264_SPS_CONSTRAINT_SET4_FLAG, "CONSTRAINT_SET4_FLAG"},41 {V4L2_H264_SPS_CONSTRAINT_SET5_FLAG, "CONSTRAINT_SET5_FLAG"}),42 __entry->s.level_idc,43 __entry->s.seq_parameter_set_id,44 __entry->s.chroma_format_idc,45 __entry->s.bit_depth_luma_minus8,46 __entry->s.bit_depth_chroma_minus8,47 __entry->s.log2_max_frame_num_minus4,48 __entry->s.pic_order_cnt_type,49 __entry->s.log2_max_pic_order_cnt_lsb_minus4,50 __entry->s.max_num_ref_frames,51 __entry->s.num_ref_frames_in_pic_order_cnt_cycle,52 __print_array(__entry->s.offset_for_ref_frame,53 ARRAY_SIZE(__entry->s.offset_for_ref_frame),54 sizeof(__entry->s.offset_for_ref_frame[0])),55 __entry->s.offset_for_non_ref_pic,56 __entry->s.offset_for_top_to_bottom_field,57 __entry->s.pic_width_in_mbs_minus1,58 __entry->s.pic_height_in_map_units_minus1,59 __print_flags(__entry->s.flags, "|",60 {V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE"},61 {V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS, "QPPRIME_Y_ZERO_TRANSFORM_BYPASS"},62 {V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO, "DELTA_PIC_ORDER_ALWAYS_ZERO"},63 {V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED, "GAPS_IN_FRAME_NUM_VALUE_ALLOWED"},64 {V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY, "FRAME_MBS_ONLY"},65 {V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD, "MB_ADAPTIVE_FRAME_FIELD"},66 {V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE, "DIRECT_8X8_INFERENCE"}67 ))68);69 70DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl,71 TP_PROTO(const struct v4l2_ctrl_h264_pps *p),72 TP_ARGS(p),73 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pps, p)),74 TP_fast_assign(__entry->p = *p),75 TP_printk("\npic_parameter_set_id %u\n"76 "seq_parameter_set_id %u\n"77 "num_slice_groups_minus1 %u\n"78 "num_ref_idx_l0_default_active_minus1 %u\n"79 "num_ref_idx_l1_default_active_minus1 %u\n"80 "weighted_bipred_idc %u\n"81 "pic_init_qp_minus26 %d\n"82 "pic_init_qs_minus26 %d\n"83 "chroma_qp_index_offset %d\n"84 "second_chroma_qp_index_offset %d\n"85 "flags %s",86 __entry->p.pic_parameter_set_id,87 __entry->p.seq_parameter_set_id,88 __entry->p.num_slice_groups_minus1,89 __entry->p.num_ref_idx_l0_default_active_minus1,90 __entry->p.num_ref_idx_l1_default_active_minus1,91 __entry->p.weighted_bipred_idc,92 __entry->p.pic_init_qp_minus26,93 __entry->p.pic_init_qs_minus26,94 __entry->p.chroma_qp_index_offset,95 __entry->p.second_chroma_qp_index_offset,96 __print_flags(__entry->p.flags, "|",97 {V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE, "ENTROPY_CODING_MODE"},98 {V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT, "BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT"},99 {V4L2_H264_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED"},100 {V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FILTER_CONTROL_PRESENT"},101 {V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED"},102 {V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT, "REDUNDANT_PIC_CNT_PRESENT"},103 {V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE, "TRANSFORM_8X8_MODE"},104 {V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT, "SCALING_MATRIX_PRESENT"}105 ))106);107 108DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmpl,109 TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s),110 TP_ARGS(s),111 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)),112 TP_fast_assign(__entry->s = *s),113 TP_printk("\nscaling_list_4x4 {%s}\nscaling_list_8x8 {%s}",114 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,115 __entry->s.scaling_list_4x4,116 sizeof(__entry->s.scaling_list_4x4),117 false),118 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,119 __entry->s.scaling_list_8x8,120 sizeof(__entry->s.scaling_list_8x8),121 false)122 )123);124 125DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl,126 TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p),127 TP_ARGS(p),128 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pred_weights, p)),129 TP_fast_assign(__entry->p = *p),130 TP_printk("\nluma_log2_weight_denom %u\n"131 "chroma_log2_weight_denom %u\n"132 "weight_factor[0].luma_weight %s\n"133 "weight_factor[0].luma_offset %s\n"134 "weight_factor[0].chroma_weight {%s}\n"135 "weight_factor[0].chroma_offset {%s}\n"136 "weight_factor[1].luma_weight %s\n"137 "weight_factor[1].luma_offset %s\n"138 "weight_factor[1].chroma_weight {%s}\n"139 "weight_factor[1].chroma_offset {%s}\n",140 __entry->p.luma_log2_weight_denom,141 __entry->p.chroma_log2_weight_denom,142 __print_array(__entry->p.weight_factors[0].luma_weight,143 ARRAY_SIZE(__entry->p.weight_factors[0].luma_weight),144 sizeof(__entry->p.weight_factors[0].luma_weight[0])),145 __print_array(__entry->p.weight_factors[0].luma_offset,146 ARRAY_SIZE(__entry->p.weight_factors[0].luma_offset),147 sizeof(__entry->p.weight_factors[0].luma_offset[0])),148 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,149 __entry->p.weight_factors[0].chroma_weight,150 sizeof(__entry->p.weight_factors[0].chroma_weight),151 false),152 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,153 __entry->p.weight_factors[0].chroma_offset,154 sizeof(__entry->p.weight_factors[0].chroma_offset),155 false),156 __print_array(__entry->p.weight_factors[1].luma_weight,157 ARRAY_SIZE(__entry->p.weight_factors[1].luma_weight),158 sizeof(__entry->p.weight_factors[1].luma_weight[0])),159 __print_array(__entry->p.weight_factors[1].luma_offset,160 ARRAY_SIZE(__entry->p.weight_factors[1].luma_offset),161 sizeof(__entry->p.weight_factors[1].luma_offset[0])),162 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,163 __entry->p.weight_factors[1].chroma_weight,164 sizeof(__entry->p.weight_factors[1].chroma_weight),165 false),166 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,167 __entry->p.weight_factors[1].chroma_offset,168 sizeof(__entry->p.weight_factors[1].chroma_offset),169 false)170 )171);172 173DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl,174 TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s),175 TP_ARGS(s),176 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_slice_params, s)),177 TP_fast_assign(__entry->s = *s),178 TP_printk("\nheader_bit_size %u\n"179 "first_mb_in_slice %u\n"180 "slice_type %s\n"181 "colour_plane_id %u\n"182 "redundant_pic_cnt %u\n"183 "cabac_init_idc %u\n"184 "slice_qp_delta %d\n"185 "slice_qs_delta %d\n"186 "disable_deblocking_filter_idc %u\n"187 "slice_alpha_c0_offset_div2 %u\n"188 "slice_beta_offset_div2 %u\n"189 "num_ref_idx_l0_active_minus1 %u\n"190 "num_ref_idx_l1_active_minus1 %u\n"191 "flags %s",192 __entry->s.header_bit_size,193 __entry->s.first_mb_in_slice,194 __print_symbolic(__entry->s.slice_type,195 {V4L2_H264_SLICE_TYPE_P, "P"},196 {V4L2_H264_SLICE_TYPE_B, "B"},197 {V4L2_H264_SLICE_TYPE_I, "I"},198 {V4L2_H264_SLICE_TYPE_SP, "SP"},199 {V4L2_H264_SLICE_TYPE_SI, "SI"}),200 __entry->s.colour_plane_id,201 __entry->s.redundant_pic_cnt,202 __entry->s.cabac_init_idc,203 __entry->s.slice_qp_delta,204 __entry->s.slice_qs_delta,205 __entry->s.disable_deblocking_filter_idc,206 __entry->s.slice_alpha_c0_offset_div2,207 __entry->s.slice_beta_offset_div2,208 __entry->s.num_ref_idx_l0_active_minus1,209 __entry->s.num_ref_idx_l1_active_minus1,210 __print_flags(__entry->s.flags, "|",211 {V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED, "DIRECT_SPATIAL_MV_PRED"},212 {V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH, "SP_FOR_SWITCH"})213 )214);215 216DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl,217 TP_PROTO(const struct v4l2_h264_reference *r, int i),218 TP_ARGS(r, i),219 TP_STRUCT__entry(__field_struct(struct v4l2_h264_reference, r)220 __field(int, i)),221 TP_fast_assign(__entry->r = *r; __entry->i = i;),222 TP_printk("[%d]: fields %s index %u",223 __entry->i,224 __print_flags(__entry->r.fields, "|",225 {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"},226 {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF"},227 {V4L2_H264_FRAME_REF, "FRAME_REF"}),228 __entry->r.index229 )230);231 232DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl,233 TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d),234 TP_ARGS(d),235 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_decode_params, d)),236 TP_fast_assign(__entry->d = *d),237 TP_printk("\nnal_ref_idc %u\n"238 "frame_num %u\n"239 "top_field_order_cnt %d\n"240 "bottom_field_order_cnt %d\n"241 "idr_pic_id %u\n"242 "pic_order_cnt_lsb %u\n"243 "delta_pic_order_cnt_bottom %d\n"244 "delta_pic_order_cnt0 %d\n"245 "delta_pic_order_cnt1 %d\n"246 "dec_ref_pic_marking_bit_size %u\n"247 "pic_order_cnt_bit_size %u\n"248 "slice_group_change_cycle %u\n"249 "flags %s\n",250 __entry->d.nal_ref_idc,251 __entry->d.frame_num,252 __entry->d.top_field_order_cnt,253 __entry->d.bottom_field_order_cnt,254 __entry->d.idr_pic_id,255 __entry->d.pic_order_cnt_lsb,256 __entry->d.delta_pic_order_cnt_bottom,257 __entry->d.delta_pic_order_cnt0,258 __entry->d.delta_pic_order_cnt1,259 __entry->d.dec_ref_pic_marking_bit_size,260 __entry->d.pic_order_cnt_bit_size,261 __entry->d.slice_group_change_cycle,262 __print_flags(__entry->d.flags, "|",263 {V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC"},264 {V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC, "FIELD_PIC"},265 {V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD, "BOTTOM_FIELD"},266 {V4L2_H264_DECODE_PARAM_FLAG_PFRAME, "PFRAME"},267 {V4L2_H264_DECODE_PARAM_FLAG_BFRAME, "BFRAME"})268 )269);270 271DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl,272 TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i),273 TP_ARGS(e, i),274 TP_STRUCT__entry(__field_struct(struct v4l2_h264_dpb_entry, e)275 __field(int, i)),276 TP_fast_assign(__entry->e = *e; __entry->i = i;),277 TP_printk("[%d]: reference_ts %llu, pic_num %u frame_num %u fields %s "278 "top_field_order_cnt %d bottom_field_order_cnt %d flags %s",279 __entry->i,280 __entry->e.reference_ts,281 __entry->e.pic_num,282 __entry->e.frame_num,283 __print_flags(__entry->e.fields, "|",284 {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"},285 {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF"},286 {V4L2_H264_FRAME_REF, "FRAME_REF"}),287 __entry->e.top_field_order_cnt,288 __entry->e.bottom_field_order_cnt,289 __print_flags(__entry->e.flags, "|",290 {V4L2_H264_DPB_ENTRY_FLAG_VALID, "VALID"},291 {V4L2_H264_DPB_ENTRY_FLAG_ACTIVE, "ACTIVE"},292 {V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM, "LONG_TERM"},293 {V4L2_H264_DPB_ENTRY_FLAG_FIELD, "FIELD"})294 295 )296);297 298DEFINE_EVENT(v4l2_ctrl_h264_sps_tmpl, v4l2_ctrl_h264_sps,299 TP_PROTO(const struct v4l2_ctrl_h264_sps *s),300 TP_ARGS(s)301);302 303DEFINE_EVENT(v4l2_ctrl_h264_pps_tmpl, v4l2_ctrl_h264_pps,304 TP_PROTO(const struct v4l2_ctrl_h264_pps *p),305 TP_ARGS(p)306);307 308DEFINE_EVENT(v4l2_ctrl_h264_scaling_matrix_tmpl, v4l2_ctrl_h264_scaling_matrix,309 TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s),310 TP_ARGS(s)311);312 313DEFINE_EVENT(v4l2_ctrl_h264_pred_weights_tmpl, v4l2_ctrl_h264_pred_weights,314 TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p),315 TP_ARGS(p)316);317 318DEFINE_EVENT(v4l2_ctrl_h264_slice_params_tmpl, v4l2_ctrl_h264_slice_params,319 TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s),320 TP_ARGS(s)321);322 323DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list0,324 TP_PROTO(const struct v4l2_h264_reference *r, int i),325 TP_ARGS(r, i)326);327 328DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list1,329 TP_PROTO(const struct v4l2_h264_reference *r, int i),330 TP_ARGS(r, i)331);332 333DEFINE_EVENT(v4l2_ctrl_h264_decode_params_tmpl, v4l2_ctrl_h264_decode_params,334 TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d),335 TP_ARGS(d)336);337 338DEFINE_EVENT(v4l2_h264_dpb_entry_tmpl, v4l2_h264_dpb_entry,339 TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i),340 TP_ARGS(e, i)341);342 343#endif344 345#undef TRACE_INCLUDE_PATH346#undef TRACE_INCLUDE_FILE347#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl348#define TRACE_INCLUDE_FILE visl-trace-h264349#include <trace/define_trace.h>350