Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* _TRACE_FSI_H */
0213 
0214 #include <trace/define_trace.h>