1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Copyright (C) 2015-2018 Broadcom */ 3 4 #if !defined(_V3D_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 5 #define _V3D_TRACE_H_ 6 7 #include <linux/stringify.h> 8 #include <linux/types.h> 9 #include <linux/tracepoint.h> 10 11 #undef TRACE_SYSTEM 12 #define TRACE_SYSTEM v3d 13 #define TRACE_INCLUDE_FILE v3d_trace 14 15 TRACE_EVENT(v3d_submit_cl_ioctl, 16 TP_PROTO(struct drm_device *dev, u32 ct1qba, u32 ct1qea), 17 TP_ARGS(dev, ct1qba, ct1qea), 18 19 TP_STRUCT__entry( 20 __field(u32, dev) 21 __field(u32, ct1qba) 22 __field(u32, ct1qea) 23 ), 24 25 TP_fast_assign( 26 __entry->dev = dev->primary->index; 27 __entry->ct1qba = ct1qba; 28 __entry->ct1qea = ct1qea; 29 ), 30 31 TP_printk("dev=%u, RCL 0x%08x..0x%08x", 32 __entry->dev, 33 __entry->ct1qba, 34 __entry->ct1qea) 35 ); 36 37 TRACE_EVENT(v3d_submit_cl, 38 TP_PROTO(struct drm_device *dev, bool is_render, 39 uint64_t seqno, 40 u32 ctnqba, u32 ctnqea), 41 TP_ARGS(dev, is_render, seqno, ctnqba, ctnqea), 42 43 TP_STRUCT__entry( 44 __field(u32, dev) 45 __field(bool, is_render) 46 __field(u64, seqno) 47 __field(u32, ctnqba) 48 __field(u32, ctnqea) 49 ), 50 51 TP_fast_assign( 52 __entry->dev = dev->primary->index; 53 __entry->is_render = is_render; 54 __entry->seqno = seqno; 55 __entry->ctnqba = ctnqba; 56 __entry->ctnqea = ctnqea; 57 ), 58 59 TP_printk("dev=%u, %s, seqno=%llu, 0x%08x..0x%08x", 60 __entry->dev, 61 __entry->is_render ? "RCL" : "BCL", 62 __entry->seqno, 63 __entry->ctnqba, 64 __entry->ctnqea) 65 ); 66 67 TRACE_EVENT(v3d_bcl_irq, 68 TP_PROTO(struct drm_device *dev, 69 uint64_t seqno), 70 TP_ARGS(dev, seqno), 71 72 TP_STRUCT__entry( 73 __field(u32, dev) 74 __field(u64, seqno) 75 ), 76 77 TP_fast_assign( 78 __entry->dev = dev->primary->index; 79 __entry->seqno = seqno; 80 ), 81 82 TP_printk("dev=%u, seqno=%llu", 83 __entry->dev, 84 __entry->seqno) 85 ); 86 87 TRACE_EVENT(v3d_rcl_irq, 88 TP_PROTO(struct drm_device *dev, 89 uint64_t seqno), 90 TP_ARGS(dev, seqno), 91 92 TP_STRUCT__entry( 93 __field(u32, dev) 94 __field(u64, seqno) 95 ), 96 97 TP_fast_assign( 98 __entry->dev = dev->primary->index; 99 __entry->seqno = seqno; 100 ), 101 102 TP_printk("dev=%u, seqno=%llu", 103 __entry->dev, 104 __entry->seqno) 105 ); 106 107 TRACE_EVENT(v3d_tfu_irq, 108 TP_PROTO(struct drm_device *dev, 109 uint64_t seqno), 110 TP_ARGS(dev, seqno), 111 112 TP_STRUCT__entry( 113 __field(u32, dev) 114 __field(u64, seqno) 115 ), 116 117 TP_fast_assign( 118 __entry->dev = dev->primary->index; 119 __entry->seqno = seqno; 120 ), 121 122 TP_printk("dev=%u, seqno=%llu", 123 __entry->dev, 124 __entry->seqno) 125 ); 126 127 TRACE_EVENT(v3d_csd_irq, 128 TP_PROTO(struct drm_device *dev, 129 uint64_t seqno), 130 TP_ARGS(dev, seqno), 131 132 TP_STRUCT__entry( 133 __field(u32, dev) 134 __field(u64, seqno) 135 ), 136 137 TP_fast_assign( 138 __entry->dev = dev->primary->index; 139 __entry->seqno = seqno; 140 ), 141 142 TP_printk("dev=%u, seqno=%llu", 143 __entry->dev, 144 __entry->seqno) 145 ); 146 147 TRACE_EVENT(v3d_submit_tfu_ioctl, 148 TP_PROTO(struct drm_device *dev, u32 iia), 149 TP_ARGS(dev, iia), 150 151 TP_STRUCT__entry( 152 __field(u32, dev) 153 __field(u32, iia) 154 ), 155 156 TP_fast_assign( 157 __entry->dev = dev->primary->index; 158 __entry->iia = iia; 159 ), 160 161 TP_printk("dev=%u, IIA 0x%08x", 162 __entry->dev, 163 __entry->iia) 164 ); 165 166 TRACE_EVENT(v3d_submit_tfu, 167 TP_PROTO(struct drm_device *dev, 168 uint64_t seqno), 169 TP_ARGS(dev, seqno), 170 171 TP_STRUCT__entry( 172 __field(u32, dev) 173 __field(u64, seqno) 174 ), 175 176 TP_fast_assign( 177 __entry->dev = dev->primary->index; 178 __entry->seqno = seqno; 179 ), 180 181 TP_printk("dev=%u, seqno=%llu", 182 __entry->dev, 183 __entry->seqno) 184 ); 185 186 TRACE_EVENT(v3d_submit_csd_ioctl, 187 TP_PROTO(struct drm_device *dev, u32 cfg5, u32 cfg6), 188 TP_ARGS(dev, cfg5, cfg6), 189 190 TP_STRUCT__entry( 191 __field(u32, dev) 192 __field(u32, cfg5) 193 __field(u32, cfg6) 194 ), 195 196 TP_fast_assign( 197 __entry->dev = dev->primary->index; 198 __entry->cfg5 = cfg5; 199 __entry->cfg6 = cfg6; 200 ), 201 202 TP_printk("dev=%u, CFG5 0x%08x, CFG6 0x%08x", 203 __entry->dev, 204 __entry->cfg5, 205 __entry->cfg6) 206 ); 207 208 TRACE_EVENT(v3d_submit_csd, 209 TP_PROTO(struct drm_device *dev, 210 uint64_t seqno), 211 TP_ARGS(dev, seqno), 212 213 TP_STRUCT__entry( 214 __field(u32, dev) 215 __field(u64, seqno) 216 ), 217 218 TP_fast_assign( 219 __entry->dev = dev->primary->index; 220 __entry->seqno = seqno; 221 ), 222 223 TP_printk("dev=%u, seqno=%llu", 224 __entry->dev, 225 __entry->seqno) 226 ); 227 228 TRACE_EVENT(v3d_cache_clean_begin, 229 TP_PROTO(struct drm_device *dev), 230 TP_ARGS(dev), 231 232 TP_STRUCT__entry( 233 __field(u32, dev) 234 ), 235 236 TP_fast_assign( 237 __entry->dev = dev->primary->index; 238 ), 239 240 TP_printk("dev=%u", 241 __entry->dev) 242 ); 243 244 TRACE_EVENT(v3d_cache_clean_end, 245 TP_PROTO(struct drm_device *dev), 246 TP_ARGS(dev), 247 248 TP_STRUCT__entry( 249 __field(u32, dev) 250 ), 251 252 TP_fast_assign( 253 __entry->dev = dev->primary->index; 254 ), 255 256 TP_printk("dev=%u", 257 __entry->dev) 258 ); 259 260 TRACE_EVENT(v3d_reset_begin, 261 TP_PROTO(struct drm_device *dev), 262 TP_ARGS(dev), 263 264 TP_STRUCT__entry( 265 __field(u32, dev) 266 ), 267 268 TP_fast_assign( 269 __entry->dev = dev->primary->index; 270 ), 271 272 TP_printk("dev=%u", 273 __entry->dev) 274 ); 275 276 TRACE_EVENT(v3d_reset_end, 277 TP_PROTO(struct drm_device *dev), 278 TP_ARGS(dev), 279 280 TP_STRUCT__entry( 281 __field(u32, dev) 282 ), 283 284 TP_fast_assign( 285 __entry->dev = dev->primary->index; 286 ), 287 288 TP_printk("dev=%u", 289 __entry->dev) 290 ); 291 292 #endif /* _V3D_TRACE_H_ */ 293 294 /* This part must be outside protection */ 295 #undef TRACE_INCLUDE_PATH 296 #define TRACE_INCLUDE_PATH . 297 #include <trace/define_trace.h> 298