xref: /openbmc/linux/drivers/soc/qcom/trace-rpmh.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1fc087fe5SLina Iyer /* SPDX-License-Identifier: GPL-2.0 */
2fc087fe5SLina Iyer /*
3fc087fe5SLina Iyer  * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
4fc087fe5SLina Iyer  */
5fc087fe5SLina Iyer 
6fc087fe5SLina Iyer #if !defined(_TRACE_RPMH_H) || defined(TRACE_HEADER_MULTI_READ)
7fc087fe5SLina Iyer #define _TRACE_RPMH_H
8fc087fe5SLina Iyer 
9fc087fe5SLina Iyer #undef TRACE_SYSTEM
10fc087fe5SLina Iyer #define TRACE_SYSTEM rpmh
11fc087fe5SLina Iyer 
12fc087fe5SLina Iyer #include <linux/tracepoint.h>
13fc087fe5SLina Iyer #include "rpmh-internal.h"
14fc087fe5SLina Iyer 
15fc087fe5SLina Iyer TRACE_EVENT(rpmh_tx_done,
16fc087fe5SLina Iyer 
17323dc2dcSAbel Vesa 	TP_PROTO(struct rsc_drv *d, int m, const struct tcs_request *r),
18fc087fe5SLina Iyer 
19323dc2dcSAbel Vesa 	TP_ARGS(d, m, r),
20fc087fe5SLina Iyer 
21fc087fe5SLina Iyer 	TP_STRUCT__entry(
22fc087fe5SLina Iyer 			 __string(name, d->name)
23fc087fe5SLina Iyer 			 __field(int, m)
24fc087fe5SLina Iyer 			 __field(u32, addr)
25fc087fe5SLina Iyer 			 __field(u32, data)
26fc087fe5SLina Iyer 	),
27fc087fe5SLina Iyer 
28fc087fe5SLina Iyer 	TP_fast_assign(
29fc087fe5SLina Iyer 		       __assign_str(name, d->name);
30fc087fe5SLina Iyer 		       __entry->m = m;
31fc087fe5SLina Iyer 		       __entry->addr = r->cmds[0].addr;
32fc087fe5SLina Iyer 		       __entry->data = r->cmds[0].data;
33fc087fe5SLina Iyer 	),
34fc087fe5SLina Iyer 
35323dc2dcSAbel Vesa 	TP_printk("%s: ack: tcs-m: %d addr: %#x data: %#x",
36323dc2dcSAbel Vesa 		  __get_str(name), __entry->m, __entry->addr, __entry->data)
37fc087fe5SLina Iyer );
38fc087fe5SLina Iyer 
39fc087fe5SLina Iyer TRACE_EVENT(rpmh_send_msg,
40fc087fe5SLina Iyer 
41*1b06d8caSBjorn Andersson 	TP_PROTO(struct rsc_drv *d, int m, enum rpmh_state state, int n, u32 h,
42fc087fe5SLina Iyer 		 const struct tcs_cmd *c),
43fc087fe5SLina Iyer 
44*1b06d8caSBjorn Andersson 	TP_ARGS(d, m, state, n, h, c),
45fc087fe5SLina Iyer 
46fc087fe5SLina Iyer 	TP_STRUCT__entry(
47fc087fe5SLina Iyer 			 __string(name, d->name)
48fc087fe5SLina Iyer 			 __field(int, m)
49*1b06d8caSBjorn Andersson 			 __field(u32, state)
50fc087fe5SLina Iyer 			 __field(int, n)
51fc087fe5SLina Iyer 			 __field(u32, hdr)
52fc087fe5SLina Iyer 			 __field(u32, addr)
53fc087fe5SLina Iyer 			 __field(u32, data)
54fc087fe5SLina Iyer 			 __field(bool, wait)
55fc087fe5SLina Iyer 	),
56fc087fe5SLina Iyer 
57fc087fe5SLina Iyer 	TP_fast_assign(
58fc087fe5SLina Iyer 		       __assign_str(name, d->name);
59fc087fe5SLina Iyer 		       __entry->m = m;
60*1b06d8caSBjorn Andersson 		       __entry->state = state;
61fc087fe5SLina Iyer 		       __entry->n = n;
62fc087fe5SLina Iyer 		       __entry->hdr = h;
63fc087fe5SLina Iyer 		       __entry->addr = c->addr;
64fc087fe5SLina Iyer 		       __entry->data = c->data;
65fc087fe5SLina Iyer 		       __entry->wait = c->wait;
66fc087fe5SLina Iyer 	),
67fc087fe5SLina Iyer 
68*1b06d8caSBjorn Andersson 	TP_printk("%s: tcs(m): %d [%s] cmd(n): %d msgid: %#x addr: %#x data: %#x complete: %d",
69*1b06d8caSBjorn Andersson 		  __get_str(name), __entry->m,
70*1b06d8caSBjorn Andersson 		  __print_symbolic(__entry->state,
71*1b06d8caSBjorn Andersson 				   { RPMH_SLEEP_STATE, "sleep" },
72*1b06d8caSBjorn Andersson 				   { RPMH_WAKE_ONLY_STATE, "wake" },
73*1b06d8caSBjorn Andersson 				   { RPMH_ACTIVE_ONLY_STATE, "active" }),
74*1b06d8caSBjorn Andersson 		  __entry->n,
75*1b06d8caSBjorn Andersson 		  __entry->hdr,
76fc087fe5SLina Iyer 		  __entry->addr, __entry->data, __entry->wait)
77fc087fe5SLina Iyer );
78fc087fe5SLina Iyer 
79fc087fe5SLina Iyer #endif /* _TRACE_RPMH_H */
80fc087fe5SLina Iyer 
81fc087fe5SLina Iyer #undef TRACE_INCLUDE_PATH
82fc087fe5SLina Iyer #define TRACE_INCLUDE_PATH .
83fc087fe5SLina Iyer 
84fc087fe5SLina Iyer #undef TRACE_INCLUDE_FILE
85fc087fe5SLina Iyer #define TRACE_INCLUDE_FILE trace-rpmh
86fc087fe5SLina Iyer 
87fc087fe5SLina Iyer #include <trace/define_trace.h>
88