Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ISC */
0002 /*
0003  * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name>
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>