162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#if !defined(_DRM_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 362306a36Sopenharmony_ci#define _DRM_TRACE_H_ 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/stringify.h> 662306a36Sopenharmony_ci#include <linux/types.h> 762306a36Sopenharmony_ci#include <linux/tracepoint.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_cistruct drm_file; 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#undef TRACE_SYSTEM 1262306a36Sopenharmony_ci#define TRACE_SYSTEM drm 1362306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE drm_trace 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciTRACE_EVENT(drm_vblank_event, 1662306a36Sopenharmony_ci TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec), 1762306a36Sopenharmony_ci TP_ARGS(crtc, seq, time, high_prec), 1862306a36Sopenharmony_ci TP_STRUCT__entry( 1962306a36Sopenharmony_ci __field(int, crtc) 2062306a36Sopenharmony_ci __field(unsigned int, seq) 2162306a36Sopenharmony_ci __field(ktime_t, time) 2262306a36Sopenharmony_ci __field(bool, high_prec) 2362306a36Sopenharmony_ci ), 2462306a36Sopenharmony_ci TP_fast_assign( 2562306a36Sopenharmony_ci __entry->crtc = crtc; 2662306a36Sopenharmony_ci __entry->seq = seq; 2762306a36Sopenharmony_ci __entry->time = time; 2862306a36Sopenharmony_ci __entry->high_prec = high_prec; 2962306a36Sopenharmony_ci ), 3062306a36Sopenharmony_ci TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s", 3162306a36Sopenharmony_ci __entry->crtc, __entry->seq, __entry->time, 3262306a36Sopenharmony_ci __entry->high_prec ? "true" : "false") 3362306a36Sopenharmony_ci); 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciTRACE_EVENT(drm_vblank_event_queued, 3662306a36Sopenharmony_ci TP_PROTO(struct drm_file *file, int crtc, unsigned int seq), 3762306a36Sopenharmony_ci TP_ARGS(file, crtc, seq), 3862306a36Sopenharmony_ci TP_STRUCT__entry( 3962306a36Sopenharmony_ci __field(struct drm_file *, file) 4062306a36Sopenharmony_ci __field(int, crtc) 4162306a36Sopenharmony_ci __field(unsigned int, seq) 4262306a36Sopenharmony_ci ), 4362306a36Sopenharmony_ci TP_fast_assign( 4462306a36Sopenharmony_ci __entry->file = file; 4562306a36Sopenharmony_ci __entry->crtc = crtc; 4662306a36Sopenharmony_ci __entry->seq = seq; 4762306a36Sopenharmony_ci ), 4862306a36Sopenharmony_ci TP_printk("file=%p, crtc=%d, seq=%u", __entry->file, __entry->crtc, \ 4962306a36Sopenharmony_ci __entry->seq) 5062306a36Sopenharmony_ci); 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciTRACE_EVENT(drm_vblank_event_delivered, 5362306a36Sopenharmony_ci TP_PROTO(struct drm_file *file, int crtc, unsigned int seq), 5462306a36Sopenharmony_ci TP_ARGS(file, crtc, seq), 5562306a36Sopenharmony_ci TP_STRUCT__entry( 5662306a36Sopenharmony_ci __field(struct drm_file *, file) 5762306a36Sopenharmony_ci __field(int, crtc) 5862306a36Sopenharmony_ci __field(unsigned int, seq) 5962306a36Sopenharmony_ci ), 6062306a36Sopenharmony_ci TP_fast_assign( 6162306a36Sopenharmony_ci __entry->file = file; 6262306a36Sopenharmony_ci __entry->crtc = crtc; 6362306a36Sopenharmony_ci __entry->seq = seq; 6462306a36Sopenharmony_ci ), 6562306a36Sopenharmony_ci TP_printk("file=%p, crtc=%d, seq=%u", __entry->file, __entry->crtc, \ 6662306a36Sopenharmony_ci __entry->seq) 6762306a36Sopenharmony_ci); 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci#endif /* _DRM_TRACE_H_ */ 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci/* This part must be outside protection */ 7262306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 7362306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm 7462306a36Sopenharmony_ci#include <trace/define_trace.h> 75