1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM vb2 4 5 #if !defined(_TRACE_VB2_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_VB2_H 7 8 #include <linux/tracepoint.h> 9 #include <media/videobuf2-core.h> 10 11 DECLARE_EVENT_CLASS(vb2_event_class, 12 TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb), 13 TP_ARGS(q, vb), 14 15 TP_STRUCT__entry( 16 __field(void *, owner) 17 __field(u32, queued_count) 18 __field(int, owned_by_drv_count) 19 __field(u32, index) 20 __field(u32, type) 21 __field(u32, bytesused) 22 __field(u64, timestamp) 23 ), 24 25 TP_fast_assign( 26 __entry->owner = q->owner; 27 __entry->queued_count = q->queued_count; 28 __entry->owned_by_drv_count = 29 atomic_read(&q->owned_by_drv_count); 30 __entry->index = vb->index; 31 __entry->type = vb->type; 32 __entry->bytesused = vb->planes[0].bytesused; 33 __entry->timestamp = vb->timestamp; 34 ), 35 36 TP_printk("owner = %p, queued = %u, owned_by_drv = %d, index = %u, " 37 "type = %u, bytesused = %u, timestamp = %llu", __entry->owner, 38 __entry->queued_count, 39 __entry->owned_by_drv_count, 40 __entry->index, __entry->type, 41 __entry->bytesused, 42 __entry->timestamp 43 ) 44 ) 45 46 DEFINE_EVENT(vb2_event_class, vb2_buf_done, 47 TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb), 48 TP_ARGS(q, vb) 49 ); 50 51 DEFINE_EVENT(vb2_event_class, vb2_buf_queue, 52 TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb), 53 TP_ARGS(q, vb) 54 ); 55 56 DEFINE_EVENT(vb2_event_class, vb2_dqbuf, 57 TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb), 58 TP_ARGS(q, vb) 59 ); 60 61 DEFINE_EVENT(vb2_event_class, vb2_qbuf, 62 TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb), 63 TP_ARGS(q, vb) 64 ); 65 66 #endif /* if !defined(_TRACE_VB2_H) || defined(TRACE_HEADER_MULTI_READ) */ 67 68 /* This part must be outside protection */ 69 #include <trace/define_trace.h> 70