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