/* SPDX-License-Identifier: ISC */ /* * Copyright (C) 2016 Felix Fietkau */ #if !defined(__MT76_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) #define __MT76_TRACE_H #include #include "mt76.h" #undef TRACE_SYSTEM #define TRACE_SYSTEM mt76 #define MAXNAME 32 #define DEV_ENTRY __array(char, wiphy_name, 32) #define DEVICE_ASSIGN strlcpy(__entry->wiphy_name, \ wiphy_name(dev->hw->wiphy), MAXNAME) #define DEV_PR_FMT "%s" #define DEV_PR_ARG __entry->wiphy_name #define REG_ENTRY __field(u32, reg) __field(u32, val) #define REG_ASSIGN __entry->reg = reg; __entry->val = val #define REG_PR_FMT " %04x=%08x" #define REG_PR_ARG __entry->reg, __entry->val #define TXID_ENTRY __field(u8, wcid) __field(u8, pktid) #define TXID_ASSIGN __entry->wcid = wcid; __entry->pktid = pktid #define TXID_PR_FMT " [%d:%d]" #define TXID_PR_ARG __entry->wcid, __entry->pktid DECLARE_EVENT_CLASS(dev_reg_evt, TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val), TP_ARGS(dev, reg, val), TP_STRUCT__entry( DEV_ENTRY REG_ENTRY ), TP_fast_assign( DEVICE_ASSIGN; REG_ASSIGN; ), TP_printk( DEV_PR_FMT REG_PR_FMT, DEV_PR_ARG, REG_PR_ARG ) ); DEFINE_EVENT(dev_reg_evt, reg_rr, TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val), TP_ARGS(dev, reg, val) ); DEFINE_EVENT(dev_reg_evt, reg_wr, TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val), TP_ARGS(dev, reg, val) ); TRACE_EVENT(dev_irq, TP_PROTO(struct mt76_dev *dev, u32 val, u32 mask), TP_ARGS(dev, val, mask), TP_STRUCT__entry( DEV_ENTRY __field(u32, val) __field(u32, mask) ), TP_fast_assign( DEVICE_ASSIGN; __entry->val = val; __entry->mask = mask; ), TP_printk( DEV_PR_FMT " %08x & %08x", DEV_PR_ARG, __entry->val, __entry->mask ) ); DECLARE_EVENT_CLASS(dev_txid_evt, TP_PROTO(struct mt76_dev *dev, u8 wcid, u8 pktid), TP_ARGS(dev, wcid, pktid), TP_STRUCT__entry( DEV_ENTRY TXID_ENTRY ), TP_fast_assign( DEVICE_ASSIGN; TXID_ASSIGN; ), TP_printk( DEV_PR_FMT TXID_PR_FMT, DEV_PR_ARG, TXID_PR_ARG ) ); DEFINE_EVENT(dev_txid_evt, mac_txdone, TP_PROTO(struct mt76_dev *dev, u8 wcid, u8 pktid), TP_ARGS(dev, wcid, pktid) ); #endif #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH . #undef TRACE_INCLUDE_FILE #define TRACE_INCLUDE_FILE trace #include