199ee7facSDave Airlie #if !defined(_RADEON_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
299ee7facSDave Airlie #define _RADEON_TRACE_H_
399ee7facSDave Airlie 
499ee7facSDave Airlie #include <linux/stringify.h>
599ee7facSDave Airlie #include <linux/types.h>
699ee7facSDave Airlie #include <linux/tracepoint.h>
799ee7facSDave Airlie 
899ee7facSDave Airlie #include <drm/drmP.h>
999ee7facSDave Airlie 
1099ee7facSDave Airlie #undef TRACE_SYSTEM
1199ee7facSDave Airlie #define TRACE_SYSTEM radeon
1299ee7facSDave Airlie #define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
1399ee7facSDave Airlie #define TRACE_INCLUDE_FILE radeon_trace
1499ee7facSDave Airlie 
1599ee7facSDave Airlie TRACE_EVENT(radeon_bo_create,
1699ee7facSDave Airlie 	    TP_PROTO(struct radeon_bo *bo),
1799ee7facSDave Airlie 	    TP_ARGS(bo),
1899ee7facSDave Airlie 	    TP_STRUCT__entry(
1999ee7facSDave Airlie 			     __field(struct radeon_bo *, bo)
2099ee7facSDave Airlie 			     __field(u32, pages)
2199ee7facSDave Airlie 			     ),
2299ee7facSDave Airlie 
2399ee7facSDave Airlie 	    TP_fast_assign(
2499ee7facSDave Airlie 			   __entry->bo = bo;
2599ee7facSDave Airlie 			   __entry->pages = bo->tbo.num_pages;
2699ee7facSDave Airlie 			   ),
2799ee7facSDave Airlie 	    TP_printk("bo=%p, pages=%u", __entry->bo, __entry->pages)
2899ee7facSDave Airlie );
2999ee7facSDave Airlie 
3099ee7facSDave Airlie DECLARE_EVENT_CLASS(radeon_fence_request,
3199ee7facSDave Airlie 
3299ee7facSDave Airlie 	    TP_PROTO(struct drm_device *dev, u32 seqno),
3399ee7facSDave Airlie 
3499ee7facSDave Airlie 	    TP_ARGS(dev, seqno),
3599ee7facSDave Airlie 
3699ee7facSDave Airlie 	    TP_STRUCT__entry(
3799ee7facSDave Airlie 			     __field(u32, dev)
3899ee7facSDave Airlie 			     __field(u32, seqno)
3999ee7facSDave Airlie 			     ),
4099ee7facSDave Airlie 
4199ee7facSDave Airlie 	    TP_fast_assign(
4299ee7facSDave Airlie 			   __entry->dev = dev->primary->index;
4399ee7facSDave Airlie 			   __entry->seqno = seqno;
4499ee7facSDave Airlie 			   ),
4599ee7facSDave Airlie 
4699ee7facSDave Airlie 	    TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
4799ee7facSDave Airlie );
4899ee7facSDave Airlie 
4999ee7facSDave Airlie DEFINE_EVENT(radeon_fence_request, radeon_fence_emit,
5099ee7facSDave Airlie 
5199ee7facSDave Airlie 	    TP_PROTO(struct drm_device *dev, u32 seqno),
5299ee7facSDave Airlie 
5399ee7facSDave Airlie 	    TP_ARGS(dev, seqno)
5499ee7facSDave Airlie );
5599ee7facSDave Airlie 
5699ee7facSDave Airlie DEFINE_EVENT(radeon_fence_request, radeon_fence_retire,
5799ee7facSDave Airlie 
5899ee7facSDave Airlie 	    TP_PROTO(struct drm_device *dev, u32 seqno),
5999ee7facSDave Airlie 
6099ee7facSDave Airlie 	    TP_ARGS(dev, seqno)
6199ee7facSDave Airlie );
6299ee7facSDave Airlie 
6399ee7facSDave Airlie DEFINE_EVENT(radeon_fence_request, radeon_fence_wait_begin,
6499ee7facSDave Airlie 
6599ee7facSDave Airlie 	    TP_PROTO(struct drm_device *dev, u32 seqno),
6699ee7facSDave Airlie 
6799ee7facSDave Airlie 	    TP_ARGS(dev, seqno)
6899ee7facSDave Airlie );
6999ee7facSDave Airlie 
7099ee7facSDave Airlie DEFINE_EVENT(radeon_fence_request, radeon_fence_wait_end,
7199ee7facSDave Airlie 
7299ee7facSDave Airlie 	    TP_PROTO(struct drm_device *dev, u32 seqno),
7399ee7facSDave Airlie 
7499ee7facSDave Airlie 	    TP_ARGS(dev, seqno)
7599ee7facSDave Airlie );
7699ee7facSDave Airlie 
7799ee7facSDave Airlie #endif
7899ee7facSDave Airlie 
7999ee7facSDave Airlie /* This part must be outside protection */
8099ee7facSDave Airlie #undef TRACE_INCLUDE_PATH
8199ee7facSDave Airlie #define TRACE_INCLUDE_PATH .
8299ee7facSDave Airlie #include <trace/define_trace.h>
83