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_submit_cpu_ioctl, 229 TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type), 230 TP_ARGS(dev, job_type), 231 232 TP_STRUCT__entry( 233 __field(u32, dev) 234 __field(enum v3d_cpu_job_type, job_type) 235 ), 236 237 TP_fast_assign( 238 __entry->dev = dev->primary->index; 239 __entry->job_type = job_type; 240 ), 241 242 TP_printk("dev=%u, job_type=%d", 243 __entry->dev, 244 __entry->job_type) 245 ); 246 247 TRACE_EVENT(v3d_cpu_job_begin, 248 TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type), 249 TP_ARGS(dev, job_type), 250 251 TP_STRUCT__entry( 252 __field(u32, dev) 253 __field(enum v3d_cpu_job_type, job_type) 254 ), 255 256 TP_fast_assign( 257 __entry->dev = dev->primary->index; 258 __entry->job_type = job_type; 259 ), 260 261 TP_printk("dev=%u, job_type=%d", 262 __entry->dev, 263 __entry->job_type) 264 ); 265 266 TRACE_EVENT(v3d_cpu_job_end, 267 TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type), 268 TP_ARGS(dev, job_type), 269 270 TP_STRUCT__entry( 271 __field(u32, dev) 272 __field(enum v3d_cpu_job_type, job_type) 273 ), 274 275 TP_fast_assign( 276 __entry->dev = dev->primary->index; 277 __entry->job_type = job_type; 278 ), 279 280 TP_printk("dev=%u, job_type=%d", 281 __entry->dev, 282 __entry->job_type) 283 ); 284 285 TRACE_EVENT(v3d_cache_clean_begin, 286 TP_PROTO(struct drm_device *dev), 287 TP_ARGS(dev), 288 289 TP_STRUCT__entry( 290 __field(u32, dev) 291 ), 292 293 TP_fast_assign( 294 __entry->dev = dev->primary->index; 295 ), 296 297 TP_printk("dev=%u", 298 __entry->dev) 299 ); 300 301 TRACE_EVENT(v3d_cache_clean_end, 302 TP_PROTO(struct drm_device *dev), 303 TP_ARGS(dev), 304 305 TP_STRUCT__entry( 306 __field(u32, dev) 307 ), 308 309 TP_fast_assign( 310 __entry->dev = dev->primary->index; 311 ), 312 313 TP_printk("dev=%u", 314 __entry->dev) 315 ); 316 317 TRACE_EVENT(v3d_reset_begin, 318 TP_PROTO(struct drm_device *dev), 319 TP_ARGS(dev), 320 321 TP_STRUCT__entry( 322 __field(u32, dev) 323 ), 324 325 TP_fast_assign( 326 __entry->dev = dev->primary->index; 327 ), 328 329 TP_printk("dev=%u", 330 __entry->dev) 331 ); 332 333 TRACE_EVENT(v3d_reset_end, 334 TP_PROTO(struct drm_device *dev), 335 TP_ARGS(dev), 336 337 TP_STRUCT__entry( 338 __field(u32, dev) 339 ), 340 341 TP_fast_assign( 342 __entry->dev = dev->primary->index; 343 ), 344 345 TP_printk("dev=%u", 346 __entry->dev) 347 ); 348 349 #endif /* _V3D_TRACE_H_ */ 350 351 /* This part must be outside protection */ 352 #undef TRACE_INCLUDE_PATH 353 #define TRACE_INCLUDE_PATH . 354 #include <trace/define_trace.h> 355