xref: /linux/drivers/rpmsg/qcom_glink_trace.h (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #undef TRACE_SYSTEM
4 #define TRACE_SYSTEM qcom_glink
5 
6 #if !defined(__QCOM_GLINK_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
7 #define __QCOM_GLINK_TRACE_H__
8 
9 #include <linux/tracepoint.h>
10 #include "qcom_glink_native.h"
11 
12 
13 TRACE_EVENT(qcom_glink_cmd_version,
14 	TP_PROTO(const char *remote, unsigned int version, unsigned int features, bool tx),
15 	TP_ARGS(remote, version, features, tx),
16 	TP_STRUCT__entry(
17 		__string(remote, remote)
18 		__field(u32, version)
19 		__field(u32, features)
20 		__field(bool, tx)
21 	),
22 	TP_fast_assign(
23 		__assign_str(remote);
24 		__entry->version = version;
25 		__entry->features = features;
26 		__entry->tx = tx;
27 	),
28 	TP_printk("%s remote: %s version: %u features: %#x",
29 		  __entry->tx ? "tx" : "rx",
30 		  __get_str(remote),
31 		  __entry->version,
32 		  __entry->features
33 	)
34 );
35 #define trace_qcom_glink_cmd_version_tx(...) trace_qcom_glink_cmd_version(__VA_ARGS__, true)
36 #define trace_qcom_glink_cmd_version_rx(...) trace_qcom_glink_cmd_version(__VA_ARGS__, false)
37 
38 TRACE_EVENT(qcom_glink_cmd_version_ack,
39 	TP_PROTO(const char *remote, unsigned int version, unsigned int features, bool tx),
40 	TP_ARGS(remote, version, features, tx),
41 	TP_STRUCT__entry(
42 		__string(remote, remote)
43 		__field(u32, version)
44 		__field(u32, features)
45 		__field(bool, tx)
46 	),
47 	TP_fast_assign(
48 		__assign_str(remote);
49 		__entry->version = version;
50 		__entry->features = features;
51 		__entry->tx = tx;
52 	),
53 	TP_printk("%s remote: %s version: %u features: %#x",
54 		  __entry->tx ? "tx" : "rx",
55 		  __get_str(remote),
56 		  __entry->version,
57 		  __entry->features
58 	)
59 );
60 #define trace_qcom_glink_cmd_version_ack_tx(...) trace_qcom_glink_cmd_version_ack(__VA_ARGS__, true)
61 #define trace_qcom_glink_cmd_version_ack_rx(...) trace_qcom_glink_cmd_version_ack(__VA_ARGS__, false)
62 
63 TRACE_EVENT(qcom_glink_cmd_open,
64 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, bool tx),
65 	TP_ARGS(remote, channel, lcid, rcid, tx),
66 	TP_STRUCT__entry(
67 		__string(remote, remote)
68 		__string(channel, channel)
69 		__field(u16, lcid)
70 		__field(u16, rcid)
71 		__field(bool, tx)
72 	),
73 	TP_fast_assign(
74 		__assign_str(remote);
75 		__assign_str(channel);
76 		__entry->lcid = lcid;
77 		__entry->rcid = rcid;
78 		__entry->tx = tx;
79 	),
80 	TP_printk("%s remote: %s channel: %s[%u/%u]",
81 		  __entry->tx ? "tx" : "rx",
82 		  __get_str(remote),
83 		  __get_str(channel),
84 		  __entry->lcid,
85 		  __entry->rcid
86 	)
87 );
88 #define trace_qcom_glink_cmd_open_tx(...) trace_qcom_glink_cmd_open(__VA_ARGS__, true)
89 #define trace_qcom_glink_cmd_open_rx(...) trace_qcom_glink_cmd_open(__VA_ARGS__, false)
90 
91 TRACE_EVENT(qcom_glink_cmd_close,
92 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, bool tx),
93 	TP_ARGS(remote, channel, lcid, rcid, tx),
94 	TP_STRUCT__entry(
95 		__string(remote, remote)
96 		__string(channel, channel)
97 		__field(u16, lcid)
98 		__field(u16, rcid)
99 		__field(bool, tx)
100 	),
101 	TP_fast_assign(
102 		__assign_str(remote);
103 		__assign_str(channel);
104 		__entry->lcid = lcid;
105 		__entry->rcid = rcid;
106 		__entry->tx = tx;
107 	),
108 	TP_printk("%s remote: %s channel: %s[%u/%u]",
109 		  __entry->tx ? "tx" : "rx",
110 		  __get_str(remote),
111 		  __get_str(channel),
112 		  __entry->lcid,
113 		  __entry->rcid
114 	)
115 );
116 #define trace_qcom_glink_cmd_close_tx(...) trace_qcom_glink_cmd_close(__VA_ARGS__, true)
117 #define trace_qcom_glink_cmd_close_rx(...) trace_qcom_glink_cmd_close(__VA_ARGS__, false)
118 
119 TRACE_EVENT(qcom_glink_cmd_open_ack,
120 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, bool tx),
121 	TP_ARGS(remote, channel, lcid, rcid, tx),
122 	TP_STRUCT__entry(
123 		__string(remote, remote)
124 		__string(channel, channel)
125 		__field(u16, lcid)
126 		__field(u16, rcid)
127 		__field(bool, tx)
128 	),
129 	TP_fast_assign(
130 		__assign_str(remote);
131 		__assign_str(channel);
132 		__entry->lcid = lcid;
133 		__entry->rcid = rcid;
134 		__entry->tx = tx;
135 	),
136 	TP_printk("%s remote: %s channel: %s[%u/%u]",
137 		  __entry->tx ? "tx" : "rx",
138 		  __get_str(remote),
139 		  __get_str(channel),
140 		  __entry->lcid,
141 		  __entry->rcid
142 	)
143 );
144 #define trace_qcom_glink_cmd_open_ack_tx(...) trace_qcom_glink_cmd_open_ack(__VA_ARGS__, true)
145 #define trace_qcom_glink_cmd_open_ack_rx(...) trace_qcom_glink_cmd_open_ack(__VA_ARGS__, false)
146 
147 TRACE_EVENT(qcom_glink_cmd_intent,
148 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, size_t count, size_t size, u32 liid, bool tx),
149 	TP_ARGS(remote, channel, lcid, rcid, count, size, liid, tx),
150 	TP_STRUCT__entry(
151 		__string(remote, remote)
152 		__string(channel, channel)
153 		__field(u16, lcid)
154 		__field(u16, rcid)
155 		__field(u32, count)
156 		__field(u32, size)
157 		__field(u32, liid)
158 		__field(bool, tx)
159 	),
160 	TP_fast_assign(
161 		__assign_str(remote);
162 		__assign_str(channel);
163 		__entry->lcid = lcid;
164 		__entry->rcid = rcid;
165 		__entry->count = count;
166 		__entry->size = size;
167 		__entry->liid = liid;
168 		__entry->tx = tx;
169 	),
170 	TP_printk("%s remote: %s channel: %s[%u/%u] count: %d [size: %d liid: %d]",
171 		  __entry->tx ? "tx" : "rx",
172 		  __get_str(remote),
173 		  __get_str(channel),
174 		  __entry->lcid,
175 		  __entry->rcid,
176 		  __entry->count,
177 		  __entry->size,
178 		  __entry->liid
179 	)
180 );
181 #define trace_qcom_glink_cmd_intent_tx(...) trace_qcom_glink_cmd_intent(__VA_ARGS__, true)
182 #define trace_qcom_glink_cmd_intent_rx(...) trace_qcom_glink_cmd_intent(__VA_ARGS__, false)
183 
184 TRACE_EVENT(qcom_glink_cmd_rx_done,
185 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, u32 iid, bool reuse, bool tx),
186 	TP_ARGS(remote, channel, lcid, rcid, iid, reuse, tx),
187 	TP_STRUCT__entry(
188 		__string(remote, remote)
189 		__string(channel, channel)
190 		__field(u16, lcid)
191 		__field(u16, rcid)
192 		__field(u32, iid)
193 		__field(bool, reuse)
194 		__field(bool, tx)
195 	),
196 	TP_fast_assign(
197 		__assign_str(remote);
198 		__assign_str(channel);
199 		__entry->lcid = lcid;
200 		__entry->rcid = rcid;
201 		__entry->iid = iid;
202 		__entry->reuse = reuse;
203 		__entry->tx = tx;
204 	),
205 	TP_printk("%s remote: %s channel: %s[%u/%u] iid: %d reuse: %d",
206 		  __entry->tx ? "tx" : "rx",
207 		  __get_str(remote),
208 		  __get_str(channel),
209 		  __entry->lcid,
210 		  __entry->rcid,
211 		  __entry->iid,
212 		  __entry->reuse
213 	)
214 );
215 #define trace_qcom_glink_cmd_rx_done_tx(...) trace_qcom_glink_cmd_rx_done(__VA_ARGS__, true)
216 #define trace_qcom_glink_cmd_rx_done_rx(...) trace_qcom_glink_cmd_rx_done(__VA_ARGS__, false)
217 
218 TRACE_EVENT(qcom_glink_cmd_rx_intent_req,
219 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, size_t size, bool tx),
220 	TP_ARGS(remote, channel, lcid, rcid, size, tx),
221 	TP_STRUCT__entry(
222 		__string(remote, remote)
223 		__string(channel, channel)
224 		__field(u16, lcid)
225 		__field(u16, rcid)
226 		__field(u32, size)
227 		__field(bool, tx)
228 	),
229 	TP_fast_assign(
230 		__assign_str(remote);
231 		__assign_str(channel);
232 		__entry->lcid = lcid;
233 		__entry->rcid = rcid;
234 		__entry->size = size;
235 		__entry->tx = tx;
236 	),
237 	TP_printk("%s remote: %s channel: %s[%u/%u] size: %d",
238 		  __entry->tx ? "tx" : "rx",
239 		  __get_str(remote),
240 		  __get_str(channel),
241 		  __entry->lcid,
242 		  __entry->rcid,
243 		  __entry->size
244 	)
245 );
246 #define trace_qcom_glink_cmd_rx_intent_req_tx(...) trace_qcom_glink_cmd_rx_intent_req(__VA_ARGS__, true)
247 #define trace_qcom_glink_cmd_rx_intent_req_rx(...) trace_qcom_glink_cmd_rx_intent_req(__VA_ARGS__, false)
248 
249 TRACE_EVENT(qcom_glink_cmd_rx_intent_req_ack,
250 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, bool granted, bool tx),
251 	TP_ARGS(remote, channel, lcid, rcid, granted, tx),
252 	TP_STRUCT__entry(
253 		__string(remote, remote)
254 		__string(channel, channel)
255 		__field(u16, lcid)
256 		__field(u16, rcid)
257 		__field(bool, granted)
258 		__field(bool, tx)
259 	),
260 	TP_fast_assign(
261 		__assign_str(remote);
262 		__assign_str(channel);
263 		__entry->lcid = lcid;
264 		__entry->rcid = rcid;
265 		__entry->granted = granted;
266 		__entry->tx = tx;
267 	),
268 	TP_printk("%s remote: %s channel: %s[%u/%u] granted: %d",
269 		  __entry->tx ? "tx" : "rx",
270 		  __get_str(remote),
271 		  __get_str(channel),
272 		  __entry->lcid,
273 		  __entry->rcid,
274 		  __entry->granted
275 	)
276 );
277 #define trace_qcom_glink_cmd_rx_intent_req_ack_tx(...) trace_qcom_glink_cmd_rx_intent_req_ack(__VA_ARGS__, true)
278 #define trace_qcom_glink_cmd_rx_intent_req_ack_rx(...) trace_qcom_glink_cmd_rx_intent_req_ack(__VA_ARGS__, false)
279 
280 TRACE_EVENT(qcom_glink_cmd_tx_data,
281 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, u32 iid, u32 chunk_size, u32 left_size, bool cont, bool tx),
282 	TP_ARGS(remote, channel, lcid, rcid, iid, chunk_size, left_size, cont, tx),
283 	TP_STRUCT__entry(
284 		__string(remote, remote)
285 		__string(channel, channel)
286 		__field(u16, lcid)
287 		__field(u16, rcid)
288 		__field(u32, iid)
289 		__field(u32, chunk_size)
290 		__field(u32, left_size)
291 		__field(bool, cont)
292 		__field(bool, tx)
293 	),
294 	TP_fast_assign(
295 		__assign_str(remote);
296 		__assign_str(channel);
297 		__entry->lcid = lcid;
298 		__entry->rcid = rcid;
299 		__entry->iid = iid;
300 		__entry->chunk_size = chunk_size;
301 		__entry->left_size = left_size;
302 		__entry->cont = cont;
303 		__entry->tx = tx;
304 	),
305 	TP_printk("%s remote: %s channel: %s[%u/%u] iid: %d chunk_size: %d left_size: %d cont: %d",
306 		  __entry->tx ? "tx" : "rx",
307 		  __get_str(remote),
308 		  __get_str(channel),
309 		  __entry->lcid,
310 		  __entry->rcid,
311 		  __entry->iid,
312 		  __entry->chunk_size,
313 		  __entry->left_size,
314 		  __entry->cont
315 	)
316 );
317 #define trace_qcom_glink_cmd_tx_data_tx(...) trace_qcom_glink_cmd_tx_data(__VA_ARGS__, true)
318 #define trace_qcom_glink_cmd_tx_data_rx(...) trace_qcom_glink_cmd_tx_data(__VA_ARGS__, false)
319 
320 TRACE_EVENT(qcom_glink_cmd_close_ack,
321 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, bool tx),
322 	TP_ARGS(remote, channel, lcid, rcid, tx),
323 	TP_STRUCT__entry(
324 		__string(remote, remote)
325 		__string(channel, channel)
326 		__field(u16, lcid)
327 		__field(u16, rcid)
328 		__field(bool, tx)
329 	),
330 	TP_fast_assign(
331 		__assign_str(remote);
332 		__assign_str(channel);
333 		__entry->lcid = lcid;
334 		__entry->rcid = rcid;
335 		__entry->tx = tx;
336 	),
337 	TP_printk("%s remote: %s channel: %s[%u/%u]",
338 		  __entry->tx ? "tx" : "rx",
339 		  __get_str(remote),
340 		  __get_str(channel),
341 		  __entry->lcid,
342 		  __entry->rcid
343 	)
344 );
345 #define trace_qcom_glink_cmd_close_ack_tx(...) trace_qcom_glink_cmd_close_ack(__VA_ARGS__, true)
346 #define trace_qcom_glink_cmd_close_ack_rx(...) trace_qcom_glink_cmd_close_ack(__VA_ARGS__, false)
347 
348 TRACE_EVENT(qcom_glink_cmd_read_notif,
349 	TP_PROTO(const char *remote, bool tx),
350 	TP_ARGS(remote, tx),
351 	TP_STRUCT__entry(
352 		__string(remote, remote)
353 		__field(bool, tx)
354 	),
355 	TP_fast_assign(
356 		__assign_str(remote);
357 		__entry->tx = tx;
358 	),
359 	TP_printk("%s remote: %s",
360 		  __entry->tx ? "tx" : "rx",
361 		  __get_str(remote)
362 	)
363 );
364 #define trace_qcom_glink_cmd_read_notif_tx(...) trace_qcom_glink_cmd_read_notif(__VA_ARGS__, true)
365 #define trace_qcom_glink_cmd_read_notif_rx(...) trace_qcom_glink_cmd_read_notif(__VA_ARGS__, false)
366 
367 TRACE_EVENT(qcom_glink_cmd_signal,
368 	TP_PROTO(const char *remote, const char *channel, u16 lcid, u16 rcid, unsigned int signals, bool tx),
369 	TP_ARGS(remote, channel, lcid, rcid, signals, tx),
370 	TP_STRUCT__entry(
371 		__string(remote, remote)
372 		__string(channel, channel)
373 		__field(u16, lcid)
374 		__field(u16, rcid)
375 		__field(u32, signals)
376 		__field(bool, tx)
377 	),
378 	TP_fast_assign(
379 		__assign_str(remote);
380 		__assign_str(channel);
381 		__entry->lcid = lcid;
382 		__entry->rcid = rcid;
383 		__entry->signals = signals;
384 		__entry->tx = tx;
385 	),
386 	TP_printk("%s remote: %s channel: %s[%u/%u] signals: %#x",
387 		  __entry->tx ? "tx" : "rx",
388 		  __get_str(remote),
389 		  __get_str(channel),
390 		  __entry->lcid,
391 		  __entry->rcid,
392 		  __entry->signals
393 	)
394 );
395 #define trace_qcom_glink_cmd_signal_tx(...) trace_qcom_glink_cmd_signal(__VA_ARGS__, true)
396 #define trace_qcom_glink_cmd_signal_rx(...) trace_qcom_glink_cmd_signal(__VA_ARGS__, false)
397 
398 #endif
399 
400 #undef TRACE_INCLUDE_PATH
401 #define TRACE_INCLUDE_PATH .
402 
403 #undef TRACE_INCLUDE_FILE
404 #define TRACE_INCLUDE_FILE qcom_glink_trace
405 
406 #include <trace/define_trace.h>
407