0001
0002 #if !defined(_DRM_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
0003 #define _DRM_TRACE_H_
0004
0005 #include <linux/stringify.h>
0006 #include <linux/types.h>
0007 #include <linux/tracepoint.h>
0008
0009 struct drm_file;
0010
0011 #undef TRACE_SYSTEM
0012 #define TRACE_SYSTEM drm
0013 #define TRACE_INCLUDE_FILE drm_trace
0014
0015 TRACE_EVENT(drm_vblank_event,
0016 TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
0017 TP_ARGS(crtc, seq, time, high_prec),
0018 TP_STRUCT__entry(
0019 __field(int, crtc)
0020 __field(unsigned int, seq)
0021 __field(ktime_t, time)
0022 __field(bool, high_prec)
0023 ),
0024 TP_fast_assign(
0025 __entry->crtc = crtc;
0026 __entry->seq = seq;
0027 __entry->time = time;
0028 __entry->high_prec = high_prec;
0029 ),
0030 TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
0031 __entry->crtc, __entry->seq, __entry->time,
0032 __entry->high_prec ? "true" : "false")
0033 );
0034
0035 TRACE_EVENT(drm_vblank_event_queued,
0036 TP_PROTO(struct drm_file *file, int crtc, unsigned int seq),
0037 TP_ARGS(file, crtc, seq),
0038 TP_STRUCT__entry(
0039 __field(struct drm_file *, file)
0040 __field(int, crtc)
0041 __field(unsigned int, seq)
0042 ),
0043 TP_fast_assign(
0044 __entry->file = file;
0045 __entry->crtc = crtc;
0046 __entry->seq = seq;
0047 ),
0048 TP_printk("file=%p, crtc=%d, seq=%u", __entry->file, __entry->crtc, \
0049 __entry->seq)
0050 );
0051
0052 TRACE_EVENT(drm_vblank_event_delivered,
0053 TP_PROTO(struct drm_file *file, int crtc, unsigned int seq),
0054 TP_ARGS(file, crtc, seq),
0055 TP_STRUCT__entry(
0056 __field(struct drm_file *, file)
0057 __field(int, crtc)
0058 __field(unsigned int, seq)
0059 ),
0060 TP_fast_assign(
0061 __entry->file = file;
0062 __entry->crtc = crtc;
0063 __entry->seq = seq;
0064 ),
0065 TP_printk("file=%p, crtc=%d, seq=%u", __entry->file, __entry->crtc, \
0066 __entry->seq)
0067 );
0068
0069 #endif
0070
0071
0072 #undef TRACE_INCLUDE_PATH
0073 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm
0074 #include <trace/define_trace.h>