0001
0002
0003
0004
0005
0006 #if !defined(_VC4_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
0007 #define _VC4_TRACE_H_
0008
0009 #include <linux/stringify.h>
0010 #include <linux/types.h>
0011 #include <linux/tracepoint.h>
0012
0013 #undef TRACE_SYSTEM
0014 #define TRACE_SYSTEM vc4
0015 #define TRACE_INCLUDE_FILE vc4_trace
0016
0017 TRACE_EVENT(vc4_wait_for_seqno_begin,
0018 TP_PROTO(struct drm_device *dev, uint64_t seqno, uint64_t timeout),
0019 TP_ARGS(dev, seqno, timeout),
0020
0021 TP_STRUCT__entry(
0022 __field(u32, dev)
0023 __field(u64, seqno)
0024 __field(u64, timeout)
0025 ),
0026
0027 TP_fast_assign(
0028 __entry->dev = dev->primary->index;
0029 __entry->seqno = seqno;
0030 __entry->timeout = timeout;
0031 ),
0032
0033 TP_printk("dev=%u, seqno=%llu, timeout=%llu",
0034 __entry->dev, __entry->seqno, __entry->timeout)
0035 );
0036
0037 TRACE_EVENT(vc4_wait_for_seqno_end,
0038 TP_PROTO(struct drm_device *dev, uint64_t seqno),
0039 TP_ARGS(dev, seqno),
0040
0041 TP_STRUCT__entry(
0042 __field(u32, dev)
0043 __field(u64, seqno)
0044 ),
0045
0046 TP_fast_assign(
0047 __entry->dev = dev->primary->index;
0048 __entry->seqno = seqno;
0049 ),
0050
0051 TP_printk("dev=%u, seqno=%llu",
0052 __entry->dev, __entry->seqno)
0053 );
0054
0055 TRACE_EVENT(vc4_submit_cl_ioctl,
0056 TP_PROTO(struct drm_device *dev, u32 bin_cl_size, u32 shader_rec_size, u32 bo_count),
0057 TP_ARGS(dev, bin_cl_size, shader_rec_size, bo_count),
0058
0059 TP_STRUCT__entry(
0060 __field(u32, dev)
0061 __field(u32, bin_cl_size)
0062 __field(u32, shader_rec_size)
0063 __field(u32, bo_count)
0064 ),
0065
0066 TP_fast_assign(
0067 __entry->dev = dev->primary->index;
0068 __entry->bin_cl_size = bin_cl_size;
0069 __entry->shader_rec_size = shader_rec_size;
0070 __entry->bo_count = bo_count;
0071 ),
0072
0073 TP_printk("dev=%u, bin_cl_size=%u, shader_rec_size=%u, bo_count=%u",
0074 __entry->dev,
0075 __entry->bin_cl_size,
0076 __entry->shader_rec_size,
0077 __entry->bo_count)
0078 );
0079
0080 TRACE_EVENT(vc4_submit_cl,
0081 TP_PROTO(struct drm_device *dev, bool is_render,
0082 uint64_t seqno,
0083 u32 ctnqba, u32 ctnqea),
0084 TP_ARGS(dev, is_render, seqno, ctnqba, ctnqea),
0085
0086 TP_STRUCT__entry(
0087 __field(u32, dev)
0088 __field(bool, is_render)
0089 __field(u64, seqno)
0090 __field(u32, ctnqba)
0091 __field(u32, ctnqea)
0092 ),
0093
0094 TP_fast_assign(
0095 __entry->dev = dev->primary->index;
0096 __entry->is_render = is_render;
0097 __entry->seqno = seqno;
0098 __entry->ctnqba = ctnqba;
0099 __entry->ctnqea = ctnqea;
0100 ),
0101
0102 TP_printk("dev=%u, %s, seqno=%llu, 0x%08x..0x%08x",
0103 __entry->dev,
0104 __entry->is_render ? "RCL" : "BCL",
0105 __entry->seqno,
0106 __entry->ctnqba,
0107 __entry->ctnqea)
0108 );
0109
0110 TRACE_EVENT(vc4_bcl_end_irq,
0111 TP_PROTO(struct drm_device *dev,
0112 uint64_t seqno),
0113 TP_ARGS(dev, seqno),
0114
0115 TP_STRUCT__entry(
0116 __field(u32, dev)
0117 __field(u64, seqno)
0118 ),
0119
0120 TP_fast_assign(
0121 __entry->dev = dev->primary->index;
0122 __entry->seqno = seqno;
0123 ),
0124
0125 TP_printk("dev=%u, seqno=%llu",
0126 __entry->dev,
0127 __entry->seqno)
0128 );
0129
0130 TRACE_EVENT(vc4_rcl_end_irq,
0131 TP_PROTO(struct drm_device *dev,
0132 uint64_t seqno),
0133 TP_ARGS(dev, seqno),
0134
0135 TP_STRUCT__entry(
0136 __field(u32, dev)
0137 __field(u64, seqno)
0138 ),
0139
0140 TP_fast_assign(
0141 __entry->dev = dev->primary->index;
0142 __entry->seqno = seqno;
0143 ),
0144
0145 TP_printk("dev=%u, seqno=%llu",
0146 __entry->dev,
0147 __entry->seqno)
0148 );
0149
0150 #endif
0151
0152
0153 #undef TRACE_INCLUDE_PATH
0154 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4
0155 #include <trace/define_trace.h>