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