100 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#if !defined(_VISL_TRACE_MPEG2_H_) || defined(TRACE_HEADER_MULTI_READ)3#define _VISL_TRACE_MPEG2_H_4 5#include <linux/tracepoint.h>6#include "visl.h"7 8#undef TRACE_SYSTEM9#define TRACE_SYSTEM visl_mpeg2_controls10 11DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_seq_tmpl,12 TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s),13 TP_ARGS(s),14 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_sequence, s)),15 TP_fast_assign(__entry->s = *s;),16 TP_printk("\nhorizontal_size %u\nvertical_size %u\nvbv_buffer_size %u\n"17 "profile_and_level_indication %u\nchroma_format %u\nflags %s\n",18 __entry->s.horizontal_size,19 __entry->s.vertical_size,20 __entry->s.vbv_buffer_size,21 __entry->s.profile_and_level_indication,22 __entry->s.chroma_format,23 __print_flags(__entry->s.flags, "|",24 {V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE, "PROGRESSIVE"})25 )26);27 28DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_pic_tmpl,29 TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p),30 TP_ARGS(p),31 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_picture, p)),32 TP_fast_assign(__entry->p = *p;),33 TP_printk("\nbackward_ref_ts %llu\nforward_ref_ts %llu\nflags %s\nf_code {%s}\n"34 "picture_coding_type: %u\npicture_structure %u\nintra_dc_precision %u\n",35 __entry->p.backward_ref_ts,36 __entry->p.forward_ref_ts,37 __print_flags(__entry->p.flags, "|",38 {V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST, "TOP_FIELD_FIRST"},39 {V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT, "FRAME_PRED_DCT"},40 {V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV, "CONCEALMENT_MV"},41 {V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE, "Q_SCALE_TYPE"},42 {V4L2_MPEG2_PIC_FLAG_INTRA_VLC, "INTA_VLC"},43 {V4L2_MPEG2_PIC_FLAG_ALT_SCAN, "ALT_SCAN"},44 {V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST, "REPEAT_FIRST"},45 {V4L2_MPEG2_PIC_FLAG_PROGRESSIVE, "PROGRESSIVE"}),46 __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1,47 __entry->p.f_code,48 sizeof(__entry->p.f_code),49 false),50 __entry->p.picture_coding_type,51 __entry->p.picture_structure,52 __entry->p.intra_dc_precision53 )54);55 56DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_quant_tmpl,57 TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q),58 TP_ARGS(q),59 TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_quantisation, q)),60 TP_fast_assign(__entry->q = *q;),61 TP_printk("\nintra_quantiser_matrix %s\nnon_intra_quantiser_matrix %s\n"62 "chroma_intra_quantiser_matrix %s\nchroma_non_intra_quantiser_matrix %s\n",63 __print_array(__entry->q.intra_quantiser_matrix,64 ARRAY_SIZE(__entry->q.intra_quantiser_matrix),65 sizeof(__entry->q.intra_quantiser_matrix[0])),66 __print_array(__entry->q.non_intra_quantiser_matrix,67 ARRAY_SIZE(__entry->q.non_intra_quantiser_matrix),68 sizeof(__entry->q.non_intra_quantiser_matrix[0])),69 __print_array(__entry->q.chroma_intra_quantiser_matrix,70 ARRAY_SIZE(__entry->q.chroma_intra_quantiser_matrix),71 sizeof(__entry->q.chroma_intra_quantiser_matrix[0])),72 __print_array(__entry->q.chroma_non_intra_quantiser_matrix,73 ARRAY_SIZE(__entry->q.chroma_non_intra_quantiser_matrix),74 sizeof(__entry->q.chroma_non_intra_quantiser_matrix[0]))75 )76)77 78DEFINE_EVENT(v4l2_ctrl_mpeg2_seq_tmpl, v4l2_ctrl_mpeg2_sequence,79 TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s),80 TP_ARGS(s)81);82 83DEFINE_EVENT(v4l2_ctrl_mpeg2_pic_tmpl, v4l2_ctrl_mpeg2_picture,84 TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p),85 TP_ARGS(p)86);87 88DEFINE_EVENT(v4l2_ctrl_mpeg2_quant_tmpl, v4l2_ctrl_mpeg2_quantisation,89 TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q),90 TP_ARGS(q)91);92 93#endif94 95#undef TRACE_INCLUDE_PATH96#undef TRACE_INCLUDE_FILE97#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl98#define TRACE_INCLUDE_FILE visl-trace-mpeg299#include <trace/define_trace.h>100