18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2015 Broadcom
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#if !defined(_VC4_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
78c2ecf20Sopenharmony_ci#define _VC4_TRACE_H_
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include <linux/stringify.h>
108c2ecf20Sopenharmony_ci#include <linux/types.h>
118c2ecf20Sopenharmony_ci#include <linux/tracepoint.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM
148c2ecf20Sopenharmony_ci#define TRACE_SYSTEM vc4
158c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE vc4_trace
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciTRACE_EVENT(vc4_wait_for_seqno_begin,
188c2ecf20Sopenharmony_ci	    TP_PROTO(struct drm_device *dev, uint64_t seqno, uint64_t timeout),
198c2ecf20Sopenharmony_ci	    TP_ARGS(dev, seqno, timeout),
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
228c2ecf20Sopenharmony_ci			     __field(u32, dev)
238c2ecf20Sopenharmony_ci			     __field(u64, seqno)
248c2ecf20Sopenharmony_ci			     __field(u64, timeout)
258c2ecf20Sopenharmony_ci			     ),
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	    TP_fast_assign(
288c2ecf20Sopenharmony_ci			   __entry->dev = dev->primary->index;
298c2ecf20Sopenharmony_ci			   __entry->seqno = seqno;
308c2ecf20Sopenharmony_ci			   __entry->timeout = timeout;
318c2ecf20Sopenharmony_ci			   ),
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci	    TP_printk("dev=%u, seqno=%llu, timeout=%llu",
348c2ecf20Sopenharmony_ci		      __entry->dev, __entry->seqno, __entry->timeout)
358c2ecf20Sopenharmony_ci);
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciTRACE_EVENT(vc4_wait_for_seqno_end,
388c2ecf20Sopenharmony_ci	    TP_PROTO(struct drm_device *dev, uint64_t seqno),
398c2ecf20Sopenharmony_ci	    TP_ARGS(dev, seqno),
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
428c2ecf20Sopenharmony_ci			     __field(u32, dev)
438c2ecf20Sopenharmony_ci			     __field(u64, seqno)
448c2ecf20Sopenharmony_ci			     ),
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	    TP_fast_assign(
478c2ecf20Sopenharmony_ci			   __entry->dev = dev->primary->index;
488c2ecf20Sopenharmony_ci			   __entry->seqno = seqno;
498c2ecf20Sopenharmony_ci			   ),
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci	    TP_printk("dev=%u, seqno=%llu",
528c2ecf20Sopenharmony_ci		      __entry->dev, __entry->seqno)
538c2ecf20Sopenharmony_ci);
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci#endif /* _VC4_TRACE_H_ */
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci/* This part must be outside protection */
588c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH
598c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4
608c2ecf20Sopenharmony_ci#include <trace/define_trace.h>
61