0001
0002
0003 #undef TRACE_SYSTEM
0004 #define TRACE_SYSTEM fsi
0005
0006 #if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ)
0007 #define _TRACE_FSI_H
0008
0009 #include <linux/tracepoint.h>
0010
0011 TRACE_EVENT(fsi_master_read,
0012 TP_PROTO(const struct fsi_master *master, int link, int id,
0013 uint32_t addr, size_t size),
0014 TP_ARGS(master, link, id, addr, size),
0015 TP_STRUCT__entry(
0016 __field(int, master_idx)
0017 __field(int, link)
0018 __field(int, id)
0019 __field(__u32, addr)
0020 __field(size_t, size)
0021 ),
0022 TP_fast_assign(
0023 __entry->master_idx = master->idx;
0024 __entry->link = link;
0025 __entry->id = id;
0026 __entry->addr = addr;
0027 __entry->size = size;
0028 ),
0029 TP_printk("fsi%d:%02d:%02d %08x[%zu]",
0030 __entry->master_idx,
0031 __entry->link,
0032 __entry->id,
0033 __entry->addr,
0034 __entry->size
0035 )
0036 );
0037
0038 TRACE_EVENT(fsi_master_write,
0039 TP_PROTO(const struct fsi_master *master, int link, int id,
0040 uint32_t addr, size_t size, const void *data),
0041 TP_ARGS(master, link, id, addr, size, data),
0042 TP_STRUCT__entry(
0043 __field(int, master_idx)
0044 __field(int, link)
0045 __field(int, id)
0046 __field(__u32, addr)
0047 __field(size_t, size)
0048 __field(__u32, data)
0049 ),
0050 TP_fast_assign(
0051 __entry->master_idx = master->idx;
0052 __entry->link = link;
0053 __entry->id = id;
0054 __entry->addr = addr;
0055 __entry->size = size;
0056 __entry->data = 0;
0057 memcpy(&__entry->data, data, size);
0058 ),
0059 TP_printk("fsi%d:%02d:%02d %08x[%zu] <= {%*ph}",
0060 __entry->master_idx,
0061 __entry->link,
0062 __entry->id,
0063 __entry->addr,
0064 __entry->size,
0065 (int)__entry->size, &__entry->data
0066 )
0067 );
0068
0069 TRACE_EVENT(fsi_master_rw_result,
0070 TP_PROTO(const struct fsi_master *master, int link, int id,
0071 uint32_t addr, size_t size,
0072 bool write, const void *data, int ret),
0073 TP_ARGS(master, link, id, addr, size, write, data, ret),
0074 TP_STRUCT__entry(
0075 __field(int, master_idx)
0076 __field(int, link)
0077 __field(int, id)
0078 __field(__u32, addr)
0079 __field(size_t, size)
0080 __field(bool, write)
0081 __field(__u32, data)
0082 __field(int, ret)
0083 ),
0084 TP_fast_assign(
0085 __entry->master_idx = master->idx;
0086 __entry->link = link;
0087 __entry->id = id;
0088 __entry->addr = addr;
0089 __entry->size = size;
0090 __entry->write = write;
0091 __entry->data = 0;
0092 __entry->ret = ret;
0093 if (__entry->write || !__entry->ret)
0094 memcpy(&__entry->data, data, size);
0095 ),
0096 TP_printk("fsi%d:%02d:%02d %08x[%zu] %s {%*ph} ret %d",
0097 __entry->master_idx,
0098 __entry->link,
0099 __entry->id,
0100 __entry->addr,
0101 __entry->size,
0102 __entry->write ? "<=" : "=>",
0103 (int)__entry->size, &__entry->data,
0104 __entry->ret
0105 )
0106 );
0107
0108 TRACE_EVENT(fsi_master_break,
0109 TP_PROTO(const struct fsi_master *master, int link),
0110 TP_ARGS(master, link),
0111 TP_STRUCT__entry(
0112 __field(int, master_idx)
0113 __field(int, link)
0114 ),
0115 TP_fast_assign(
0116 __entry->master_idx = master->idx;
0117 __entry->link = link;
0118 ),
0119 TP_printk("fsi%d:%d",
0120 __entry->master_idx,
0121 __entry->link
0122 )
0123 );
0124
0125 TRACE_EVENT(fsi_slave_init,
0126 TP_PROTO(const struct fsi_slave *slave),
0127 TP_ARGS(slave),
0128 TP_STRUCT__entry(
0129 __field(int, master_idx)
0130 __field(int, master_n_links)
0131 __field(int, idx)
0132 __field(int, link)
0133 __field(int, chip_id)
0134 __field(__u32, cfam_id)
0135 __field(__u32, size)
0136 ),
0137 TP_fast_assign(
0138 __entry->master_idx = slave->master->idx;
0139 __entry->master_n_links = slave->master->n_links;
0140 __entry->idx = slave->cdev_idx;
0141 __entry->link = slave->link;
0142 __entry->chip_id = slave->chip_id;
0143 __entry->cfam_id = slave->cfam_id;
0144 __entry->size = slave->size;
0145 ),
0146 TP_printk("fsi%d: idx:%d link:%d/%d cid:%d cfam:%08x %08x",
0147 __entry->master_idx,
0148 __entry->idx,
0149 __entry->link,
0150 __entry->master_n_links,
0151 __entry->chip_id,
0152 __entry->cfam_id,
0153 __entry->size
0154 )
0155 );
0156
0157 TRACE_EVENT(fsi_slave_invalid_cfam,
0158 TP_PROTO(const struct fsi_master *master, int link, uint32_t cfam_id),
0159 TP_ARGS(master, link, cfam_id),
0160 TP_STRUCT__entry(
0161 __field(int, master_idx)
0162 __field(int, master_n_links)
0163 __field(int, link)
0164 __field(__u32, cfam_id)
0165 ),
0166 TP_fast_assign(
0167 __entry->master_idx = master->idx;
0168 __entry->master_n_links = master->n_links;
0169 __entry->link = link;
0170 __entry->cfam_id = cfam_id;
0171 ),
0172 TP_printk("fsi%d: cfam:%08x link:%d/%d",
0173 __entry->master_idx,
0174 __entry->cfam_id,
0175 __entry->link,
0176 __entry->master_n_links
0177 )
0178 );
0179
0180 TRACE_EVENT(fsi_dev_init,
0181 TP_PROTO(const struct fsi_device *dev),
0182 TP_ARGS(dev),
0183 TP_STRUCT__entry(
0184 __field(int, master_idx)
0185 __field(int, link)
0186 __field(int, type)
0187 __field(int, unit)
0188 __field(int, version)
0189 __field(__u32, addr)
0190 __field(__u32, size)
0191 ),
0192 TP_fast_assign(
0193 __entry->master_idx = dev->slave->master->idx;
0194 __entry->link = dev->slave->link;
0195 __entry->type = dev->engine_type;
0196 __entry->unit = dev->unit;
0197 __entry->version = dev->version;
0198 __entry->addr = dev->addr;
0199 __entry->size = dev->size;
0200 ),
0201 TP_printk("fsi%d: slv%d: t:%02x u:%02x v:%02x %08x@%08x",
0202 __entry->master_idx,
0203 __entry->link,
0204 __entry->type,
0205 __entry->unit,
0206 __entry->version,
0207 __entry->size,
0208 __entry->addr
0209 )
0210 );
0211
0212 #endif
0213
0214 #include <trace/define_trace.h>