1/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3#undef TRACE_SYSTEM
4#define TRACE_SYSTEM fsi_master_i2cr
5
6#if !defined(_TRACE_FSI_MASTER_I2CR_H) || defined(TRACE_HEADER_MULTI_READ)
7#define _TRACE_FSI_MASTER_I2CR_H
8
9#include <linux/tracepoint.h>
10
11TRACE_EVENT(i2cr_i2c_error,
12 TP_PROTO(const struct i2c_client *client, uint32_t command, int rc),
13 TP_ARGS(client, command, rc),
14 TP_STRUCT__entry(
15 __field(int, bus)
16 __field(int, rc)
17 __array(unsigned char, command, sizeof(uint32_t))
18 __field(unsigned short, addr)
19 ),
20 TP_fast_assign(
21 __entry->bus = client->adapter->nr;
22 __entry->rc = rc;
23 memcpy(__entry->command, &command, sizeof(uint32_t));
24 __entry->addr = client->addr;
25 ),
26 TP_printk("%d-%02x command:{ %*ph } rc:%d", __entry->bus, __entry->addr,
27 (int)sizeof(uint32_t), __entry->command, __entry->rc)
28);
29
30TRACE_EVENT(i2cr_read,
31 TP_PROTO(const struct i2c_client *client, uint32_t command, uint64_t *data),
32 TP_ARGS(client, command, data),
33 TP_STRUCT__entry(
34 __field(int, bus)
35 __array(unsigned char, data, sizeof(uint64_t))
36 __array(unsigned char, command, sizeof(uint32_t))
37 __field(unsigned short, addr)
38 ),
39 TP_fast_assign(
40 __entry->bus = client->adapter->nr;
41 memcpy(__entry->data, data, sizeof(uint64_t));
42 memcpy(__entry->command, &command, sizeof(uint32_t));
43 __entry->addr = client->addr;
44 ),
45 TP_printk("%d-%02x command:{ %*ph } { %*ph }", __entry->bus, __entry->addr,
46 (int)sizeof(uint32_t), __entry->command, (int)sizeof(uint64_t), __entry->data)
47);
48
49TRACE_EVENT(i2cr_status,
50 TP_PROTO(const struct i2c_client *client, uint64_t status),
51 TP_ARGS(client, status),
52 TP_STRUCT__entry(
53 __field(uint64_t, status)
54 __field(int, bus)
55 __field(unsigned short, addr)
56 ),
57 TP_fast_assign(
58 __entry->status = status;
59 __entry->bus = client->adapter->nr;
60 __entry->addr = client->addr;
61 ),
62 TP_printk("%d-%02x %016llx", __entry->bus, __entry->addr, __entry->status)
63);
64
65TRACE_EVENT(i2cr_status_error,
66 TP_PROTO(const struct i2c_client *client, uint64_t status, uint64_t error, uint64_t log),
67 TP_ARGS(client, status, error, log),
68 TP_STRUCT__entry(
69 __field(uint64_t, error)
70 __field(uint64_t, log)
71 __field(uint64_t, status)
72 __field(int, bus)
73 __field(unsigned short, addr)
74 ),
75 TP_fast_assign(
76 __entry->error = error;
77 __entry->log = log;
78 __entry->status = status;
79 __entry->bus = client->adapter->nr;
80 __entry->addr = client->addr;
81 ),
82 TP_printk("%d-%02x status:%016llx error:%016llx log:%016llx", __entry->bus, __entry->addr,
83 __entry->status, __entry->error, __entry->log)
84);
85
86TRACE_EVENT(i2cr_write,
87 TP_PROTO(const struct i2c_client *client, uint32_t command, uint64_t data),
88 TP_ARGS(client, command, data),
89 TP_STRUCT__entry(
90 __field(int, bus)
91 __array(unsigned char, data, sizeof(uint64_t))
92 __array(unsigned char, command, sizeof(uint32_t))
93 __field(unsigned short, addr)
94 ),
95 TP_fast_assign(
96 __entry->bus = client->adapter->nr;
97 memcpy(__entry->data, &data, sizeof(uint64_t));
98 memcpy(__entry->command, &command, sizeof(uint32_t));
99 __entry->addr = client->addr;
100 ),
101 TP_printk("%d-%02x command:{ %*ph } { %*ph }", __entry->bus, __entry->addr,
102 (int)sizeof(uint32_t), __entry->command, (int)sizeof(uint64_t), __entry->data)
103);
104
105#endif
106
107#include <trace/define_trace.h>
108

source code of linux/include/trace/events/fsi_master_i2cr.h