15daf8857SChia-I Wu /* SPDX-License-Identifier: GPL-2.0 */
25daf8857SChia-I Wu #if !defined(_VIRTGPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
35daf8857SChia-I Wu #define _VIRTGPU_TRACE_H_
45daf8857SChia-I Wu 
55daf8857SChia-I Wu #include <linux/tracepoint.h>
65daf8857SChia-I Wu 
75daf8857SChia-I Wu #undef TRACE_SYSTEM
85daf8857SChia-I Wu #define TRACE_SYSTEM virtio_gpu
95daf8857SChia-I Wu #define TRACE_INCLUDE_FILE virtgpu_trace
105daf8857SChia-I Wu 
115daf8857SChia-I Wu DECLARE_EVENT_CLASS(virtio_gpu_cmd,
12*2591939eSRob Clark 	TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr, u32 seqno),
13*2591939eSRob Clark 	TP_ARGS(vq, hdr, seqno),
145daf8857SChia-I Wu 	TP_STRUCT__entry(
155daf8857SChia-I Wu 			 __field(int, dev)
165daf8857SChia-I Wu 			 __field(unsigned int, vq)
17*2591939eSRob Clark 			 __string(name, vq->name)
185daf8857SChia-I Wu 			 __field(u32, type)
195daf8857SChia-I Wu 			 __field(u32, flags)
205daf8857SChia-I Wu 			 __field(u64, fence_id)
215daf8857SChia-I Wu 			 __field(u32, ctx_id)
22*2591939eSRob Clark 			 __field(u32, num_free)
23*2591939eSRob Clark 			 __field(u32, seqno)
245daf8857SChia-I Wu 			 ),
255daf8857SChia-I Wu 	TP_fast_assign(
265daf8857SChia-I Wu 		       __entry->dev = vq->vdev->index;
275daf8857SChia-I Wu 		       __entry->vq = vq->index;
28*2591939eSRob Clark 		       __assign_str(name, vq->name);
295daf8857SChia-I Wu 		       __entry->type = le32_to_cpu(hdr->type);
305daf8857SChia-I Wu 		       __entry->flags = le32_to_cpu(hdr->flags);
315daf8857SChia-I Wu 		       __entry->fence_id = le64_to_cpu(hdr->fence_id);
325daf8857SChia-I Wu 		       __entry->ctx_id = le32_to_cpu(hdr->ctx_id);
33*2591939eSRob Clark 		       __entry->num_free = vq->num_free;
34*2591939eSRob Clark 		       __entry->seqno = seqno;
355daf8857SChia-I Wu 		       ),
36*2591939eSRob Clark 	TP_printk("vdev=%d vq=%u name=%s type=0x%x flags=0x%x fence_id=%llu ctx_id=%u num_free=%u seqno=%u",
37*2591939eSRob Clark 		  __entry->dev, __entry->vq, __get_str(name),
385daf8857SChia-I Wu 		  __entry->type, __entry->flags, __entry->fence_id,
39*2591939eSRob Clark 		  __entry->ctx_id, __entry->num_free, __entry->seqno)
405daf8857SChia-I Wu );
415daf8857SChia-I Wu 
425daf8857SChia-I Wu DEFINE_EVENT(virtio_gpu_cmd, virtio_gpu_cmd_queue,
43*2591939eSRob Clark 	TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr, u32 seqno),
44*2591939eSRob Clark 	TP_ARGS(vq, hdr, seqno)
455daf8857SChia-I Wu );
465daf8857SChia-I Wu 
475daf8857SChia-I Wu DEFINE_EVENT(virtio_gpu_cmd, virtio_gpu_cmd_response,
48*2591939eSRob Clark 	TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr, u32 seqno),
49*2591939eSRob Clark 	TP_ARGS(vq, hdr, seqno)
505daf8857SChia-I Wu );
515daf8857SChia-I Wu 
525daf8857SChia-I Wu #endif
535daf8857SChia-I Wu 
545daf8857SChia-I Wu #undef TRACE_INCLUDE_PATH
555daf8857SChia-I Wu #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/virtio
565daf8857SChia-I Wu #include <trace/define_trace.h>
57