355 lines · c
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_SYSTEM12#define TRACE_SYSTEM v3d13#define TRACE_INCLUDE_FILE v3d_trace14 15TRACE_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 37TRACE_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 67TRACE_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 87TRACE_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 107TRACE_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 127TRACE_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 147TRACE_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 166TRACE_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 186TRACE_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 208TRACE_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 228TRACE_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 247TRACE_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 266TRACE_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 285TRACE_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 301TRACE_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 317TRACE_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 333TRACE_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_PATH353#define TRACE_INCLUDE_PATH .354#include <trace/define_trace.h>355