1/* SPDX-License-Identifier: GPL-2.0 */
2#if !defined(_DRM_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
3#define _DRM_TRACE_H_
4
5#include <linux/stringify.h>
6#include <linux/types.h>
7#include <linux/tracepoint.h>
8
9struct drm_file;
10
11#undef TRACE_SYSTEM
12#define TRACE_SYSTEM drm
13#define TRACE_INCLUDE_FILE drm_trace
14
15TRACE_EVENT(drm_vblank_event,
16	    TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
17	    TP_ARGS(crtc, seq, time, high_prec),
18	    TP_STRUCT__entry(
19		    __field(int, crtc)
20		    __field(unsigned int, seq)
21		    __field(ktime_t, time)
22		    __field(bool, high_prec)
23		    ),
24	    TP_fast_assign(
25		    __entry->crtc = crtc;
26		    __entry->seq = seq;
27		    __entry->time = time;
28		    __entry->high_prec = high_prec;
29			),
30	    TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
31			__entry->crtc, __entry->seq, __entry->time,
32			__entry->high_prec ? "true" : "false")
33);
34
35TRACE_EVENT(drm_vblank_event_queued,
36	    TP_PROTO(struct drm_file *file, int crtc, unsigned int seq),
37	    TP_ARGS(file, crtc, seq),
38	    TP_STRUCT__entry(
39		    __field(struct drm_file *, file)
40		    __field(int, crtc)
41		    __field(unsigned int, seq)
42		    ),
43	    TP_fast_assign(
44		    __entry->file = file;
45		    __entry->crtc = crtc;
46		    __entry->seq = seq;
47		    ),
48	    TP_printk("file=%p, crtc=%d, seq=%u", __entry->file, __entry->crtc, \
49		      __entry->seq)
50);
51
52TRACE_EVENT(drm_vblank_event_delivered,
53	    TP_PROTO(struct drm_file *file, int crtc, unsigned int seq),
54	    TP_ARGS(file, crtc, seq),
55	    TP_STRUCT__entry(
56		    __field(struct drm_file *, file)
57		    __field(int, crtc)
58		    __field(unsigned int, seq)
59		    ),
60	    TP_fast_assign(
61		    __entry->file = file;
62		    __entry->crtc = crtc;
63		    __entry->seq = seq;
64		    ),
65	    TP_printk("file=%p, crtc=%d, seq=%u", __entry->file, __entry->crtc, \
66		      __entry->seq)
67);
68
69#endif /* _DRM_TRACE_H_ */
70
71/* This part must be outside protection */
72#undef TRACE_INCLUDE_PATH
73#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm
74#include <trace/define_trace.h>
75