root/include/trace/events/host1x.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * include/trace/events/host1x.h
   4  *
   5  * host1x event logging to ftrace.
   6  *
   7  * Copyright (c) 2010-2013, NVIDIA Corporation.
   8  */
   9 
  10 #undef TRACE_SYSTEM
  11 #define TRACE_SYSTEM host1x
  12 
  13 #if !defined(_TRACE_HOST1X_H) || defined(TRACE_HEADER_MULTI_READ)
  14 #define _TRACE_HOST1X_H
  15 
  16 #include <linux/ktime.h>
  17 #include <linux/tracepoint.h>
  18 
  19 struct host1x_bo;
  20 
  21 DECLARE_EVENT_CLASS(host1x,
  22         TP_PROTO(const char *name),
  23         TP_ARGS(name),
  24         TP_STRUCT__entry(__field(const char *, name)),
  25         TP_fast_assign(__entry->name = name;),
  26         TP_printk("name=%s", __entry->name)
  27 );
  28 
  29 DEFINE_EVENT(host1x, host1x_channel_open,
  30         TP_PROTO(const char *name),
  31         TP_ARGS(name)
  32 );
  33 
  34 DEFINE_EVENT(host1x, host1x_channel_release,
  35         TP_PROTO(const char *name),
  36         TP_ARGS(name)
  37 );
  38 
  39 DEFINE_EVENT(host1x, host1x_cdma_begin,
  40         TP_PROTO(const char *name),
  41         TP_ARGS(name)
  42 );
  43 
  44 DEFINE_EVENT(host1x, host1x_cdma_end,
  45         TP_PROTO(const char *name),
  46         TP_ARGS(name)
  47 );
  48 
  49 TRACE_EVENT(host1x_cdma_push,
  50         TP_PROTO(const char *name, u32 op1, u32 op2),
  51 
  52         TP_ARGS(name, op1, op2),
  53 
  54         TP_STRUCT__entry(
  55                 __field(const char *, name)
  56                 __field(u32, op1)
  57                 __field(u32, op2)
  58         ),
  59 
  60         TP_fast_assign(
  61                 __entry->name = name;
  62                 __entry->op1 = op1;
  63                 __entry->op2 = op2;
  64         ),
  65 
  66         TP_printk("name=%s, op1=%08x, op2=%08x",
  67                 __entry->name, __entry->op1, __entry->op2)
  68 );
  69 
  70 TRACE_EVENT(host1x_cdma_push_wide,
  71         TP_PROTO(const char *name, u32 op1, u32 op2, u32 op3, u32 op4),
  72 
  73         TP_ARGS(name, op1, op2, op3, op4),
  74 
  75         TP_STRUCT__entry(
  76                 __field(const char *, name)
  77                 __field(u32, op1)
  78                 __field(u32, op2)
  79                 __field(u32, op3)
  80                 __field(u32, op4)
  81         ),
  82 
  83         TP_fast_assign(
  84                 __entry->name = name;
  85                 __entry->op1 = op1;
  86                 __entry->op2 = op2;
  87                 __entry->op3 = op3;
  88                 __entry->op4 = op4;
  89         ),
  90 
  91         TP_printk("name=%s, op1=%08x, op2=%08x, op3=%08x op4=%08x",
  92                 __entry->name, __entry->op1, __entry->op2, __entry->op3,
  93                 __entry->op4)
  94 );
  95 
  96 TRACE_EVENT(host1x_cdma_push_gather,
  97         TP_PROTO(const char *name, struct host1x_bo *bo,
  98                         u32 words, u32 offset, void *cmdbuf),
  99 
 100         TP_ARGS(name, bo, words, offset, cmdbuf),
 101 
 102         TP_STRUCT__entry(
 103                 __field(const char *, name)
 104                 __field(struct host1x_bo *, bo)
 105                 __field(u32, words)
 106                 __field(u32, offset)
 107                 __field(bool, cmdbuf)
 108                 __dynamic_array(u32, cmdbuf, words)
 109         ),
 110 
 111         TP_fast_assign(
 112                 if (cmdbuf) {
 113                         memcpy(__get_dynamic_array(cmdbuf), cmdbuf+offset,
 114                                         words * sizeof(u32));
 115                 }
 116                 __entry->cmdbuf = cmdbuf;
 117                 __entry->name = name;
 118                 __entry->bo = bo;
 119                 __entry->words = words;
 120                 __entry->offset = offset;
 121         ),
 122 
 123         TP_printk("name=%s, bo=%p, words=%u, offset=%d, contents=[%s]",
 124           __entry->name, __entry->bo,
 125           __entry->words, __entry->offset,
 126           __print_hex(__get_dynamic_array(cmdbuf),
 127                   __entry->cmdbuf ? __entry->words * 4 : 0))
 128 );
 129 
 130 TRACE_EVENT(host1x_channel_submit,
 131         TP_PROTO(const char *name, u32 cmdbufs, u32 relocs, u32 syncpt_id,
 132                  u32 syncpt_incrs),
 133 
 134         TP_ARGS(name, cmdbufs, relocs, syncpt_id, syncpt_incrs),
 135 
 136         TP_STRUCT__entry(
 137                 __field(const char *, name)
 138                 __field(u32, cmdbufs)
 139                 __field(u32, relocs)
 140                 __field(u32, syncpt_id)
 141                 __field(u32, syncpt_incrs)
 142         ),
 143 
 144         TP_fast_assign(
 145                 __entry->name = name;
 146                 __entry->cmdbufs = cmdbufs;
 147                 __entry->relocs = relocs;
 148                 __entry->syncpt_id = syncpt_id;
 149                 __entry->syncpt_incrs = syncpt_incrs;
 150         ),
 151 
 152         TP_printk("name=%s, cmdbufs=%u, relocs=%u, syncpt_id=%u, "
 153                   "syncpt_incrs=%u",
 154                   __entry->name, __entry->cmdbufs, __entry->relocs,
 155                   __entry->syncpt_id, __entry->syncpt_incrs)
 156 );
 157 
 158 TRACE_EVENT(host1x_channel_submitted,
 159         TP_PROTO(const char *name, u32 syncpt_base, u32 syncpt_max),
 160 
 161         TP_ARGS(name, syncpt_base, syncpt_max),
 162 
 163         TP_STRUCT__entry(
 164                 __field(const char *, name)
 165                 __field(u32, syncpt_base)
 166                 __field(u32, syncpt_max)
 167         ),
 168 
 169         TP_fast_assign(
 170                 __entry->name = name;
 171                 __entry->syncpt_base = syncpt_base;
 172                 __entry->syncpt_max = syncpt_max;
 173         ),
 174 
 175         TP_printk("name=%s, syncpt_base=%d, syncpt_max=%d",
 176                 __entry->name, __entry->syncpt_base, __entry->syncpt_max)
 177 );
 178 
 179 TRACE_EVENT(host1x_channel_submit_complete,
 180         TP_PROTO(const char *name, int count, u32 thresh),
 181 
 182         TP_ARGS(name, count, thresh),
 183 
 184         TP_STRUCT__entry(
 185                 __field(const char *, name)
 186                 __field(int, count)
 187                 __field(u32, thresh)
 188         ),
 189 
 190         TP_fast_assign(
 191                 __entry->name = name;
 192                 __entry->count = count;
 193                 __entry->thresh = thresh;
 194         ),
 195 
 196         TP_printk("name=%s, count=%d, thresh=%d",
 197                 __entry->name, __entry->count, __entry->thresh)
 198 );
 199 
 200 TRACE_EVENT(host1x_wait_cdma,
 201         TP_PROTO(const char *name, u32 eventid),
 202 
 203         TP_ARGS(name, eventid),
 204 
 205         TP_STRUCT__entry(
 206                 __field(const char *, name)
 207                 __field(u32, eventid)
 208         ),
 209 
 210         TP_fast_assign(
 211                 __entry->name = name;
 212                 __entry->eventid = eventid;
 213         ),
 214 
 215         TP_printk("name=%s, event=%d", __entry->name, __entry->eventid)
 216 );
 217 
 218 TRACE_EVENT(host1x_syncpt_load_min,
 219         TP_PROTO(u32 id, u32 val),
 220 
 221         TP_ARGS(id, val),
 222 
 223         TP_STRUCT__entry(
 224                 __field(u32, id)
 225                 __field(u32, val)
 226         ),
 227 
 228         TP_fast_assign(
 229                 __entry->id = id;
 230                 __entry->val = val;
 231         ),
 232 
 233         TP_printk("id=%d, val=%d", __entry->id, __entry->val)
 234 );
 235 
 236 TRACE_EVENT(host1x_syncpt_wait_check,
 237         TP_PROTO(struct host1x_bo *bo, u32 offset, u32 syncpt_id, u32 thresh,
 238                  u32 min),
 239 
 240         TP_ARGS(bo, offset, syncpt_id, thresh, min),
 241 
 242         TP_STRUCT__entry(
 243                 __field(struct host1x_bo *, bo)
 244                 __field(u32, offset)
 245                 __field(u32, syncpt_id)
 246                 __field(u32, thresh)
 247                 __field(u32, min)
 248         ),
 249 
 250         TP_fast_assign(
 251                 __entry->bo = bo;
 252                 __entry->offset = offset;
 253                 __entry->syncpt_id = syncpt_id;
 254                 __entry->thresh = thresh;
 255                 __entry->min = min;
 256         ),
 257 
 258         TP_printk("bo=%p, offset=%05x, id=%d, thresh=%d, current=%d",
 259                 __entry->bo, __entry->offset,
 260                 __entry->syncpt_id, __entry->thresh,
 261                 __entry->min)
 262 );
 263 
 264 #endif /*  _TRACE_HOST1X_H */
 265 
 266 /* This part must be outside protection */
 267 #include <trace/define_trace.h>

/* [<][>][^][v][top][bottom][index][help] */