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