246 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2 3#undef TRACE_SYSTEM4#define TRACE_SYSTEM fsi5 6#if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ)7#define _TRACE_FSI_H8 9#include <linux/tracepoint.h>10 11TRACE_EVENT(fsi_master_read,12 TP_PROTO(const struct fsi_master *master, int link, int id,13 uint32_t addr, size_t size),14 TP_ARGS(master, link, id, addr, size),15 TP_STRUCT__entry(16 __field(int, master_idx)17 __field(int, link)18 __field(int, id)19 __field(__u32, addr)20 __field(size_t, size)21 ),22 TP_fast_assign(23 __entry->master_idx = master->idx;24 __entry->link = link;25 __entry->id = id;26 __entry->addr = addr;27 __entry->size = size;28 ),29 TP_printk("fsi%d:%02d:%02d %08x[%zu]",30 __entry->master_idx,31 __entry->link,32 __entry->id,33 __entry->addr,34 __entry->size35 )36);37 38TRACE_EVENT(fsi_master_write,39 TP_PROTO(const struct fsi_master *master, int link, int id,40 uint32_t addr, size_t size, const void *data),41 TP_ARGS(master, link, id, addr, size, data),42 TP_STRUCT__entry(43 __field(int, master_idx)44 __field(int, link)45 __field(int, id)46 __field(__u32, addr)47 __field(size_t, size)48 __field(__u32, data)49 ),50 TP_fast_assign(51 __entry->master_idx = master->idx;52 __entry->link = link;53 __entry->id = id;54 __entry->addr = addr;55 __entry->size = size;56 __entry->data = 0;57 memcpy(&__entry->data, data, size);58 ),59 TP_printk("fsi%d:%02d:%02d %08x[%zu] <= {%*ph}",60 __entry->master_idx,61 __entry->link,62 __entry->id,63 __entry->addr,64 __entry->size,65 (int)__entry->size, &__entry->data66 )67);68 69TRACE_EVENT(fsi_master_rw_result,70 TP_PROTO(const struct fsi_master *master, int link, int id,71 uint32_t addr, size_t size,72 bool write, const void *data, int ret),73 TP_ARGS(master, link, id, addr, size, write, data, ret),74 TP_STRUCT__entry(75 __field(int, master_idx)76 __field(int, link)77 __field(int, id)78 __field(__u32, addr)79 __field(size_t, size)80 __field(bool, write)81 __field(__u32, data)82 __field(int, ret)83 ),84 TP_fast_assign(85 __entry->master_idx = master->idx;86 __entry->link = link;87 __entry->id = id;88 __entry->addr = addr;89 __entry->size = size;90 __entry->write = write;91 __entry->data = 0;92 __entry->ret = ret;93 if (__entry->write || !__entry->ret)94 memcpy(&__entry->data, data, size);95 ),96 TP_printk("fsi%d:%02d:%02d %08x[%zu] %s {%*ph} ret %d",97 __entry->master_idx,98 __entry->link,99 __entry->id,100 __entry->addr,101 __entry->size,102 __entry->write ? "<=" : "=>",103 (int)__entry->size, &__entry->data,104 __entry->ret105 )106);107 108TRACE_EVENT(fsi_master_break,109 TP_PROTO(const struct fsi_master *master, int link),110 TP_ARGS(master, link),111 TP_STRUCT__entry(112 __field(int, master_idx)113 __field(int, link)114 ),115 TP_fast_assign(116 __entry->master_idx = master->idx;117 __entry->link = link;118 ),119 TP_printk("fsi%d:%d",120 __entry->master_idx,121 __entry->link122 )123);124 125TRACE_EVENT(fsi_master_scan,126 TP_PROTO(const struct fsi_master *master, bool scan),127 TP_ARGS(master, scan),128 TP_STRUCT__entry(129 __field(int, master_idx)130 __field(int, n_links)131 __field(bool, scan)132 ),133 TP_fast_assign(134 __entry->master_idx = master->idx;135 __entry->n_links = master->n_links;136 __entry->scan = scan;137 ),138 TP_printk("fsi%d (%d links) %s", __entry->master_idx, __entry->n_links,139 __entry->scan ? "scan" : "unscan")140);141 142TRACE_EVENT(fsi_master_unregister,143 TP_PROTO(const struct fsi_master *master),144 TP_ARGS(master),145 TP_STRUCT__entry(146 __field(int, master_idx)147 __field(int, n_links)148 ),149 TP_fast_assign(150 __entry->master_idx = master->idx;151 __entry->n_links = master->n_links;152 ),153 TP_printk("fsi%d (%d links)", __entry->master_idx, __entry->n_links)154);155 156TRACE_EVENT(fsi_slave_init,157 TP_PROTO(const struct fsi_slave *slave),158 TP_ARGS(slave),159 TP_STRUCT__entry(160 __field(int, master_idx)161 __field(int, master_n_links)162 __field(int, idx)163 __field(int, link)164 __field(int, chip_id)165 __field(__u32, cfam_id)166 __field(__u32, size)167 ),168 TP_fast_assign(169 __entry->master_idx = slave->master->idx;170 __entry->master_n_links = slave->master->n_links;171 __entry->idx = slave->cdev_idx;172 __entry->link = slave->link;173 __entry->chip_id = slave->chip_id;174 __entry->cfam_id = slave->cfam_id;175 __entry->size = slave->size;176 ),177 TP_printk("fsi%d: idx:%d link:%d/%d cid:%d cfam:%08x %08x",178 __entry->master_idx,179 __entry->idx,180 __entry->link,181 __entry->master_n_links,182 __entry->chip_id,183 __entry->cfam_id,184 __entry->size185 )186);187 188TRACE_EVENT(fsi_slave_invalid_cfam,189 TP_PROTO(const struct fsi_master *master, int link, uint32_t cfam_id),190 TP_ARGS(master, link, cfam_id),191 TP_STRUCT__entry(192 __field(int, master_idx)193 __field(int, master_n_links)194 __field(int, link)195 __field(__u32, cfam_id)196 ),197 TP_fast_assign(198 __entry->master_idx = master->idx;199 __entry->master_n_links = master->n_links;200 __entry->link = link;201 __entry->cfam_id = cfam_id;202 ),203 TP_printk("fsi%d: cfam:%08x link:%d/%d",204 __entry->master_idx,205 __entry->cfam_id,206 __entry->link,207 __entry->master_n_links208 )209);210 211TRACE_EVENT(fsi_dev_init,212 TP_PROTO(const struct fsi_device *dev),213 TP_ARGS(dev),214 TP_STRUCT__entry(215 __field(int, master_idx)216 __field(int, link)217 __field(int, type)218 __field(int, unit)219 __field(int, version)220 __field(__u32, addr)221 __field(__u32, size)222 ),223 TP_fast_assign(224 __entry->master_idx = dev->slave->master->idx;225 __entry->link = dev->slave->link;226 __entry->type = dev->engine_type;227 __entry->unit = dev->unit;228 __entry->version = dev->version;229 __entry->addr = dev->addr;230 __entry->size = dev->size;231 ),232 TP_printk("fsi%d: slv%d: t:%02x u:%02x v:%02x %08x@%08x",233 __entry->master_idx,234 __entry->link,235 __entry->type,236 __entry->unit,237 __entry->version,238 __entry->size,239 __entry->addr240 )241);242 243#endif /* _TRACE_FSI_H */244 245#include <trace/define_trace.h>246