1*6a794a27SBenjamin Herrenschmidt 2*6a794a27SBenjamin Herrenschmidt #undef TRACE_SYSTEM 3*6a794a27SBenjamin Herrenschmidt #define TRACE_SYSTEM fsi_master_ast_cf 4*6a794a27SBenjamin Herrenschmidt 5*6a794a27SBenjamin Herrenschmidt #if !defined(_TRACE_FSI_MASTER_ACF_H) || defined(TRACE_HEADER_MULTI_READ) 6*6a794a27SBenjamin Herrenschmidt #define _TRACE_FSI_MASTER_ACF_H 7*6a794a27SBenjamin Herrenschmidt 8*6a794a27SBenjamin Herrenschmidt #include <linux/tracepoint.h> 9*6a794a27SBenjamin Herrenschmidt 10*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_copro_command, 11*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, uint32_t op), 12*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, op), 13*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 14*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 15*6a794a27SBenjamin Herrenschmidt __field(uint32_t, op) 16*6a794a27SBenjamin Herrenschmidt ), 17*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 18*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 19*6a794a27SBenjamin Herrenschmidt __entry->op = op; 20*6a794a27SBenjamin Herrenschmidt ), 21*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d command %08x", 22*6a794a27SBenjamin Herrenschmidt __entry->master_idx, __entry->op 23*6a794a27SBenjamin Herrenschmidt ) 24*6a794a27SBenjamin Herrenschmidt ); 25*6a794a27SBenjamin Herrenschmidt 26*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_send_request, 27*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, const struct fsi_msg *cmd, u8 rbits), 28*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, cmd, rbits), 29*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 30*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 31*6a794a27SBenjamin Herrenschmidt __field(uint64_t, msg) 32*6a794a27SBenjamin Herrenschmidt __field(u8, bits) 33*6a794a27SBenjamin Herrenschmidt __field(u8, rbits) 34*6a794a27SBenjamin Herrenschmidt ), 35*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 36*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 37*6a794a27SBenjamin Herrenschmidt __entry->msg = cmd->msg; 38*6a794a27SBenjamin Herrenschmidt __entry->bits = cmd->bits; 39*6a794a27SBenjamin Herrenschmidt __entry->rbits = rbits; 40*6a794a27SBenjamin Herrenschmidt ), 41*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d cmd: %016llx/%d/%d", 42*6a794a27SBenjamin Herrenschmidt __entry->master_idx, (unsigned long long)__entry->msg, 43*6a794a27SBenjamin Herrenschmidt __entry->bits, __entry->rbits 44*6a794a27SBenjamin Herrenschmidt ) 45*6a794a27SBenjamin Herrenschmidt ); 46*6a794a27SBenjamin Herrenschmidt 47*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_copro_response, 48*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, u8 rtag, u8 rcrc, __be32 rdata, bool crc_ok), 49*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, rtag, rcrc, rdata, crc_ok), 50*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 51*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 52*6a794a27SBenjamin Herrenschmidt __field(u8, rtag) 53*6a794a27SBenjamin Herrenschmidt __field(u8, rcrc) 54*6a794a27SBenjamin Herrenschmidt __field(u32, rdata) 55*6a794a27SBenjamin Herrenschmidt __field(bool, crc_ok) 56*6a794a27SBenjamin Herrenschmidt ), 57*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 58*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 59*6a794a27SBenjamin Herrenschmidt __entry->rtag = rtag; 60*6a794a27SBenjamin Herrenschmidt __entry->rcrc = rcrc; 61*6a794a27SBenjamin Herrenschmidt __entry->rdata = be32_to_cpu(rdata); 62*6a794a27SBenjamin Herrenschmidt __entry->crc_ok = crc_ok; 63*6a794a27SBenjamin Herrenschmidt ), 64*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d rsp: tag=%04x crc=%04x data=%08x %c\n", 65*6a794a27SBenjamin Herrenschmidt __entry->master_idx, __entry->rtag, __entry->rcrc, 66*6a794a27SBenjamin Herrenschmidt __entry->rdata, __entry->crc_ok ? ' ' : '!' 67*6a794a27SBenjamin Herrenschmidt ) 68*6a794a27SBenjamin Herrenschmidt ); 69*6a794a27SBenjamin Herrenschmidt 70*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_crc_rsp_error, 71*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, int retries), 72*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, retries), 73*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 74*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 75*6a794a27SBenjamin Herrenschmidt __field(int, retries) 76*6a794a27SBenjamin Herrenschmidt ), 77*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 78*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 79*6a794a27SBenjamin Herrenschmidt __entry->retries = retries; 80*6a794a27SBenjamin Herrenschmidt ), 81*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d CRC error in response retry %d", 82*6a794a27SBenjamin Herrenschmidt __entry->master_idx, __entry->retries 83*6a794a27SBenjamin Herrenschmidt ) 84*6a794a27SBenjamin Herrenschmidt ); 85*6a794a27SBenjamin Herrenschmidt 86*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_poll_response_busy, 87*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, int busy_count), 88*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, busy_count), 89*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 90*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 91*6a794a27SBenjamin Herrenschmidt __field(int, busy_count) 92*6a794a27SBenjamin Herrenschmidt ), 93*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 94*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 95*6a794a27SBenjamin Herrenschmidt __entry->busy_count = busy_count; 96*6a794a27SBenjamin Herrenschmidt ), 97*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d: device reported busy %d times", 98*6a794a27SBenjamin Herrenschmidt __entry->master_idx, __entry->busy_count 99*6a794a27SBenjamin Herrenschmidt ) 100*6a794a27SBenjamin Herrenschmidt ); 101*6a794a27SBenjamin Herrenschmidt 102*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_cmd_abs_addr, 103*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, u32 addr), 104*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, addr), 105*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 106*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 107*6a794a27SBenjamin Herrenschmidt __field(u32, addr) 108*6a794a27SBenjamin Herrenschmidt ), 109*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 110*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 111*6a794a27SBenjamin Herrenschmidt __entry->addr = addr; 112*6a794a27SBenjamin Herrenschmidt ), 113*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d: Sending ABS_ADR %06x", 114*6a794a27SBenjamin Herrenschmidt __entry->master_idx, __entry->addr 115*6a794a27SBenjamin Herrenschmidt ) 116*6a794a27SBenjamin Herrenschmidt ); 117*6a794a27SBenjamin Herrenschmidt 118*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_cmd_rel_addr, 119*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master, u32 rel_addr), 120*6a794a27SBenjamin Herrenschmidt TP_ARGS(master, rel_addr), 121*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 122*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 123*6a794a27SBenjamin Herrenschmidt __field(u32, rel_addr) 124*6a794a27SBenjamin Herrenschmidt ), 125*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 126*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 127*6a794a27SBenjamin Herrenschmidt __entry->rel_addr = rel_addr; 128*6a794a27SBenjamin Herrenschmidt ), 129*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d: Sending REL_ADR %03x", 130*6a794a27SBenjamin Herrenschmidt __entry->master_idx, __entry->rel_addr 131*6a794a27SBenjamin Herrenschmidt ) 132*6a794a27SBenjamin Herrenschmidt ); 133*6a794a27SBenjamin Herrenschmidt 134*6a794a27SBenjamin Herrenschmidt TRACE_EVENT(fsi_master_acf_cmd_same_addr, 135*6a794a27SBenjamin Herrenschmidt TP_PROTO(const struct fsi_master_acf *master), 136*6a794a27SBenjamin Herrenschmidt TP_ARGS(master), 137*6a794a27SBenjamin Herrenschmidt TP_STRUCT__entry( 138*6a794a27SBenjamin Herrenschmidt __field(int, master_idx) 139*6a794a27SBenjamin Herrenschmidt ), 140*6a794a27SBenjamin Herrenschmidt TP_fast_assign( 141*6a794a27SBenjamin Herrenschmidt __entry->master_idx = master->master.idx; 142*6a794a27SBenjamin Herrenschmidt ), 143*6a794a27SBenjamin Herrenschmidt TP_printk("fsi-acf%d: Sending SAME_ADR", 144*6a794a27SBenjamin Herrenschmidt __entry->master_idx 145*6a794a27SBenjamin Herrenschmidt ) 146*6a794a27SBenjamin Herrenschmidt ); 147*6a794a27SBenjamin Herrenschmidt 148*6a794a27SBenjamin Herrenschmidt #endif /* _TRACE_FSI_MASTER_ACF_H */ 149*6a794a27SBenjamin Herrenschmidt 150*6a794a27SBenjamin Herrenschmidt #include <trace/define_trace.h> 151