10e3d6777SRyder Lee /* SPDX-License-Identifier: ISC */ 23e2342edSLorenzo Bianconi /* 33e2342edSLorenzo Bianconi * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name> 43e2342edSLorenzo Bianconi */ 53e2342edSLorenzo Bianconi 63e2342edSLorenzo Bianconi #if !defined(__MT76x02_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 73e2342edSLorenzo Bianconi #define __MT76x02_TRACE_H 83e2342edSLorenzo Bianconi 93e2342edSLorenzo Bianconi #include <linux/tracepoint.h> 103e2342edSLorenzo Bianconi #include "mt76x02.h" 113e2342edSLorenzo Bianconi 123e2342edSLorenzo Bianconi #undef TRACE_SYSTEM 133e2342edSLorenzo Bianconi #define TRACE_SYSTEM mt76x02 143e2342edSLorenzo Bianconi 153e2342edSLorenzo Bianconi #define MAXNAME 32 163e2342edSLorenzo Bianconi #define DEV_ENTRY __array(char, wiphy_name, 32) 17*d6b484b5SAzeem Shaikh #define DEV_ASSIGN strscpy(__entry->wiphy_name, \ 18ff97c52aSRyder Lee wiphy_name(mt76_hw(dev)->wiphy), MAXNAME) 193e2342edSLorenzo Bianconi #define DEV_PR_FMT "%s" 203e2342edSLorenzo Bianconi #define DEV_PR_ARG __entry->wiphy_name 213e2342edSLorenzo Bianconi 223e2342edSLorenzo Bianconi #define TXID_ENTRY __field(u8, wcid) __field(u8, pktid) 233e2342edSLorenzo Bianconi #define TXID_PR_FMT " [%d:%d]" 243e2342edSLorenzo Bianconi #define TXID_PR_ARG __entry->wcid, __entry->pktid 253e2342edSLorenzo Bianconi 263e2342edSLorenzo Bianconi DECLARE_EVENT_CLASS(dev_evt, 273e2342edSLorenzo Bianconi TP_PROTO(struct mt76x02_dev *dev), 283e2342edSLorenzo Bianconi TP_ARGS(dev), 293e2342edSLorenzo Bianconi TP_STRUCT__entry( 303e2342edSLorenzo Bianconi DEV_ENTRY 313e2342edSLorenzo Bianconi ), 323e2342edSLorenzo Bianconi TP_fast_assign( 333e2342edSLorenzo Bianconi DEV_ASSIGN; 343e2342edSLorenzo Bianconi ), 353e2342edSLorenzo Bianconi TP_printk(DEV_PR_FMT, DEV_PR_ARG) 363e2342edSLorenzo Bianconi ); 373e2342edSLorenzo Bianconi 383e2342edSLorenzo Bianconi DEFINE_EVENT(dev_evt, mac_txstat_poll, 393e2342edSLorenzo Bianconi TP_PROTO(struct mt76x02_dev *dev), 403e2342edSLorenzo Bianconi TP_ARGS(dev) 413e2342edSLorenzo Bianconi ); 423e2342edSLorenzo Bianconi 433e2342edSLorenzo Bianconi TRACE_EVENT(mac_txstat_fetch, 443e2342edSLorenzo Bianconi TP_PROTO(struct mt76x02_dev *dev, 453e2342edSLorenzo Bianconi struct mt76x02_tx_status *stat), 463e2342edSLorenzo Bianconi 473e2342edSLorenzo Bianconi TP_ARGS(dev, stat), 483e2342edSLorenzo Bianconi 493e2342edSLorenzo Bianconi TP_STRUCT__entry( 503e2342edSLorenzo Bianconi DEV_ENTRY 513e2342edSLorenzo Bianconi TXID_ENTRY 523e2342edSLorenzo Bianconi __field(bool, success) 533e2342edSLorenzo Bianconi __field(bool, aggr) 543e2342edSLorenzo Bianconi __field(bool, ack_req) 553e2342edSLorenzo Bianconi __field(u16, rate) 563e2342edSLorenzo Bianconi __field(u8, retry) 573e2342edSLorenzo Bianconi ), 583e2342edSLorenzo Bianconi 593e2342edSLorenzo Bianconi TP_fast_assign( 603e2342edSLorenzo Bianconi DEV_ASSIGN; 613e2342edSLorenzo Bianconi __entry->success = stat->success; 623e2342edSLorenzo Bianconi __entry->aggr = stat->aggr; 633e2342edSLorenzo Bianconi __entry->ack_req = stat->ack_req; 643e2342edSLorenzo Bianconi __entry->wcid = stat->wcid; 653e2342edSLorenzo Bianconi __entry->pktid = stat->pktid; 663e2342edSLorenzo Bianconi __entry->rate = stat->rate; 673e2342edSLorenzo Bianconi __entry->retry = stat->retry; 683e2342edSLorenzo Bianconi ), 693e2342edSLorenzo Bianconi 703e2342edSLorenzo Bianconi TP_printk( 713e2342edSLorenzo Bianconi DEV_PR_FMT TXID_PR_FMT 723e2342edSLorenzo Bianconi " success:%d aggr:%d ack_req:%d" 733e2342edSLorenzo Bianconi " rate:%04x retry:%d", 743e2342edSLorenzo Bianconi DEV_PR_ARG, TXID_PR_ARG, 753e2342edSLorenzo Bianconi __entry->success, __entry->aggr, __entry->ack_req, 763e2342edSLorenzo Bianconi __entry->rate, __entry->retry 773e2342edSLorenzo Bianconi ) 783e2342edSLorenzo Bianconi ); 793e2342edSLorenzo Bianconi 803e2342edSLorenzo Bianconi #endif 813e2342edSLorenzo Bianconi 823e2342edSLorenzo Bianconi #undef TRACE_INCLUDE_PATH 833e2342edSLorenzo Bianconi #define TRACE_INCLUDE_PATH . 843e2342edSLorenzo Bianconi #undef TRACE_INCLUDE_FILE 853e2342edSLorenzo Bianconi #define TRACE_INCLUDE_FILE mt76x02_trace 863e2342edSLorenzo Bianconi 873e2342edSLorenzo Bianconi #include <trace/define_trace.h> 88