Merge tag 'linux-kselftest-4.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / drivers / usb / typec / ucsi / trace.h
1
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM ucsi
4
5 #if !defined(__UCSI_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define __UCSI_TRACE_H
7
8 #include <linux/tracepoint.h>
9 #include "ucsi.h"
10 #include "debug.h"
11
12 DECLARE_EVENT_CLASS(ucsi_log_ack,
13         TP_PROTO(u8 ack),
14         TP_ARGS(ack),
15         TP_STRUCT__entry(
16                 __field(u8, ack)
17         ),
18         TP_fast_assign(
19                 __entry->ack = ack;
20         ),
21         TP_printk("ACK %s", ucsi_ack_str(__entry->ack))
22 );
23
24 DEFINE_EVENT(ucsi_log_ack, ucsi_ack,
25         TP_PROTO(u8 ack),
26         TP_ARGS(ack)
27 );
28
29 DECLARE_EVENT_CLASS(ucsi_log_control,
30         TP_PROTO(struct ucsi_control *ctrl),
31         TP_ARGS(ctrl),
32         TP_STRUCT__entry(
33                 __field(u64, ctrl)
34         ),
35         TP_fast_assign(
36                 __entry->ctrl = ctrl->raw_cmd;
37         ),
38         TP_printk("control=%08llx (%s)", __entry->ctrl,
39                 ucsi_cmd_str(__entry->ctrl))
40 );
41
42 DEFINE_EVENT(ucsi_log_control, ucsi_command,
43         TP_PROTO(struct ucsi_control *ctrl),
44         TP_ARGS(ctrl)
45 );
46
47 DECLARE_EVENT_CLASS(ucsi_log_command,
48         TP_PROTO(struct ucsi_control *ctrl, int ret),
49         TP_ARGS(ctrl, ret),
50         TP_STRUCT__entry(
51                 __field(u64, ctrl)
52                 __field(int, ret)
53         ),
54         TP_fast_assign(
55                 __entry->ctrl = ctrl->raw_cmd;
56                 __entry->ret = ret;
57         ),
58         TP_printk("%s -> %s (err=%d)", ucsi_cmd_str(__entry->ctrl),
59                 __entry->ret < 0 ? "FAIL" : "OK",
60                 __entry->ret < 0 ? __entry->ret : 0)
61 );
62
63 DEFINE_EVENT(ucsi_log_command, ucsi_run_command,
64         TP_PROTO(struct ucsi_control *ctrl, int ret),
65         TP_ARGS(ctrl, ret)
66 );
67
68 DEFINE_EVENT(ucsi_log_command, ucsi_reset_ppm,
69         TP_PROTO(struct ucsi_control *ctrl, int ret),
70         TP_ARGS(ctrl, ret)
71 );
72
73 DECLARE_EVENT_CLASS(ucsi_log_cci,
74         TP_PROTO(u32 cci),
75         TP_ARGS(cci),
76         TP_STRUCT__entry(
77                 __field(u32, cci)
78         ),
79         TP_fast_assign(
80                 __entry->cci = cci;
81         ),
82         TP_printk("CCI=%08x %s", __entry->cci, ucsi_cci_str(__entry->cci))
83 );
84
85 DEFINE_EVENT(ucsi_log_cci, ucsi_notify,
86         TP_PROTO(u32 cci),
87         TP_ARGS(cci)
88 );
89
90 DECLARE_EVENT_CLASS(ucsi_log_connector_status,
91         TP_PROTO(int port, struct ucsi_connector_status *status),
92         TP_ARGS(port, status),
93         TP_STRUCT__entry(
94                 __field(int, port)
95                 __field(u16, change)
96                 __field(u8, opmode)
97                 __field(u8, connected)
98                 __field(u8, pwr_dir)
99                 __field(u8, partner_flags)
100                 __field(u8, partner_type)
101                 __field(u32, request_data_obj)
102                 __field(u8, bc_status)
103         ),
104         TP_fast_assign(
105                 __entry->port = port - 1;
106                 __entry->change = status->change;
107                 __entry->opmode = status->pwr_op_mode;
108                 __entry->connected = status->connected;
109                 __entry->pwr_dir = status->pwr_dir;
110                 __entry->partner_flags = status->partner_flags;
111                 __entry->partner_type = status->partner_type;
112                 __entry->request_data_obj = status->request_data_obj;
113                 __entry->bc_status = status->bc_status;
114         ),
115         TP_printk("port%d status: change=%04x, opmode=%x, connected=%d, "
116                 "sourcing=%d, partner_flags=%x, partner_type=%x, "
117                 "request_data_obj=%08x, BC status=%x", __entry->port,
118                 __entry->change, __entry->opmode, __entry->connected,
119                 __entry->pwr_dir, __entry->partner_flags, __entry->partner_type,
120                 __entry->request_data_obj, __entry->bc_status)
121 );
122
123 DEFINE_EVENT(ucsi_log_connector_status, ucsi_connector_change,
124         TP_PROTO(int port, struct ucsi_connector_status *status),
125         TP_ARGS(port, status)
126 );
127
128 DEFINE_EVENT(ucsi_log_connector_status, ucsi_register_port,
129         TP_PROTO(int port, struct ucsi_connector_status *status),
130         TP_ARGS(port, status)
131 );
132
133 #endif /* __UCSI_TRACE_H */
134
135 /* This part must be outside protection */
136
137 #undef TRACE_INCLUDE_PATH
138 #define TRACE_INCLUDE_PATH .
139
140 #undef TRACE_INCLUDE_FILE
141 #define TRACE_INCLUDE_FILE trace
142
143 #include <trace/define_trace.h>