xref: /linux/drivers/media/platform/chips-media/coda/trace.h (revision 06d07429858317ded2db7986113a9e0129cd599b)
1*02a8b425SSebastian Fricke /* SPDX-License-Identifier: GPL-2.0 */
2*02a8b425SSebastian Fricke #undef TRACE_SYSTEM
3*02a8b425SSebastian Fricke #define TRACE_SYSTEM coda
4*02a8b425SSebastian Fricke 
5*02a8b425SSebastian Fricke #if !defined(__CODA_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
6*02a8b425SSebastian Fricke #define __CODA_TRACE_H__
7*02a8b425SSebastian Fricke 
8*02a8b425SSebastian Fricke #include <linux/tracepoint.h>
9*02a8b425SSebastian Fricke #include <media/videobuf2-v4l2.h>
10*02a8b425SSebastian Fricke 
11*02a8b425SSebastian Fricke #include "coda.h"
12*02a8b425SSebastian Fricke 
13*02a8b425SSebastian Fricke TRACE_EVENT(coda_bit_run,
14*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, int cmd),
15*02a8b425SSebastian Fricke 
16*02a8b425SSebastian Fricke 	TP_ARGS(ctx, cmd),
17*02a8b425SSebastian Fricke 
18*02a8b425SSebastian Fricke 	TP_STRUCT__entry(
19*02a8b425SSebastian Fricke 		__field(int, minor)
20*02a8b425SSebastian Fricke 		__field(int, ctx)
21*02a8b425SSebastian Fricke 		__field(int, cmd)
22*02a8b425SSebastian Fricke 	),
23*02a8b425SSebastian Fricke 
24*02a8b425SSebastian Fricke 	TP_fast_assign(
25*02a8b425SSebastian Fricke 		__entry->minor = ctx->fh.vdev->minor;
26*02a8b425SSebastian Fricke 		__entry->ctx = ctx->idx;
27*02a8b425SSebastian Fricke 		__entry->cmd = cmd;
28*02a8b425SSebastian Fricke 	),
29*02a8b425SSebastian Fricke 
30*02a8b425SSebastian Fricke 	TP_printk("minor = %d, ctx = %d, cmd = %d",
31*02a8b425SSebastian Fricke 		  __entry->minor, __entry->ctx, __entry->cmd)
32*02a8b425SSebastian Fricke );
33*02a8b425SSebastian Fricke 
34*02a8b425SSebastian Fricke TRACE_EVENT(coda_bit_done,
35*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx),
36*02a8b425SSebastian Fricke 
37*02a8b425SSebastian Fricke 	TP_ARGS(ctx),
38*02a8b425SSebastian Fricke 
39*02a8b425SSebastian Fricke 	TP_STRUCT__entry(
40*02a8b425SSebastian Fricke 		__field(int, minor)
41*02a8b425SSebastian Fricke 		__field(int, ctx)
42*02a8b425SSebastian Fricke 	),
43*02a8b425SSebastian Fricke 
44*02a8b425SSebastian Fricke 	TP_fast_assign(
45*02a8b425SSebastian Fricke 		__entry->minor = ctx->fh.vdev->minor;
46*02a8b425SSebastian Fricke 		__entry->ctx = ctx->idx;
47*02a8b425SSebastian Fricke 	),
48*02a8b425SSebastian Fricke 
49*02a8b425SSebastian Fricke 	TP_printk("minor = %d, ctx = %d", __entry->minor, __entry->ctx)
50*02a8b425SSebastian Fricke );
51*02a8b425SSebastian Fricke 
52*02a8b425SSebastian Fricke DECLARE_EVENT_CLASS(coda_buf_class,
53*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf),
54*02a8b425SSebastian Fricke 
55*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf),
56*02a8b425SSebastian Fricke 
57*02a8b425SSebastian Fricke 	TP_STRUCT__entry(
58*02a8b425SSebastian Fricke 		__field(int, minor)
59*02a8b425SSebastian Fricke 		__field(int, index)
60*02a8b425SSebastian Fricke 		__field(int, ctx)
61*02a8b425SSebastian Fricke 	),
62*02a8b425SSebastian Fricke 
63*02a8b425SSebastian Fricke 	TP_fast_assign(
64*02a8b425SSebastian Fricke 		__entry->minor = ctx->fh.vdev->minor;
65*02a8b425SSebastian Fricke 		__entry->index = buf->vb2_buf.index;
66*02a8b425SSebastian Fricke 		__entry->ctx = ctx->idx;
67*02a8b425SSebastian Fricke 	),
68*02a8b425SSebastian Fricke 
69*02a8b425SSebastian Fricke 	TP_printk("minor = %d, index = %d, ctx = %d",
70*02a8b425SSebastian Fricke 		  __entry->minor, __entry->index, __entry->ctx)
71*02a8b425SSebastian Fricke );
72*02a8b425SSebastian Fricke 
73*02a8b425SSebastian Fricke DEFINE_EVENT(coda_buf_class, coda_enc_pic_run,
74*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf),
75*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf)
76*02a8b425SSebastian Fricke );
77*02a8b425SSebastian Fricke 
78*02a8b425SSebastian Fricke DEFINE_EVENT(coda_buf_class, coda_enc_pic_done,
79*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf),
80*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf)
81*02a8b425SSebastian Fricke );
82*02a8b425SSebastian Fricke 
83*02a8b425SSebastian Fricke DECLARE_EVENT_CLASS(coda_buf_meta_class,
84*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf,
85*02a8b425SSebastian Fricke 		 struct coda_buffer_meta *meta),
86*02a8b425SSebastian Fricke 
87*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf, meta),
88*02a8b425SSebastian Fricke 
89*02a8b425SSebastian Fricke 	TP_STRUCT__entry(
90*02a8b425SSebastian Fricke 		__field(int, minor)
91*02a8b425SSebastian Fricke 		__field(int, index)
92*02a8b425SSebastian Fricke 		__field(int, start)
93*02a8b425SSebastian Fricke 		__field(int, end)
94*02a8b425SSebastian Fricke 		__field(int, ctx)
95*02a8b425SSebastian Fricke 	),
96*02a8b425SSebastian Fricke 
97*02a8b425SSebastian Fricke 	TP_fast_assign(
98*02a8b425SSebastian Fricke 		__entry->minor = ctx->fh.vdev->minor;
99*02a8b425SSebastian Fricke 		__entry->index = buf->vb2_buf.index;
100*02a8b425SSebastian Fricke 		__entry->start = meta->start & ctx->bitstream_fifo.kfifo.mask;
101*02a8b425SSebastian Fricke 		__entry->end = meta->end & ctx->bitstream_fifo.kfifo.mask;
102*02a8b425SSebastian Fricke 		__entry->ctx = ctx->idx;
103*02a8b425SSebastian Fricke 	),
104*02a8b425SSebastian Fricke 
105*02a8b425SSebastian Fricke 	TP_printk("minor = %d, index = %d, start = 0x%x, end = 0x%x, ctx = %d",
106*02a8b425SSebastian Fricke 		  __entry->minor, __entry->index, __entry->start, __entry->end,
107*02a8b425SSebastian Fricke 		  __entry->ctx)
108*02a8b425SSebastian Fricke );
109*02a8b425SSebastian Fricke 
110*02a8b425SSebastian Fricke DEFINE_EVENT(coda_buf_meta_class, coda_bit_queue,
111*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf,
112*02a8b425SSebastian Fricke 		 struct coda_buffer_meta *meta),
113*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf, meta)
114*02a8b425SSebastian Fricke );
115*02a8b425SSebastian Fricke 
116*02a8b425SSebastian Fricke DECLARE_EVENT_CLASS(coda_meta_class,
117*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct coda_buffer_meta *meta),
118*02a8b425SSebastian Fricke 
119*02a8b425SSebastian Fricke 	TP_ARGS(ctx, meta),
120*02a8b425SSebastian Fricke 
121*02a8b425SSebastian Fricke 	TP_STRUCT__entry(
122*02a8b425SSebastian Fricke 		__field(int, minor)
123*02a8b425SSebastian Fricke 		__field(int, start)
124*02a8b425SSebastian Fricke 		__field(int, end)
125*02a8b425SSebastian Fricke 		__field(int, ctx)
126*02a8b425SSebastian Fricke 	),
127*02a8b425SSebastian Fricke 
128*02a8b425SSebastian Fricke 	TP_fast_assign(
129*02a8b425SSebastian Fricke 		__entry->minor = ctx->fh.vdev->minor;
130*02a8b425SSebastian Fricke 		__entry->start = meta ? (meta->start &
131*02a8b425SSebastian Fricke 					 ctx->bitstream_fifo.kfifo.mask) : 0;
132*02a8b425SSebastian Fricke 		__entry->end = meta ? (meta->end &
133*02a8b425SSebastian Fricke 				       ctx->bitstream_fifo.kfifo.mask) : 0;
134*02a8b425SSebastian Fricke 		__entry->ctx = ctx->idx;
135*02a8b425SSebastian Fricke 	),
136*02a8b425SSebastian Fricke 
137*02a8b425SSebastian Fricke 	TP_printk("minor = %d, start = 0x%x, end = 0x%x, ctx = %d",
138*02a8b425SSebastian Fricke 		  __entry->minor, __entry->start, __entry->end, __entry->ctx)
139*02a8b425SSebastian Fricke );
140*02a8b425SSebastian Fricke 
141*02a8b425SSebastian Fricke DEFINE_EVENT(coda_meta_class, coda_dec_pic_run,
142*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct coda_buffer_meta *meta),
143*02a8b425SSebastian Fricke 	TP_ARGS(ctx, meta)
144*02a8b425SSebastian Fricke );
145*02a8b425SSebastian Fricke 
146*02a8b425SSebastian Fricke DEFINE_EVENT(coda_meta_class, coda_dec_pic_done,
147*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct coda_buffer_meta *meta),
148*02a8b425SSebastian Fricke 	TP_ARGS(ctx, meta)
149*02a8b425SSebastian Fricke );
150*02a8b425SSebastian Fricke 
151*02a8b425SSebastian Fricke DEFINE_EVENT(coda_buf_meta_class, coda_dec_rot_done,
152*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf,
153*02a8b425SSebastian Fricke 		 struct coda_buffer_meta *meta),
154*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf, meta)
155*02a8b425SSebastian Fricke );
156*02a8b425SSebastian Fricke 
157*02a8b425SSebastian Fricke DEFINE_EVENT(coda_buf_class, coda_jpeg_run,
158*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf),
159*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf)
160*02a8b425SSebastian Fricke );
161*02a8b425SSebastian Fricke 
162*02a8b425SSebastian Fricke DEFINE_EVENT(coda_buf_class, coda_jpeg_done,
163*02a8b425SSebastian Fricke 	TP_PROTO(struct coda_ctx *ctx, struct vb2_v4l2_buffer *buf),
164*02a8b425SSebastian Fricke 	TP_ARGS(ctx, buf)
165*02a8b425SSebastian Fricke );
166*02a8b425SSebastian Fricke 
167*02a8b425SSebastian Fricke #endif /* __CODA_TRACE_H__ */
168*02a8b425SSebastian Fricke 
169*02a8b425SSebastian Fricke #undef TRACE_INCLUDE_PATH
170*02a8b425SSebastian Fricke #define TRACE_INCLUDE_PATH ../../drivers/media/platform/chips-media/coda
171*02a8b425SSebastian Fricke #undef TRACE_INCLUDE_FILE
172*02a8b425SSebastian Fricke #define TRACE_INCLUDE_FILE trace
173*02a8b425SSebastian Fricke 
174*02a8b425SSebastian Fricke /* This part must be outside protection */
175*02a8b425SSebastian Fricke #include <trace/define_trace.h>
176