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