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,
125daf8857SChia-I Wu 	TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr),
135daf8857SChia-I Wu 	TP_ARGS(vq, hdr),
145daf8857SChia-I Wu 	TP_STRUCT__entry(
155daf8857SChia-I Wu 			 __field(int, dev)
165daf8857SChia-I Wu 			 __field(unsigned int, vq)
175daf8857SChia-I Wu 			 __field(const char *, 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)
225daf8857SChia-I Wu 			 ),
235daf8857SChia-I Wu 	TP_fast_assign(
245daf8857SChia-I Wu 		       __entry->dev = vq->vdev->index;
255daf8857SChia-I Wu 		       __entry->vq = vq->index;
265daf8857SChia-I Wu 		       __entry->name = vq->name;
275daf8857SChia-I Wu 		       __entry->type = le32_to_cpu(hdr->type);
285daf8857SChia-I Wu 		       __entry->flags = le32_to_cpu(hdr->flags);
295daf8857SChia-I Wu 		       __entry->fence_id = le64_to_cpu(hdr->fence_id);
305daf8857SChia-I Wu 		       __entry->ctx_id = le32_to_cpu(hdr->ctx_id);
315daf8857SChia-I Wu 		       ),
325daf8857SChia-I Wu 	TP_printk("vdev=%d vq=%u name=%s type=0x%x flags=0x%x fence_id=%llu ctx_id=%u",
335daf8857SChia-I Wu 		  __entry->dev, __entry->vq, __entry->name,
345daf8857SChia-I Wu 		  __entry->type, __entry->flags, __entry->fence_id,
355daf8857SChia-I Wu 		  __entry->ctx_id)
365daf8857SChia-I Wu );
375daf8857SChia-I Wu 
385daf8857SChia-I Wu DEFINE_EVENT(virtio_gpu_cmd, virtio_gpu_cmd_queue,
395daf8857SChia-I Wu 	TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr),
405daf8857SChia-I Wu 	TP_ARGS(vq, hdr)
415daf8857SChia-I Wu );
425daf8857SChia-I Wu 
435daf8857SChia-I Wu DEFINE_EVENT(virtio_gpu_cmd, virtio_gpu_cmd_response,
445daf8857SChia-I Wu 	TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr),
455daf8857SChia-I Wu 	TP_ARGS(vq, hdr)
465daf8857SChia-I Wu );
475daf8857SChia-I Wu 
485daf8857SChia-I Wu #endif
495daf8857SChia-I Wu 
505daf8857SChia-I Wu #undef TRACE_INCLUDE_PATH
515daf8857SChia-I Wu #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/virtio
525daf8857SChia-I Wu #include <trace/define_trace.h>
53