1ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#if !defined(_DRM_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
2ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#define _DRM_TRACE_H_
3ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
4ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#include <linux/stringify.h>
5ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#include <linux/types.h>
6ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#include <linux/tracepoint.h>
7ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
8ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#undef TRACE_SYSTEM
9ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#define TRACE_SYSTEM drm
10ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
11ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#define TRACE_INCLUDE_FILE drm_trace
12ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
13ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse BarnesTRACE_EVENT(drm_vblank_event,
14b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_PROTO(int crtc, unsigned int seq),
15b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_ARGS(crtc, seq),
16b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_STRUCT__entry(
17b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(int, crtc)
18b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(unsigned int, seq)
19b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    ),
20b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_fast_assign(
21b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->crtc = crtc;
22b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->seq = seq;
23b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    ),
2404274cd058193cefc22f1ebda1e634d96cb59fa5Seung-Woo Kim	    TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
25b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes);
26ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
27b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse BarnesTRACE_EVENT(drm_vblank_event_queued,
28b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_PROTO(pid_t pid, int crtc, unsigned int seq),
29b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_ARGS(pid, crtc, seq),
30b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_STRUCT__entry(
31b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(pid_t, pid)
32b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(int, crtc)
33b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(unsigned int, seq)
34b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    ),
35b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_fast_assign(
36b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->pid = pid;
37b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->crtc = crtc;
38b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->seq = seq;
39b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    ),
4004274cd058193cefc22f1ebda1e634d96cb59fa5Seung-Woo Kim	    TP_printk("pid=%d, crtc=%d, seq=%u", __entry->pid, __entry->crtc, \
41b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		      __entry->seq)
42b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes);
43ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
44b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse BarnesTRACE_EVENT(drm_vblank_event_delivered,
45b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_PROTO(pid_t pid, int crtc, unsigned int seq),
46b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_ARGS(pid, crtc, seq),
47b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_STRUCT__entry(
48b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(pid_t, pid)
49b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(int, crtc)
50b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __field(unsigned int, seq)
51b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    ),
52b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes	    TP_fast_assign(
53b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->pid = pid;
54b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->crtc = crtc;
55b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    __entry->seq = seq;
56b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		    ),
5704274cd058193cefc22f1ebda1e634d96cb59fa5Seung-Woo Kim	    TP_printk("pid=%d, crtc=%d, seq=%u", __entry->pid, __entry->crtc, \
58b9c2c9ae882f058084e13e339925dbf8d2d20271Jesse Barnes		      __entry->seq)
59ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes);
60ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
61ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#endif /* _DRM_TRACE_H_ */
62ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes
63ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes/* This part must be outside protection */
64ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#undef TRACE_INCLUDE_PATH
65ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#define TRACE_INCLUDE_PATH .
66ac2874b980e05ed7a4ea8fed7b0a92428b51ce58Jesse Barnes#include <trace/define_trace.h>
67