108 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2 3#undef TRACE_SYSTEM4#define TRACE_SYSTEM fsi_master_i2cr5 6#if !defined(_TRACE_FSI_MASTER_I2CR_H) || defined(TRACE_HEADER_MULTI_READ)7#define _TRACE_FSI_MASTER_I2CR_H8 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#endif106 107#include <trace/define_trace.h>108