1*66433b05SJeremy Kerr 2*66433b05SJeremy Kerr #undef TRACE_SYSTEM 3*66433b05SJeremy Kerr #define TRACE_SYSTEM fsi 4*66433b05SJeremy Kerr 5*66433b05SJeremy Kerr #if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ) 6*66433b05SJeremy Kerr #define _TRACE_FSI_H 7*66433b05SJeremy Kerr 8*66433b05SJeremy Kerr #include <linux/tracepoint.h> 9*66433b05SJeremy Kerr 10*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_read, 11*66433b05SJeremy Kerr TP_PROTO(const struct fsi_master *master, int link, int id, 12*66433b05SJeremy Kerr uint32_t addr, size_t size), 13*66433b05SJeremy Kerr TP_ARGS(master, link, id, addr, size), 14*66433b05SJeremy Kerr TP_STRUCT__entry( 15*66433b05SJeremy Kerr __field(int, master_idx) 16*66433b05SJeremy Kerr __field(int, link) 17*66433b05SJeremy Kerr __field(int, id) 18*66433b05SJeremy Kerr __field(__u32, addr) 19*66433b05SJeremy Kerr __field(size_t, size) 20*66433b05SJeremy Kerr ), 21*66433b05SJeremy Kerr TP_fast_assign( 22*66433b05SJeremy Kerr __entry->master_idx = master->idx; 23*66433b05SJeremy Kerr __entry->link = link; 24*66433b05SJeremy Kerr __entry->id = id; 25*66433b05SJeremy Kerr __entry->addr = addr; 26*66433b05SJeremy Kerr __entry->size = size; 27*66433b05SJeremy Kerr ), 28*66433b05SJeremy Kerr TP_printk("fsi%d:%02d:%02d %08x[%zd]", 29*66433b05SJeremy Kerr __entry->master_idx, 30*66433b05SJeremy Kerr __entry->link, 31*66433b05SJeremy Kerr __entry->id, 32*66433b05SJeremy Kerr __entry->addr, 33*66433b05SJeremy Kerr __entry->size 34*66433b05SJeremy Kerr ) 35*66433b05SJeremy Kerr ); 36*66433b05SJeremy Kerr 37*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_write, 38*66433b05SJeremy Kerr TP_PROTO(const struct fsi_master *master, int link, int id, 39*66433b05SJeremy Kerr uint32_t addr, size_t size, const void *data), 40*66433b05SJeremy Kerr TP_ARGS(master, link, id, addr, size, data), 41*66433b05SJeremy Kerr TP_STRUCT__entry( 42*66433b05SJeremy Kerr __field(int, master_idx) 43*66433b05SJeremy Kerr __field(int, link) 44*66433b05SJeremy Kerr __field(int, id) 45*66433b05SJeremy Kerr __field(__u32, addr) 46*66433b05SJeremy Kerr __field(size_t, size) 47*66433b05SJeremy Kerr __field(__u32, data) 48*66433b05SJeremy Kerr ), 49*66433b05SJeremy Kerr TP_fast_assign( 50*66433b05SJeremy Kerr __entry->master_idx = master->idx; 51*66433b05SJeremy Kerr __entry->link = link; 52*66433b05SJeremy Kerr __entry->id = id; 53*66433b05SJeremy Kerr __entry->addr = addr; 54*66433b05SJeremy Kerr __entry->size = size; 55*66433b05SJeremy Kerr __entry->data = 0; 56*66433b05SJeremy Kerr memcpy(&__entry->data, data, size); 57*66433b05SJeremy Kerr ), 58*66433b05SJeremy Kerr TP_printk("fsi%d:%02d:%02d %08x[%zd] <= {%*ph}", 59*66433b05SJeremy Kerr __entry->master_idx, 60*66433b05SJeremy Kerr __entry->link, 61*66433b05SJeremy Kerr __entry->id, 62*66433b05SJeremy Kerr __entry->addr, 63*66433b05SJeremy Kerr __entry->size, 64*66433b05SJeremy Kerr (int)__entry->size, &__entry->data 65*66433b05SJeremy Kerr ) 66*66433b05SJeremy Kerr ); 67*66433b05SJeremy Kerr 68*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_rw_result, 69*66433b05SJeremy Kerr TP_PROTO(const struct fsi_master *master, int link, int id, 70*66433b05SJeremy Kerr uint32_t addr, size_t size, 71*66433b05SJeremy Kerr bool write, const void *data, int ret), 72*66433b05SJeremy Kerr TP_ARGS(master, link, id, addr, size, write, data, ret), 73*66433b05SJeremy Kerr TP_STRUCT__entry( 74*66433b05SJeremy Kerr __field(int, master_idx) 75*66433b05SJeremy Kerr __field(int, link) 76*66433b05SJeremy Kerr __field(int, id) 77*66433b05SJeremy Kerr __field(__u32, addr) 78*66433b05SJeremy Kerr __field(size_t, size) 79*66433b05SJeremy Kerr __field(bool, write) 80*66433b05SJeremy Kerr __field(__u32, data) 81*66433b05SJeremy Kerr __field(int, ret) 82*66433b05SJeremy Kerr ), 83*66433b05SJeremy Kerr TP_fast_assign( 84*66433b05SJeremy Kerr __entry->master_idx = master->idx; 85*66433b05SJeremy Kerr __entry->link = link; 86*66433b05SJeremy Kerr __entry->id = id; 87*66433b05SJeremy Kerr __entry->addr = addr; 88*66433b05SJeremy Kerr __entry->size = size; 89*66433b05SJeremy Kerr __entry->write = write; 90*66433b05SJeremy Kerr __entry->data = 0; 91*66433b05SJeremy Kerr __entry->ret = ret; 92*66433b05SJeremy Kerr if (__entry->write || !__entry->ret) 93*66433b05SJeremy Kerr memcpy(&__entry->data, data, size); 94*66433b05SJeremy Kerr ), 95*66433b05SJeremy Kerr TP_printk("fsi%d:%02d:%02d %08x[%zd] %s {%*ph} ret %d", 96*66433b05SJeremy Kerr __entry->master_idx, 97*66433b05SJeremy Kerr __entry->link, 98*66433b05SJeremy Kerr __entry->id, 99*66433b05SJeremy Kerr __entry->addr, 100*66433b05SJeremy Kerr __entry->size, 101*66433b05SJeremy Kerr __entry->write ? "<=" : "=>", 102*66433b05SJeremy Kerr (int)__entry->size, &__entry->data, 103*66433b05SJeremy Kerr __entry->ret 104*66433b05SJeremy Kerr ) 105*66433b05SJeremy Kerr ); 106*66433b05SJeremy Kerr 107*66433b05SJeremy Kerr TRACE_EVENT(fsi_master_break, 108*66433b05SJeremy Kerr TP_PROTO(const struct fsi_master *master, int link), 109*66433b05SJeremy Kerr TP_ARGS(master, link), 110*66433b05SJeremy Kerr TP_STRUCT__entry( 111*66433b05SJeremy Kerr __field(int, master_idx) 112*66433b05SJeremy Kerr __field(int, link) 113*66433b05SJeremy Kerr ), 114*66433b05SJeremy Kerr TP_fast_assign( 115*66433b05SJeremy Kerr __entry->master_idx = master->idx; 116*66433b05SJeremy Kerr __entry->link = link; 117*66433b05SJeremy Kerr ), 118*66433b05SJeremy Kerr TP_printk("fsi%d:%d", 119*66433b05SJeremy Kerr __entry->master_idx, 120*66433b05SJeremy Kerr __entry->link 121*66433b05SJeremy Kerr ) 122*66433b05SJeremy Kerr ); 123*66433b05SJeremy Kerr 124*66433b05SJeremy Kerr 125*66433b05SJeremy Kerr #endif /* _TRACE_FSI_H */ 126*66433b05SJeremy Kerr 127*66433b05SJeremy Kerr #include <trace/define_trace.h> 128