0001
0002
0003
0004
0005
0006 #if !defined(__MT76_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
0007 #define __MT76_TRACE_H
0008
0009 #include <linux/tracepoint.h>
0010 #include "mt76.h"
0011
0012 #undef TRACE_SYSTEM
0013 #define TRACE_SYSTEM mt76
0014
0015 #define MAXNAME 32
0016 #define DEV_ENTRY __array(char, wiphy_name, 32)
0017 #define DEVICE_ASSIGN strlcpy(__entry->wiphy_name, \
0018 wiphy_name(dev->hw->wiphy), MAXNAME)
0019 #define DEV_PR_FMT "%s"
0020 #define DEV_PR_ARG __entry->wiphy_name
0021
0022 #define REG_ENTRY __field(u32, reg) __field(u32, val)
0023 #define REG_ASSIGN __entry->reg = reg; __entry->val = val
0024 #define REG_PR_FMT " %04x=%08x"
0025 #define REG_PR_ARG __entry->reg, __entry->val
0026
0027 #define TXID_ENTRY __field(u8, wcid) __field(u8, pktid)
0028 #define TXID_ASSIGN __entry->wcid = wcid; __entry->pktid = pktid
0029 #define TXID_PR_FMT " [%d:%d]"
0030 #define TXID_PR_ARG __entry->wcid, __entry->pktid
0031
0032 DECLARE_EVENT_CLASS(dev_reg_evt,
0033 TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val),
0034 TP_ARGS(dev, reg, val),
0035 TP_STRUCT__entry(
0036 DEV_ENTRY
0037 REG_ENTRY
0038 ),
0039 TP_fast_assign(
0040 DEVICE_ASSIGN;
0041 REG_ASSIGN;
0042 ),
0043 TP_printk(
0044 DEV_PR_FMT REG_PR_FMT,
0045 DEV_PR_ARG, REG_PR_ARG
0046 )
0047 );
0048
0049 DEFINE_EVENT(dev_reg_evt, reg_rr,
0050 TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val),
0051 TP_ARGS(dev, reg, val)
0052 );
0053
0054 DEFINE_EVENT(dev_reg_evt, reg_wr,
0055 TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val),
0056 TP_ARGS(dev, reg, val)
0057 );
0058
0059 TRACE_EVENT(dev_irq,
0060 TP_PROTO(struct mt76_dev *dev, u32 val, u32 mask),
0061
0062 TP_ARGS(dev, val, mask),
0063
0064 TP_STRUCT__entry(
0065 DEV_ENTRY
0066 __field(u32, val)
0067 __field(u32, mask)
0068 ),
0069
0070 TP_fast_assign(
0071 DEVICE_ASSIGN;
0072 __entry->val = val;
0073 __entry->mask = mask;
0074 ),
0075
0076 TP_printk(
0077 DEV_PR_FMT " %08x & %08x",
0078 DEV_PR_ARG, __entry->val, __entry->mask
0079 )
0080 );
0081
0082 DECLARE_EVENT_CLASS(dev_txid_evt,
0083 TP_PROTO(struct mt76_dev *dev, u8 wcid, u8 pktid),
0084 TP_ARGS(dev, wcid, pktid),
0085 TP_STRUCT__entry(
0086 DEV_ENTRY
0087 TXID_ENTRY
0088 ),
0089 TP_fast_assign(
0090 DEVICE_ASSIGN;
0091 TXID_ASSIGN;
0092 ),
0093 TP_printk(
0094 DEV_PR_FMT TXID_PR_FMT,
0095 DEV_PR_ARG, TXID_PR_ARG
0096 )
0097 );
0098
0099 DEFINE_EVENT(dev_txid_evt, mac_txdone,
0100 TP_PROTO(struct mt76_dev *dev, u8 wcid, u8 pktid),
0101 TP_ARGS(dev, wcid, pktid)
0102 );
0103
0104 #endif
0105
0106 #undef TRACE_INCLUDE_PATH
0107 #define TRACE_INCLUDE_PATH .
0108 #undef TRACE_INCLUDE_FILE
0109 #define TRACE_INCLUDE_FILE trace
0110
0111 #include <trace/define_trace.h>