1 /* SPDX-License-Identifier: ISC */ 2 /* 3 * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name> 4 */ 5 6 #if !defined(__MT76x02_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 7 #define __MT76x02_TRACE_H 8 9 #include <linux/tracepoint.h> 10 #include "mt76x02.h" 11 12 #undef TRACE_SYSTEM 13 #define TRACE_SYSTEM mt76x02 14 15 #define MAXNAME 32 16 #define DEV_ENTRY __array(char, wiphy_name, 32) 17 #define DEV_ASSIGN strlcpy(__entry->wiphy_name, \ 18 wiphy_name(mt76_hw(dev)->wiphy), MAXNAME) 19 #define DEV_PR_FMT "%s" 20 #define DEV_PR_ARG __entry->wiphy_name 21 22 #define TXID_ENTRY __field(u8, wcid) __field(u8, pktid) 23 #define TXID_PR_FMT " [%d:%d]" 24 #define TXID_PR_ARG __entry->wcid, __entry->pktid 25 26 DECLARE_EVENT_CLASS(dev_evt, 27 TP_PROTO(struct mt76x02_dev *dev), 28 TP_ARGS(dev), 29 TP_STRUCT__entry( 30 DEV_ENTRY 31 ), 32 TP_fast_assign( 33 DEV_ASSIGN; 34 ), 35 TP_printk(DEV_PR_FMT, DEV_PR_ARG) 36 ); 37 38 DEFINE_EVENT(dev_evt, mac_txstat_poll, 39 TP_PROTO(struct mt76x02_dev *dev), 40 TP_ARGS(dev) 41 ); 42 43 TRACE_EVENT(mac_txstat_fetch, 44 TP_PROTO(struct mt76x02_dev *dev, 45 struct mt76x02_tx_status *stat), 46 47 TP_ARGS(dev, stat), 48 49 TP_STRUCT__entry( 50 DEV_ENTRY 51 TXID_ENTRY 52 __field(bool, success) 53 __field(bool, aggr) 54 __field(bool, ack_req) 55 __field(u16, rate) 56 __field(u8, retry) 57 ), 58 59 TP_fast_assign( 60 DEV_ASSIGN; 61 __entry->success = stat->success; 62 __entry->aggr = stat->aggr; 63 __entry->ack_req = stat->ack_req; 64 __entry->wcid = stat->wcid; 65 __entry->pktid = stat->pktid; 66 __entry->rate = stat->rate; 67 __entry->retry = stat->retry; 68 ), 69 70 TP_printk( 71 DEV_PR_FMT TXID_PR_FMT 72 " success:%d aggr:%d ack_req:%d" 73 " rate:%04x retry:%d", 74 DEV_PR_ARG, TXID_PR_ARG, 75 __entry->success, __entry->aggr, __entry->ack_req, 76 __entry->rate, __entry->retry 77 ) 78 ); 79 80 #endif 81 82 #undef TRACE_INCLUDE_PATH 83 #define TRACE_INCLUDE_PATH . 84 #undef TRACE_INCLUDE_FILE 85 #define TRACE_INCLUDE_FILE mt76x02_trace 86 87 #include <trace/define_trace.h> 88