brintos

brintos / linux-shallow public Read only

0
0
Text · 5.5 KiB · 1ba84b7 Raw
268 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * include/trace/events/host1x.h4 *5 * host1x event logging to ftrace.6 *7 * Copyright (c) 2010-2013, NVIDIA Corporation.8 */9 10#undef TRACE_SYSTEM11#define TRACE_SYSTEM host1x12 13#if !defined(_TRACE_HOST1X_H) || defined(TRACE_HEADER_MULTI_READ)14#define _TRACE_HOST1X_H15 16#include <linux/ktime.h>17#include <linux/tracepoint.h>18 19struct host1x_bo;20 21DECLARE_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 29DEFINE_EVENT(host1x, host1x_channel_open,30	TP_PROTO(const char *name),31	TP_ARGS(name)32);33 34DEFINE_EVENT(host1x, host1x_channel_release,35	TP_PROTO(const char *name),36	TP_ARGS(name)37);38 39DEFINE_EVENT(host1x, host1x_cdma_begin,40	TP_PROTO(const char *name),41	TP_ARGS(name)42);43 44DEFINE_EVENT(host1x, host1x_cdma_end,45	TP_PROTO(const char *name),46	TP_ARGS(name)47);48 49TRACE_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 70TRACE_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 96TRACE_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 130TRACE_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 158TRACE_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 179TRACE_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 200TRACE_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 218TRACE_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 236TRACE_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>268