162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#undef TRACE_SYSTEM
362306a36Sopenharmony_ci#define TRACE_SYSTEM cfg80211
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#if !defined(__RDEV_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ)
662306a36Sopenharmony_ci#define __RDEV_OPS_TRACE
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include <linux/tracepoint.h>
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/rtnetlink.h>
1162306a36Sopenharmony_ci#include <linux/etherdevice.h>
1262306a36Sopenharmony_ci#include <net/cfg80211.h>
1362306a36Sopenharmony_ci#include "core.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define MAC_ENTRY(entry_mac) __array(u8, entry_mac, ETH_ALEN)
1662306a36Sopenharmony_ci#define MAC_ASSIGN(entry_mac, given_mac) do {			     \
1762306a36Sopenharmony_ci	if (given_mac)						     \
1862306a36Sopenharmony_ci		memcpy(__entry->entry_mac, given_mac, ETH_ALEN);     \
1962306a36Sopenharmony_ci	else							     \
2062306a36Sopenharmony_ci		eth_zero_addr(__entry->entry_mac);		     \
2162306a36Sopenharmony_ci	} while (0)
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#define MAXNAME		32
2462306a36Sopenharmony_ci#define WIPHY_ENTRY	__array(char, wiphy_name, 32)
2562306a36Sopenharmony_ci#define WIPHY_ASSIGN	strscpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME)
2662306a36Sopenharmony_ci#define WIPHY_PR_FMT	"%s"
2762306a36Sopenharmony_ci#define WIPHY_PR_ARG	__entry->wiphy_name
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci#define WDEV_ENTRY	__field(u32, id)
3062306a36Sopenharmony_ci#define WDEV_ASSIGN	(__entry->id) = (!IS_ERR_OR_NULL(wdev)	\
3162306a36Sopenharmony_ci					 ? wdev->identifier : 0)
3262306a36Sopenharmony_ci#define WDEV_PR_FMT	"wdev(%u)"
3362306a36Sopenharmony_ci#define WDEV_PR_ARG	(__entry->id)
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#define NETDEV_ENTRY	__array(char, name, IFNAMSIZ) \
3662306a36Sopenharmony_ci			__field(int, ifindex)
3762306a36Sopenharmony_ci#define NETDEV_ASSIGN					       \
3862306a36Sopenharmony_ci	do {						       \
3962306a36Sopenharmony_ci		memcpy(__entry->name, netdev->name, IFNAMSIZ); \
4062306a36Sopenharmony_ci		(__entry->ifindex) = (netdev->ifindex);	       \
4162306a36Sopenharmony_ci	} while (0)
4262306a36Sopenharmony_ci#define NETDEV_PR_FMT	"netdev:%s(%d)"
4362306a36Sopenharmony_ci#define NETDEV_PR_ARG	__entry->name, __entry->ifindex
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout)		   \
4662306a36Sopenharmony_ci		       __field(u16, dot11MeshConfirmTimeout)		   \
4762306a36Sopenharmony_ci		       __field(u16, dot11MeshHoldingTimeout)		   \
4862306a36Sopenharmony_ci		       __field(u16, dot11MeshMaxPeerLinks)		   \
4962306a36Sopenharmony_ci		       __field(u8, dot11MeshMaxRetries)			   \
5062306a36Sopenharmony_ci		       __field(u8, dot11MeshTTL)			   \
5162306a36Sopenharmony_ci		       __field(u8, element_ttl)				   \
5262306a36Sopenharmony_ci		       __field(bool, auto_open_plinks)			   \
5362306a36Sopenharmony_ci		       __field(u32, dot11MeshNbrOffsetMaxNeighbor)	   \
5462306a36Sopenharmony_ci		       __field(u8, dot11MeshHWMPmaxPREQretries)		   \
5562306a36Sopenharmony_ci		       __field(u32, path_refresh_time)			   \
5662306a36Sopenharmony_ci		       __field(u32, dot11MeshHWMPactivePathTimeout)	   \
5762306a36Sopenharmony_ci		       __field(u16, min_discovery_timeout)		   \
5862306a36Sopenharmony_ci		       __field(u16, dot11MeshHWMPpreqMinInterval)	   \
5962306a36Sopenharmony_ci		       __field(u16, dot11MeshHWMPperrMinInterval)	   \
6062306a36Sopenharmony_ci		       __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \
6162306a36Sopenharmony_ci		       __field(u8, dot11MeshHWMPRootMode)		   \
6262306a36Sopenharmony_ci		       __field(u16, dot11MeshHWMPRannInterval)		   \
6362306a36Sopenharmony_ci		       __field(bool, dot11MeshGateAnnouncementProtocol)	   \
6462306a36Sopenharmony_ci		       __field(bool, dot11MeshForwarding)		   \
6562306a36Sopenharmony_ci		       __field(s32, rssi_threshold)			   \
6662306a36Sopenharmony_ci		       __field(u16, ht_opmode)				   \
6762306a36Sopenharmony_ci		       __field(u32, dot11MeshHWMPactivePathToRootTimeout)  \
6862306a36Sopenharmony_ci		       __field(u16, dot11MeshHWMProotInterval)		   \
6962306a36Sopenharmony_ci		       __field(u16, dot11MeshHWMPconfirmationInterval)	   \
7062306a36Sopenharmony_ci		       __field(bool, dot11MeshNolearn)
7162306a36Sopenharmony_ci#define MESH_CFG_ASSIGN							      \
7262306a36Sopenharmony_ci	do {								      \
7362306a36Sopenharmony_ci		__entry->dot11MeshRetryTimeout = conf->dot11MeshRetryTimeout; \
7462306a36Sopenharmony_ci		__entry->dot11MeshConfirmTimeout =			      \
7562306a36Sopenharmony_ci				conf->dot11MeshConfirmTimeout;		      \
7662306a36Sopenharmony_ci		__entry->dot11MeshHoldingTimeout =			      \
7762306a36Sopenharmony_ci				conf->dot11MeshHoldingTimeout;		      \
7862306a36Sopenharmony_ci		__entry->dot11MeshMaxPeerLinks = conf->dot11MeshMaxPeerLinks; \
7962306a36Sopenharmony_ci		__entry->dot11MeshMaxRetries = conf->dot11MeshMaxRetries;     \
8062306a36Sopenharmony_ci		__entry->dot11MeshTTL = conf->dot11MeshTTL;		      \
8162306a36Sopenharmony_ci		__entry->element_ttl = conf->element_ttl;		      \
8262306a36Sopenharmony_ci		__entry->auto_open_plinks = conf->auto_open_plinks;	      \
8362306a36Sopenharmony_ci		__entry->dot11MeshNbrOffsetMaxNeighbor =		      \
8462306a36Sopenharmony_ci				conf->dot11MeshNbrOffsetMaxNeighbor;	      \
8562306a36Sopenharmony_ci		__entry->dot11MeshHWMPmaxPREQretries =			      \
8662306a36Sopenharmony_ci				conf->dot11MeshHWMPmaxPREQretries;	      \
8762306a36Sopenharmony_ci		__entry->path_refresh_time = conf->path_refresh_time;	      \
8862306a36Sopenharmony_ci		__entry->dot11MeshHWMPactivePathTimeout =		      \
8962306a36Sopenharmony_ci				conf->dot11MeshHWMPactivePathTimeout;	      \
9062306a36Sopenharmony_ci		__entry->min_discovery_timeout = conf->min_discovery_timeout; \
9162306a36Sopenharmony_ci		__entry->dot11MeshHWMPpreqMinInterval =			      \
9262306a36Sopenharmony_ci				conf->dot11MeshHWMPpreqMinInterval;	      \
9362306a36Sopenharmony_ci		__entry->dot11MeshHWMPperrMinInterval =			      \
9462306a36Sopenharmony_ci				conf->dot11MeshHWMPperrMinInterval;	      \
9562306a36Sopenharmony_ci		__entry->dot11MeshHWMPnetDiameterTraversalTime =	      \
9662306a36Sopenharmony_ci				conf->dot11MeshHWMPnetDiameterTraversalTime;  \
9762306a36Sopenharmony_ci		__entry->dot11MeshHWMPRootMode = conf->dot11MeshHWMPRootMode; \
9862306a36Sopenharmony_ci		__entry->dot11MeshHWMPRannInterval =			      \
9962306a36Sopenharmony_ci				conf->dot11MeshHWMPRannInterval;	      \
10062306a36Sopenharmony_ci		__entry->dot11MeshGateAnnouncementProtocol =		      \
10162306a36Sopenharmony_ci				conf->dot11MeshGateAnnouncementProtocol;      \
10262306a36Sopenharmony_ci		__entry->dot11MeshForwarding = conf->dot11MeshForwarding;     \
10362306a36Sopenharmony_ci		__entry->rssi_threshold = conf->rssi_threshold;		      \
10462306a36Sopenharmony_ci		__entry->ht_opmode = conf->ht_opmode;			      \
10562306a36Sopenharmony_ci		__entry->dot11MeshHWMPactivePathToRootTimeout =		      \
10662306a36Sopenharmony_ci				conf->dot11MeshHWMPactivePathToRootTimeout;   \
10762306a36Sopenharmony_ci		__entry->dot11MeshHWMProotInterval =			      \
10862306a36Sopenharmony_ci				conf->dot11MeshHWMProotInterval;	      \
10962306a36Sopenharmony_ci		__entry->dot11MeshHWMPconfirmationInterval =		      \
11062306a36Sopenharmony_ci				conf->dot11MeshHWMPconfirmationInterval;      \
11162306a36Sopenharmony_ci		__entry->dot11MeshNolearn = conf->dot11MeshNolearn;	      \
11262306a36Sopenharmony_ci	} while (0)
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci#define CHAN_ENTRY __field(enum nl80211_band, band) \
11562306a36Sopenharmony_ci		   __field(u32, center_freq)		\
11662306a36Sopenharmony_ci		   __field(u16, freq_offset)
11762306a36Sopenharmony_ci#define CHAN_ASSIGN(chan)					  \
11862306a36Sopenharmony_ci	do {							  \
11962306a36Sopenharmony_ci		if (chan) {					  \
12062306a36Sopenharmony_ci			__entry->band = chan->band;		  \
12162306a36Sopenharmony_ci			__entry->center_freq = chan->center_freq; \
12262306a36Sopenharmony_ci			__entry->freq_offset = chan->freq_offset; \
12362306a36Sopenharmony_ci		} else {					  \
12462306a36Sopenharmony_ci			__entry->band = 0;			  \
12562306a36Sopenharmony_ci			__entry->center_freq = 0;		  \
12662306a36Sopenharmony_ci			__entry->freq_offset = 0;		  \
12762306a36Sopenharmony_ci		}						  \
12862306a36Sopenharmony_ci	} while (0)
12962306a36Sopenharmony_ci#define CHAN_PR_FMT "band: %d, freq: %u.%03u"
13062306a36Sopenharmony_ci#define CHAN_PR_ARG __entry->band, __entry->center_freq, __entry->freq_offset
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci#define CHAN_DEF_ENTRY __field(enum nl80211_band, band)		\
13362306a36Sopenharmony_ci		       __field(u32, control_freq)			\
13462306a36Sopenharmony_ci		       __field(u32, freq_offset)			\
13562306a36Sopenharmony_ci		       __field(u32, width)				\
13662306a36Sopenharmony_ci		       __field(u32, center_freq1)			\
13762306a36Sopenharmony_ci		       __field(u32, freq1_offset)			\
13862306a36Sopenharmony_ci		       __field(u32, center_freq2)
13962306a36Sopenharmony_ci#define CHAN_DEF_ASSIGN(chandef)					\
14062306a36Sopenharmony_ci	do {								\
14162306a36Sopenharmony_ci		if ((chandef) && (chandef)->chan) {			\
14262306a36Sopenharmony_ci			__entry->band = (chandef)->chan->band;		\
14362306a36Sopenharmony_ci			__entry->control_freq =				\
14462306a36Sopenharmony_ci				(chandef)->chan->center_freq;		\
14562306a36Sopenharmony_ci			__entry->freq_offset =				\
14662306a36Sopenharmony_ci				(chandef)->chan->freq_offset;		\
14762306a36Sopenharmony_ci			__entry->width = (chandef)->width;		\
14862306a36Sopenharmony_ci			__entry->center_freq1 = (chandef)->center_freq1;\
14962306a36Sopenharmony_ci			__entry->freq1_offset = (chandef)->freq1_offset;\
15062306a36Sopenharmony_ci			__entry->center_freq2 = (chandef)->center_freq2;\
15162306a36Sopenharmony_ci		} else {						\
15262306a36Sopenharmony_ci			__entry->band = 0;				\
15362306a36Sopenharmony_ci			__entry->control_freq = 0;			\
15462306a36Sopenharmony_ci			__entry->freq_offset = 0;			\
15562306a36Sopenharmony_ci			__entry->width = 0;				\
15662306a36Sopenharmony_ci			__entry->center_freq1 = 0;			\
15762306a36Sopenharmony_ci			__entry->freq1_offset = 0;			\
15862306a36Sopenharmony_ci			__entry->center_freq2 = 0;			\
15962306a36Sopenharmony_ci		}							\
16062306a36Sopenharmony_ci	} while (0)
16162306a36Sopenharmony_ci#define CHAN_DEF_PR_FMT							\
16262306a36Sopenharmony_ci	"band: %d, control freq: %u.%03u, width: %d, cf1: %u.%03u, cf2: %u"
16362306a36Sopenharmony_ci#define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq,		\
16462306a36Sopenharmony_ci			__entry->freq_offset, __entry->width,		\
16562306a36Sopenharmony_ci			__entry->center_freq1, __entry->freq1_offset,	\
16662306a36Sopenharmony_ci			__entry->center_freq2
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci#define FILS_AAD_ASSIGN(fa)						\
16962306a36Sopenharmony_ci	do {								\
17062306a36Sopenharmony_ci		if (fa) {						\
17162306a36Sopenharmony_ci			ether_addr_copy(__entry->macaddr, fa->macaddr);	\
17262306a36Sopenharmony_ci			__entry->kek_len = fa->kek_len;			\
17362306a36Sopenharmony_ci		} else {						\
17462306a36Sopenharmony_ci			eth_zero_addr(__entry->macaddr);		\
17562306a36Sopenharmony_ci			__entry->kek_len = 0;				\
17662306a36Sopenharmony_ci		}							\
17762306a36Sopenharmony_ci	} while (0)
17862306a36Sopenharmony_ci#define FILS_AAD_PR_FMT							\
17962306a36Sopenharmony_ci	"macaddr: %pM, kek_len: %d"
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci#define SINFO_ENTRY __field(int, generation)	    \
18262306a36Sopenharmony_ci		    __field(u32, connected_time)    \
18362306a36Sopenharmony_ci		    __field(u32, inactive_time)	    \
18462306a36Sopenharmony_ci		    __field(u32, rx_bytes)	    \
18562306a36Sopenharmony_ci		    __field(u32, tx_bytes)	    \
18662306a36Sopenharmony_ci		    __field(u32, rx_packets)	    \
18762306a36Sopenharmony_ci		    __field(u32, tx_packets)	    \
18862306a36Sopenharmony_ci		    __field(u32, tx_retries)	    \
18962306a36Sopenharmony_ci		    __field(u32, tx_failed)	    \
19062306a36Sopenharmony_ci		    __field(u32, rx_dropped_misc)   \
19162306a36Sopenharmony_ci		    __field(u32, beacon_loss_count) \
19262306a36Sopenharmony_ci		    __field(u16, llid)		    \
19362306a36Sopenharmony_ci		    __field(u16, plid)		    \
19462306a36Sopenharmony_ci		    __field(u8, plink_state)
19562306a36Sopenharmony_ci#define SINFO_ASSIGN						       \
19662306a36Sopenharmony_ci	do {							       \
19762306a36Sopenharmony_ci		__entry->generation = sinfo->generation;	       \
19862306a36Sopenharmony_ci		__entry->connected_time = sinfo->connected_time;       \
19962306a36Sopenharmony_ci		__entry->inactive_time = sinfo->inactive_time;	       \
20062306a36Sopenharmony_ci		__entry->rx_bytes = sinfo->rx_bytes;		       \
20162306a36Sopenharmony_ci		__entry->tx_bytes = sinfo->tx_bytes;		       \
20262306a36Sopenharmony_ci		__entry->rx_packets = sinfo->rx_packets;	       \
20362306a36Sopenharmony_ci		__entry->tx_packets = sinfo->tx_packets;	       \
20462306a36Sopenharmony_ci		__entry->tx_retries = sinfo->tx_retries;	       \
20562306a36Sopenharmony_ci		__entry->tx_failed = sinfo->tx_failed;		       \
20662306a36Sopenharmony_ci		__entry->rx_dropped_misc = sinfo->rx_dropped_misc;     \
20762306a36Sopenharmony_ci		__entry->beacon_loss_count = sinfo->beacon_loss_count; \
20862306a36Sopenharmony_ci		__entry->llid = sinfo->llid;			       \
20962306a36Sopenharmony_ci		__entry->plid = sinfo->plid;			       \
21062306a36Sopenharmony_ci		__entry->plink_state = sinfo->plink_state;	       \
21162306a36Sopenharmony_ci	} while (0)
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci#define BOOL_TO_STR(bo) (bo) ? "true" : "false"
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ci#define QOS_MAP_ENTRY __field(u8, num_des)			\
21662306a36Sopenharmony_ci		      __array(u8, dscp_exception,		\
21762306a36Sopenharmony_ci			      2 * IEEE80211_QOS_MAP_MAX_EX)	\
21862306a36Sopenharmony_ci		      __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN)
21962306a36Sopenharmony_ci#define QOS_MAP_ASSIGN(qos_map)					\
22062306a36Sopenharmony_ci	do {							\
22162306a36Sopenharmony_ci		if ((qos_map)) {				\
22262306a36Sopenharmony_ci			__entry->num_des = (qos_map)->num_des;	\
22362306a36Sopenharmony_ci			memcpy(__entry->dscp_exception,		\
22462306a36Sopenharmony_ci			       &(qos_map)->dscp_exception,	\
22562306a36Sopenharmony_ci			       2 * IEEE80211_QOS_MAP_MAX_EX);	\
22662306a36Sopenharmony_ci			memcpy(__entry->up, &(qos_map)->up,	\
22762306a36Sopenharmony_ci			       IEEE80211_QOS_MAP_LEN_MIN);	\
22862306a36Sopenharmony_ci		} else {					\
22962306a36Sopenharmony_ci			__entry->num_des = 0;			\
23062306a36Sopenharmony_ci			memset(__entry->dscp_exception, 0,	\
23162306a36Sopenharmony_ci			       2 * IEEE80211_QOS_MAP_MAX_EX);	\
23262306a36Sopenharmony_ci			memset(__entry->up, 0,			\
23362306a36Sopenharmony_ci			       IEEE80211_QOS_MAP_LEN_MIN);	\
23462306a36Sopenharmony_ci		}						\
23562306a36Sopenharmony_ci	} while (0)
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ci/*************************************************************
23862306a36Sopenharmony_ci *			rdev->ops traces		     *
23962306a36Sopenharmony_ci *************************************************************/
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ciTRACE_EVENT(rdev_suspend,
24262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow),
24362306a36Sopenharmony_ci	TP_ARGS(wiphy, wow),
24462306a36Sopenharmony_ci	TP_STRUCT__entry(
24562306a36Sopenharmony_ci		WIPHY_ENTRY
24662306a36Sopenharmony_ci		__field(bool, any)
24762306a36Sopenharmony_ci		__field(bool, disconnect)
24862306a36Sopenharmony_ci		__field(bool, magic_pkt)
24962306a36Sopenharmony_ci		__field(bool, gtk_rekey_failure)
25062306a36Sopenharmony_ci		__field(bool, eap_identity_req)
25162306a36Sopenharmony_ci		__field(bool, four_way_handshake)
25262306a36Sopenharmony_ci		__field(bool, rfkill_release)
25362306a36Sopenharmony_ci		__field(bool, valid_wow)
25462306a36Sopenharmony_ci	),
25562306a36Sopenharmony_ci	TP_fast_assign(
25662306a36Sopenharmony_ci		WIPHY_ASSIGN;
25762306a36Sopenharmony_ci		if (wow) {
25862306a36Sopenharmony_ci			__entry->any = wow->any;
25962306a36Sopenharmony_ci			__entry->disconnect = wow->disconnect;
26062306a36Sopenharmony_ci			__entry->magic_pkt = wow->magic_pkt;
26162306a36Sopenharmony_ci			__entry->gtk_rekey_failure = wow->gtk_rekey_failure;
26262306a36Sopenharmony_ci			__entry->eap_identity_req = wow->eap_identity_req;
26362306a36Sopenharmony_ci			__entry->four_way_handshake = wow->four_way_handshake;
26462306a36Sopenharmony_ci			__entry->rfkill_release = wow->rfkill_release;
26562306a36Sopenharmony_ci			__entry->valid_wow = true;
26662306a36Sopenharmony_ci		} else {
26762306a36Sopenharmony_ci			__entry->valid_wow = false;
26862306a36Sopenharmony_ci		}
26962306a36Sopenharmony_ci	),
27062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, "
27162306a36Sopenharmony_ci		  "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, "
27262306a36Sopenharmony_ci		  "four way handshake: %d, rfkill release: %d.",
27362306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)",
27462306a36Sopenharmony_ci		  __entry->any, __entry->disconnect, __entry->magic_pkt,
27562306a36Sopenharmony_ci		  __entry->gtk_rekey_failure, __entry->eap_identity_req,
27662306a36Sopenharmony_ci		  __entry->four_way_handshake, __entry->rfkill_release)
27762306a36Sopenharmony_ci);
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int,
28062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret),
28162306a36Sopenharmony_ci	TP_ARGS(wiphy, ret),
28262306a36Sopenharmony_ci	TP_STRUCT__entry(
28362306a36Sopenharmony_ci		WIPHY_ENTRY
28462306a36Sopenharmony_ci		__field(int, ret)
28562306a36Sopenharmony_ci	),
28662306a36Sopenharmony_ci	TP_fast_assign(
28762306a36Sopenharmony_ci		WIPHY_ASSIGN;
28862306a36Sopenharmony_ci		__entry->ret = ret;
28962306a36Sopenharmony_ci	),
29062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret)
29162306a36Sopenharmony_ci);
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ciTRACE_EVENT(rdev_scan,
29462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request),
29562306a36Sopenharmony_ci	TP_ARGS(wiphy, request),
29662306a36Sopenharmony_ci	TP_STRUCT__entry(
29762306a36Sopenharmony_ci		WIPHY_ENTRY
29862306a36Sopenharmony_ci	),
29962306a36Sopenharmony_ci	TP_fast_assign(
30062306a36Sopenharmony_ci		WIPHY_ASSIGN;
30162306a36Sopenharmony_ci	),
30262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG)
30362306a36Sopenharmony_ci);
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_only_evt,
30662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy),
30762306a36Sopenharmony_ci	TP_ARGS(wiphy),
30862306a36Sopenharmony_ci	TP_STRUCT__entry(
30962306a36Sopenharmony_ci		WIPHY_ENTRY
31062306a36Sopenharmony_ci	),
31162306a36Sopenharmony_ci	TP_fast_assign(
31262306a36Sopenharmony_ci		WIPHY_ASSIGN;
31362306a36Sopenharmony_ci	),
31462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG)
31562306a36Sopenharmony_ci);
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ciDEFINE_EVENT(wiphy_only_evt, rdev_resume,
31862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy),
31962306a36Sopenharmony_ci	TP_ARGS(wiphy)
32062306a36Sopenharmony_ci);
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ciDEFINE_EVENT(wiphy_only_evt, rdev_return_void,
32362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy),
32462306a36Sopenharmony_ci	TP_ARGS(wiphy)
32562306a36Sopenharmony_ci);
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ciDEFINE_EVENT(wiphy_only_evt, rdev_get_antenna,
32862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy),
32962306a36Sopenharmony_ci	TP_ARGS(wiphy)
33062306a36Sopenharmony_ci);
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ciDEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll,
33362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy),
33462306a36Sopenharmony_ci	TP_ARGS(wiphy)
33562306a36Sopenharmony_ci);
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_enabled_evt,
33862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, bool enabled),
33962306a36Sopenharmony_ci	TP_ARGS(wiphy, enabled),
34062306a36Sopenharmony_ci	TP_STRUCT__entry(
34162306a36Sopenharmony_ci		WIPHY_ENTRY
34262306a36Sopenharmony_ci		__field(bool, enabled)
34362306a36Sopenharmony_ci	),
34462306a36Sopenharmony_ci	TP_fast_assign(
34562306a36Sopenharmony_ci		WIPHY_ASSIGN;
34662306a36Sopenharmony_ci		__entry->enabled = enabled;
34762306a36Sopenharmony_ci	),
34862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", %senabled ",
34962306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->enabled ? "" : "not ")
35062306a36Sopenharmony_ci);
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ciDEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup,
35362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, bool enabled),
35462306a36Sopenharmony_ci	TP_ARGS(wiphy, enabled)
35562306a36Sopenharmony_ci);
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_ciTRACE_EVENT(rdev_add_virtual_intf,
35862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type),
35962306a36Sopenharmony_ci	TP_ARGS(wiphy, name, type),
36062306a36Sopenharmony_ci	TP_STRUCT__entry(
36162306a36Sopenharmony_ci		WIPHY_ENTRY
36262306a36Sopenharmony_ci		__string(vir_intf_name, name ? name : "<noname>")
36362306a36Sopenharmony_ci		__field(enum nl80211_iftype, type)
36462306a36Sopenharmony_ci	),
36562306a36Sopenharmony_ci	TP_fast_assign(
36662306a36Sopenharmony_ci		WIPHY_ASSIGN;
36762306a36Sopenharmony_ci		__assign_str(vir_intf_name, name ? name : "<noname>");
36862306a36Sopenharmony_ci		__entry->type = type;
36962306a36Sopenharmony_ci	),
37062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d",
37162306a36Sopenharmony_ci		  WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type)
37262306a36Sopenharmony_ci);
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_wdev_evt,
37562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
37662306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev),
37762306a36Sopenharmony_ci	TP_STRUCT__entry(
37862306a36Sopenharmony_ci		WIPHY_ENTRY
37962306a36Sopenharmony_ci		WDEV_ENTRY
38062306a36Sopenharmony_ci	),
38162306a36Sopenharmony_ci	TP_fast_assign(
38262306a36Sopenharmony_ci		WIPHY_ASSIGN;
38362306a36Sopenharmony_ci		WDEV_ASSIGN;
38462306a36Sopenharmony_ci	),
38562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG)
38662306a36Sopenharmony_ci);
38762306a36Sopenharmony_ci
38862306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_wdev_cookie_evt,
38962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
39062306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie),
39162306a36Sopenharmony_ci	TP_STRUCT__entry(
39262306a36Sopenharmony_ci		WIPHY_ENTRY
39362306a36Sopenharmony_ci		WDEV_ENTRY
39462306a36Sopenharmony_ci		__field(u64, cookie)
39562306a36Sopenharmony_ci	),
39662306a36Sopenharmony_ci	TP_fast_assign(
39762306a36Sopenharmony_ci		WIPHY_ASSIGN;
39862306a36Sopenharmony_ci		WDEV_ASSIGN;
39962306a36Sopenharmony_ci		__entry->cookie = cookie;
40062306a36Sopenharmony_ci	),
40162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %lld",
40262306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG,
40362306a36Sopenharmony_ci		  (unsigned long long)__entry->cookie)
40462306a36Sopenharmony_ci);
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev,
40762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
40862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
40962306a36Sopenharmony_ci);
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf,
41262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
41362306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
41462306a36Sopenharmony_ci);
41562306a36Sopenharmony_ci
41662306a36Sopenharmony_ciTRACE_EVENT(rdev_change_virtual_intf,
41762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
41862306a36Sopenharmony_ci		 enum nl80211_iftype type),
41962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, type),
42062306a36Sopenharmony_ci	TP_STRUCT__entry(
42162306a36Sopenharmony_ci		WIPHY_ENTRY
42262306a36Sopenharmony_ci		NETDEV_ENTRY
42362306a36Sopenharmony_ci		__field(enum nl80211_iftype, type)
42462306a36Sopenharmony_ci	),
42562306a36Sopenharmony_ci	TP_fast_assign(
42662306a36Sopenharmony_ci		WIPHY_ASSIGN;
42762306a36Sopenharmony_ci		NETDEV_ASSIGN;
42862306a36Sopenharmony_ci		__entry->type = type;
42962306a36Sopenharmony_ci	),
43062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d",
43162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type)
43262306a36Sopenharmony_ci);
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(key_handle,
43562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
43662306a36Sopenharmony_ci		 u8 key_index, bool pairwise, const u8 *mac_addr),
43762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr),
43862306a36Sopenharmony_ci	TP_STRUCT__entry(
43962306a36Sopenharmony_ci		WIPHY_ENTRY
44062306a36Sopenharmony_ci		NETDEV_ENTRY
44162306a36Sopenharmony_ci		MAC_ENTRY(mac_addr)
44262306a36Sopenharmony_ci		__field(int, link_id)
44362306a36Sopenharmony_ci		__field(u8, key_index)
44462306a36Sopenharmony_ci		__field(bool, pairwise)
44562306a36Sopenharmony_ci	),
44662306a36Sopenharmony_ci	TP_fast_assign(
44762306a36Sopenharmony_ci		WIPHY_ASSIGN;
44862306a36Sopenharmony_ci		NETDEV_ASSIGN;
44962306a36Sopenharmony_ci		MAC_ASSIGN(mac_addr, mac_addr);
45062306a36Sopenharmony_ci		__entry->link_id = link_id;
45162306a36Sopenharmony_ci		__entry->key_index = key_index;
45262306a36Sopenharmony_ci		__entry->pairwise = pairwise;
45362306a36Sopenharmony_ci	),
45462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
45562306a36Sopenharmony_ci		  "key_index: %u, pairwise: %s, mac addr: %pM",
45662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
45762306a36Sopenharmony_ci		  __entry->key_index, BOOL_TO_STR(__entry->pairwise),
45862306a36Sopenharmony_ci		  __entry->mac_addr)
45962306a36Sopenharmony_ci);
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_ciDEFINE_EVENT(key_handle, rdev_get_key,
46262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
46362306a36Sopenharmony_ci		 u8 key_index, bool pairwise, const u8 *mac_addr),
46462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
46562306a36Sopenharmony_ci);
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ciDEFINE_EVENT(key_handle, rdev_del_key,
46862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
46962306a36Sopenharmony_ci		 u8 key_index, bool pairwise, const u8 *mac_addr),
47062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
47162306a36Sopenharmony_ci);
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_ciTRACE_EVENT(rdev_add_key,
47462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
47562306a36Sopenharmony_ci		 u8 key_index, bool pairwise, const u8 *mac_addr, u8 mode),
47662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr, mode),
47762306a36Sopenharmony_ci	TP_STRUCT__entry(
47862306a36Sopenharmony_ci		WIPHY_ENTRY
47962306a36Sopenharmony_ci		NETDEV_ENTRY
48062306a36Sopenharmony_ci		MAC_ENTRY(mac_addr)
48162306a36Sopenharmony_ci		__field(int, link_id)
48262306a36Sopenharmony_ci		__field(u8, key_index)
48362306a36Sopenharmony_ci		__field(bool, pairwise)
48462306a36Sopenharmony_ci		__field(u8, mode)
48562306a36Sopenharmony_ci	),
48662306a36Sopenharmony_ci	TP_fast_assign(
48762306a36Sopenharmony_ci		WIPHY_ASSIGN;
48862306a36Sopenharmony_ci		NETDEV_ASSIGN;
48962306a36Sopenharmony_ci		MAC_ASSIGN(mac_addr, mac_addr);
49062306a36Sopenharmony_ci		__entry->link_id = link_id;
49162306a36Sopenharmony_ci		__entry->key_index = key_index;
49262306a36Sopenharmony_ci		__entry->pairwise = pairwise;
49362306a36Sopenharmony_ci		__entry->mode = mode;
49462306a36Sopenharmony_ci	),
49562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
49662306a36Sopenharmony_ci		  "key_index: %u, mode: %u, pairwise: %s, "
49762306a36Sopenharmony_ci		  "mac addr: %pM",
49862306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
49962306a36Sopenharmony_ci		  __entry->key_index, __entry->mode,
50062306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->pairwise), __entry->mac_addr)
50162306a36Sopenharmony_ci);
50262306a36Sopenharmony_ci
50362306a36Sopenharmony_ciTRACE_EVENT(rdev_set_default_key,
50462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
50562306a36Sopenharmony_ci		 u8 key_index, bool unicast, bool multicast),
50662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index, unicast, multicast),
50762306a36Sopenharmony_ci	TP_STRUCT__entry(
50862306a36Sopenharmony_ci		WIPHY_ENTRY
50962306a36Sopenharmony_ci		NETDEV_ENTRY
51062306a36Sopenharmony_ci		__field(int, link_id)
51162306a36Sopenharmony_ci		__field(u8, key_index)
51262306a36Sopenharmony_ci		__field(bool, unicast)
51362306a36Sopenharmony_ci		__field(bool, multicast)
51462306a36Sopenharmony_ci	),
51562306a36Sopenharmony_ci	TP_fast_assign(
51662306a36Sopenharmony_ci		WIPHY_ASSIGN;
51762306a36Sopenharmony_ci		NETDEV_ASSIGN;
51862306a36Sopenharmony_ci		__entry->link_id = link_id;
51962306a36Sopenharmony_ci		__entry->key_index = key_index;
52062306a36Sopenharmony_ci		__entry->unicast = unicast;
52162306a36Sopenharmony_ci		__entry->multicast = multicast;
52262306a36Sopenharmony_ci	),
52362306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
52462306a36Sopenharmony_ci		  "key index: %u, unicast: %s, multicast: %s",
52562306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
52662306a36Sopenharmony_ci		  __entry->key_index, BOOL_TO_STR(__entry->unicast),
52762306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->multicast))
52862306a36Sopenharmony_ci);
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_ciTRACE_EVENT(rdev_set_default_mgmt_key,
53162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
53262306a36Sopenharmony_ci		 u8 key_index),
53362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index),
53462306a36Sopenharmony_ci	TP_STRUCT__entry(
53562306a36Sopenharmony_ci		WIPHY_ENTRY
53662306a36Sopenharmony_ci		NETDEV_ENTRY
53762306a36Sopenharmony_ci		__field(int, link_id)
53862306a36Sopenharmony_ci		__field(u8, key_index)
53962306a36Sopenharmony_ci	),
54062306a36Sopenharmony_ci	TP_fast_assign(
54162306a36Sopenharmony_ci		WIPHY_ASSIGN;
54262306a36Sopenharmony_ci		NETDEV_ASSIGN;
54362306a36Sopenharmony_ci		__entry->link_id = link_id;
54462306a36Sopenharmony_ci		__entry->key_index = key_index;
54562306a36Sopenharmony_ci	),
54662306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
54762306a36Sopenharmony_ci		  "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
54862306a36Sopenharmony_ci		  __entry->link_id, __entry->key_index)
54962306a36Sopenharmony_ci);
55062306a36Sopenharmony_ci
55162306a36Sopenharmony_ciTRACE_EVENT(rdev_set_default_beacon_key,
55262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
55362306a36Sopenharmony_ci		 u8 key_index),
55462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, key_index),
55562306a36Sopenharmony_ci	TP_STRUCT__entry(
55662306a36Sopenharmony_ci		WIPHY_ENTRY
55762306a36Sopenharmony_ci		NETDEV_ENTRY
55862306a36Sopenharmony_ci		__field(int, link_id)
55962306a36Sopenharmony_ci		__field(u8, key_index)
56062306a36Sopenharmony_ci	),
56162306a36Sopenharmony_ci	TP_fast_assign(
56262306a36Sopenharmony_ci		WIPHY_ASSIGN;
56362306a36Sopenharmony_ci		NETDEV_ASSIGN;
56462306a36Sopenharmony_ci		__entry->link_id = link_id;
56562306a36Sopenharmony_ci		__entry->key_index = key_index;
56662306a36Sopenharmony_ci	),
56762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
56862306a36Sopenharmony_ci		  "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
56962306a36Sopenharmony_ci		  __entry->link_id, __entry->key_index)
57062306a36Sopenharmony_ci);
57162306a36Sopenharmony_ci
57262306a36Sopenharmony_ciTRACE_EVENT(rdev_start_ap,
57362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
57462306a36Sopenharmony_ci		 struct cfg80211_ap_settings *settings),
57562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, settings),
57662306a36Sopenharmony_ci	TP_STRUCT__entry(
57762306a36Sopenharmony_ci		WIPHY_ENTRY
57862306a36Sopenharmony_ci		NETDEV_ENTRY
57962306a36Sopenharmony_ci		CHAN_DEF_ENTRY
58062306a36Sopenharmony_ci		__field(int, beacon_interval)
58162306a36Sopenharmony_ci		__field(int, dtim_period)
58262306a36Sopenharmony_ci		__array(char, ssid, IEEE80211_MAX_SSID_LEN + 1)
58362306a36Sopenharmony_ci		__field(enum nl80211_hidden_ssid, hidden_ssid)
58462306a36Sopenharmony_ci		__field(u32, wpa_ver)
58562306a36Sopenharmony_ci		__field(bool, privacy)
58662306a36Sopenharmony_ci		__field(enum nl80211_auth_type, auth_type)
58762306a36Sopenharmony_ci		__field(int, inactivity_timeout)
58862306a36Sopenharmony_ci		__field(unsigned int, link_id)
58962306a36Sopenharmony_ci	),
59062306a36Sopenharmony_ci	TP_fast_assign(
59162306a36Sopenharmony_ci		WIPHY_ASSIGN;
59262306a36Sopenharmony_ci		NETDEV_ASSIGN;
59362306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(&settings->chandef);
59462306a36Sopenharmony_ci		__entry->beacon_interval = settings->beacon_interval;
59562306a36Sopenharmony_ci		__entry->dtim_period = settings->dtim_period;
59662306a36Sopenharmony_ci		__entry->hidden_ssid = settings->hidden_ssid;
59762306a36Sopenharmony_ci		__entry->wpa_ver = settings->crypto.wpa_versions;
59862306a36Sopenharmony_ci		__entry->privacy = settings->privacy;
59962306a36Sopenharmony_ci		__entry->auth_type = settings->auth_type;
60062306a36Sopenharmony_ci		__entry->inactivity_timeout = settings->inactivity_timeout;
60162306a36Sopenharmony_ci		memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
60262306a36Sopenharmony_ci		memcpy(__entry->ssid, settings->ssid, settings->ssid_len);
60362306a36Sopenharmony_ci		__entry->link_id = settings->beacon.link_id;
60462306a36Sopenharmony_ci	),
60562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, "
60662306a36Sopenharmony_ci		  CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, "
60762306a36Sopenharmony_ci		  "hidden ssid: %d, wpa versions: %u, privacy: %s, "
60862306a36Sopenharmony_ci		  "auth type: %d, inactivity timeout: %d, link_id: %d",
60962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG,
61062306a36Sopenharmony_ci		  __entry->beacon_interval, __entry->dtim_period,
61162306a36Sopenharmony_ci		  __entry->hidden_ssid, __entry->wpa_ver,
61262306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->privacy), __entry->auth_type,
61362306a36Sopenharmony_ci		  __entry->inactivity_timeout, __entry->link_id)
61462306a36Sopenharmony_ci);
61562306a36Sopenharmony_ci
61662306a36Sopenharmony_ciTRACE_EVENT(rdev_change_beacon,
61762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
61862306a36Sopenharmony_ci		 struct cfg80211_beacon_data *info),
61962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, info),
62062306a36Sopenharmony_ci	TP_STRUCT__entry(
62162306a36Sopenharmony_ci		WIPHY_ENTRY
62262306a36Sopenharmony_ci		NETDEV_ENTRY
62362306a36Sopenharmony_ci		__field(int, link_id)
62462306a36Sopenharmony_ci		__dynamic_array(u8, head, info ? info->head_len : 0)
62562306a36Sopenharmony_ci		__dynamic_array(u8, tail, info ? info->tail_len : 0)
62662306a36Sopenharmony_ci		__dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0)
62762306a36Sopenharmony_ci		__dynamic_array(u8, proberesp_ies,
62862306a36Sopenharmony_ci				info ? info->proberesp_ies_len : 0)
62962306a36Sopenharmony_ci		__dynamic_array(u8, assocresp_ies,
63062306a36Sopenharmony_ci				info ? info->assocresp_ies_len : 0)
63162306a36Sopenharmony_ci		__dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0)
63262306a36Sopenharmony_ci	),
63362306a36Sopenharmony_ci	TP_fast_assign(
63462306a36Sopenharmony_ci		WIPHY_ASSIGN;
63562306a36Sopenharmony_ci		NETDEV_ASSIGN;
63662306a36Sopenharmony_ci		if (info) {
63762306a36Sopenharmony_ci			__entry->link_id = info->link_id;
63862306a36Sopenharmony_ci			if (info->head)
63962306a36Sopenharmony_ci				memcpy(__get_dynamic_array(head), info->head,
64062306a36Sopenharmony_ci				       info->head_len);
64162306a36Sopenharmony_ci			if (info->tail)
64262306a36Sopenharmony_ci				memcpy(__get_dynamic_array(tail), info->tail,
64362306a36Sopenharmony_ci				       info->tail_len);
64462306a36Sopenharmony_ci			if (info->beacon_ies)
64562306a36Sopenharmony_ci				memcpy(__get_dynamic_array(beacon_ies),
64662306a36Sopenharmony_ci				       info->beacon_ies, info->beacon_ies_len);
64762306a36Sopenharmony_ci			if (info->proberesp_ies)
64862306a36Sopenharmony_ci				memcpy(__get_dynamic_array(proberesp_ies),
64962306a36Sopenharmony_ci				       info->proberesp_ies,
65062306a36Sopenharmony_ci				       info->proberesp_ies_len);
65162306a36Sopenharmony_ci			if (info->assocresp_ies)
65262306a36Sopenharmony_ci				memcpy(__get_dynamic_array(assocresp_ies),
65362306a36Sopenharmony_ci				       info->assocresp_ies,
65462306a36Sopenharmony_ci				       info->assocresp_ies_len);
65562306a36Sopenharmony_ci			if (info->probe_resp)
65662306a36Sopenharmony_ci				memcpy(__get_dynamic_array(probe_resp),
65762306a36Sopenharmony_ci				       info->probe_resp, info->probe_resp_len);
65862306a36Sopenharmony_ci		} else {
65962306a36Sopenharmony_ci			__entry->link_id = -1;
66062306a36Sopenharmony_ci		}
66162306a36Sopenharmony_ci	),
66262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d",
66362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id)
66462306a36Sopenharmony_ci);
66562306a36Sopenharmony_ci
66662306a36Sopenharmony_ciTRACE_EVENT(rdev_stop_ap,
66762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
66862306a36Sopenharmony_ci		 unsigned int link_id),
66962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id),
67062306a36Sopenharmony_ci	TP_STRUCT__entry(
67162306a36Sopenharmony_ci		WIPHY_ENTRY
67262306a36Sopenharmony_ci		NETDEV_ENTRY
67362306a36Sopenharmony_ci		__field(unsigned int, link_id)
67462306a36Sopenharmony_ci	),
67562306a36Sopenharmony_ci	TP_fast_assign(
67662306a36Sopenharmony_ci		WIPHY_ASSIGN;
67762306a36Sopenharmony_ci		NETDEV_ASSIGN;
67862306a36Sopenharmony_ci		__entry->link_id = link_id;
67962306a36Sopenharmony_ci	),
68062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d",
68162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id)
68262306a36Sopenharmony_ci);
68362306a36Sopenharmony_ci
68462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_netdev_evt,
68562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
68662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev),
68762306a36Sopenharmony_ci	TP_STRUCT__entry(
68862306a36Sopenharmony_ci		WIPHY_ENTRY
68962306a36Sopenharmony_ci		NETDEV_ENTRY
69062306a36Sopenharmony_ci	),
69162306a36Sopenharmony_ci	TP_fast_assign(
69262306a36Sopenharmony_ci		WIPHY_ASSIGN;
69362306a36Sopenharmony_ci		NETDEV_ASSIGN;
69462306a36Sopenharmony_ci	),
69562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG)
69662306a36Sopenharmony_ci);
69762306a36Sopenharmony_ci
69862306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data,
69962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
70062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev)
70162306a36Sopenharmony_ci);
70262306a36Sopenharmony_ci
70362306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config,
70462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
70562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev)
70662306a36Sopenharmony_ci);
70762306a36Sopenharmony_ci
70862306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh,
70962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
71062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev)
71162306a36Sopenharmony_ci);
71262306a36Sopenharmony_ci
71362306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss,
71462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
71562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev)
71662306a36Sopenharmony_ci);
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb,
71962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
72062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev)
72162306a36Sopenharmony_ci);
72262306a36Sopenharmony_ci
72362306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa,
72462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
72562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev)
72662306a36Sopenharmony_ci);
72762306a36Sopenharmony_ci
72862306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac,
72962306a36Sopenharmony_ci	     TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
73062306a36Sopenharmony_ci	     TP_ARGS(wiphy, netdev)
73162306a36Sopenharmony_ci);
73262306a36Sopenharmony_ci
73362306a36Sopenharmony_ciDECLARE_EVENT_CLASS(station_add_change,
73462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac,
73562306a36Sopenharmony_ci		 struct station_parameters *params),
73662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mac, params),
73762306a36Sopenharmony_ci	TP_STRUCT__entry(
73862306a36Sopenharmony_ci		WIPHY_ENTRY
73962306a36Sopenharmony_ci		NETDEV_ENTRY
74062306a36Sopenharmony_ci		MAC_ENTRY(sta_mac)
74162306a36Sopenharmony_ci		__field(u32, sta_flags_mask)
74262306a36Sopenharmony_ci		__field(u32, sta_flags_set)
74362306a36Sopenharmony_ci		__field(u32, sta_modify_mask)
74462306a36Sopenharmony_ci		__field(int, listen_interval)
74562306a36Sopenharmony_ci		__field(u16, capability)
74662306a36Sopenharmony_ci		__field(u16, aid)
74762306a36Sopenharmony_ci		__field(u8, plink_action)
74862306a36Sopenharmony_ci		__field(u8, plink_state)
74962306a36Sopenharmony_ci		__field(u8, uapsd_queues)
75062306a36Sopenharmony_ci		__field(u8, max_sp)
75162306a36Sopenharmony_ci		__field(u8, opmode_notif)
75262306a36Sopenharmony_ci		__field(bool, opmode_notif_used)
75362306a36Sopenharmony_ci		__array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap))
75462306a36Sopenharmony_ci		__array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap))
75562306a36Sopenharmony_ci		__array(char, vlan, IFNAMSIZ)
75662306a36Sopenharmony_ci		__dynamic_array(u8, supported_rates,
75762306a36Sopenharmony_ci				params->link_sta_params.supported_rates_len)
75862306a36Sopenharmony_ci		__dynamic_array(u8, ext_capab, params->ext_capab_len)
75962306a36Sopenharmony_ci		__dynamic_array(u8, supported_channels,
76062306a36Sopenharmony_ci				params->supported_channels_len)
76162306a36Sopenharmony_ci		__dynamic_array(u8, supported_oper_classes,
76262306a36Sopenharmony_ci				params->supported_oper_classes_len)
76362306a36Sopenharmony_ci	),
76462306a36Sopenharmony_ci	TP_fast_assign(
76562306a36Sopenharmony_ci		WIPHY_ASSIGN;
76662306a36Sopenharmony_ci		NETDEV_ASSIGN;
76762306a36Sopenharmony_ci		MAC_ASSIGN(sta_mac, mac);
76862306a36Sopenharmony_ci		__entry->sta_flags_mask = params->sta_flags_mask;
76962306a36Sopenharmony_ci		__entry->sta_flags_set = params->sta_flags_set;
77062306a36Sopenharmony_ci		__entry->sta_modify_mask = params->sta_modify_mask;
77162306a36Sopenharmony_ci		__entry->listen_interval = params->listen_interval;
77262306a36Sopenharmony_ci		__entry->aid = params->aid;
77362306a36Sopenharmony_ci		__entry->plink_action = params->plink_action;
77462306a36Sopenharmony_ci		__entry->plink_state = params->plink_state;
77562306a36Sopenharmony_ci		__entry->uapsd_queues = params->uapsd_queues;
77662306a36Sopenharmony_ci		memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap));
77762306a36Sopenharmony_ci		if (params->link_sta_params.ht_capa)
77862306a36Sopenharmony_ci			memcpy(__entry->ht_capa,
77962306a36Sopenharmony_ci			       params->link_sta_params.ht_capa,
78062306a36Sopenharmony_ci			       sizeof(struct ieee80211_ht_cap));
78162306a36Sopenharmony_ci		memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap));
78262306a36Sopenharmony_ci		if (params->link_sta_params.vht_capa)
78362306a36Sopenharmony_ci			memcpy(__entry->vht_capa,
78462306a36Sopenharmony_ci			       params->link_sta_params.vht_capa,
78562306a36Sopenharmony_ci			       sizeof(struct ieee80211_vht_cap));
78662306a36Sopenharmony_ci		memset(__entry->vlan, 0, sizeof(__entry->vlan));
78762306a36Sopenharmony_ci		if (params->vlan)
78862306a36Sopenharmony_ci			memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ);
78962306a36Sopenharmony_ci		if (params->link_sta_params.supported_rates &&
79062306a36Sopenharmony_ci		    params->link_sta_params.supported_rates_len)
79162306a36Sopenharmony_ci			memcpy(__get_dynamic_array(supported_rates),
79262306a36Sopenharmony_ci			       params->link_sta_params.supported_rates,
79362306a36Sopenharmony_ci			       params->link_sta_params.supported_rates_len);
79462306a36Sopenharmony_ci		if (params->ext_capab && params->ext_capab_len)
79562306a36Sopenharmony_ci			memcpy(__get_dynamic_array(ext_capab),
79662306a36Sopenharmony_ci			       params->ext_capab,
79762306a36Sopenharmony_ci			       params->ext_capab_len);
79862306a36Sopenharmony_ci		if (params->supported_channels &&
79962306a36Sopenharmony_ci		    params->supported_channels_len)
80062306a36Sopenharmony_ci			memcpy(__get_dynamic_array(supported_channels),
80162306a36Sopenharmony_ci			       params->supported_channels,
80262306a36Sopenharmony_ci			       params->supported_channels_len);
80362306a36Sopenharmony_ci		if (params->supported_oper_classes &&
80462306a36Sopenharmony_ci		    params->supported_oper_classes_len)
80562306a36Sopenharmony_ci			memcpy(__get_dynamic_array(supported_oper_classes),
80662306a36Sopenharmony_ci			       params->supported_oper_classes,
80762306a36Sopenharmony_ci			       params->supported_oper_classes_len);
80862306a36Sopenharmony_ci		__entry->max_sp = params->max_sp;
80962306a36Sopenharmony_ci		__entry->capability = params->capability;
81062306a36Sopenharmony_ci		__entry->opmode_notif = params->link_sta_params.opmode_notif;
81162306a36Sopenharmony_ci		__entry->opmode_notif_used =
81262306a36Sopenharmony_ci			params->link_sta_params.opmode_notif_used;
81362306a36Sopenharmony_ci	),
81462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
81562306a36Sopenharmony_ci		  ", station flags mask: %u, station flags set: %u, "
81662306a36Sopenharmony_ci		  "station modify mask: %u, listen interval: %d, aid: %u, "
81762306a36Sopenharmony_ci		  "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s",
81862306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
81962306a36Sopenharmony_ci		  __entry->sta_flags_mask, __entry->sta_flags_set,
82062306a36Sopenharmony_ci		  __entry->sta_modify_mask, __entry->listen_interval,
82162306a36Sopenharmony_ci		  __entry->aid, __entry->plink_action, __entry->plink_state,
82262306a36Sopenharmony_ci		  __entry->uapsd_queues, __entry->vlan)
82362306a36Sopenharmony_ci);
82462306a36Sopenharmony_ci
82562306a36Sopenharmony_ciDEFINE_EVENT(station_add_change, rdev_add_station,
82662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac,
82762306a36Sopenharmony_ci		 struct station_parameters *params),
82862306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mac, params)
82962306a36Sopenharmony_ci);
83062306a36Sopenharmony_ci
83162306a36Sopenharmony_ciDEFINE_EVENT(station_add_change, rdev_change_station,
83262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac,
83362306a36Sopenharmony_ci		 struct station_parameters *params),
83462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mac, params)
83562306a36Sopenharmony_ci);
83662306a36Sopenharmony_ci
83762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_netdev_mac_evt,
83862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
83962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mac),
84062306a36Sopenharmony_ci	TP_STRUCT__entry(
84162306a36Sopenharmony_ci		WIPHY_ENTRY
84262306a36Sopenharmony_ci		NETDEV_ENTRY
84362306a36Sopenharmony_ci		MAC_ENTRY(sta_mac)
84462306a36Sopenharmony_ci	),
84562306a36Sopenharmony_ci	TP_fast_assign(
84662306a36Sopenharmony_ci		WIPHY_ASSIGN;
84762306a36Sopenharmony_ci		NETDEV_ASSIGN;
84862306a36Sopenharmony_ci		MAC_ASSIGN(sta_mac, mac);
84962306a36Sopenharmony_ci	),
85062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM",
85162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac)
85262306a36Sopenharmony_ci);
85362306a36Sopenharmony_ci
85462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(station_del,
85562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
85662306a36Sopenharmony_ci		 struct station_del_parameters *params),
85762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
85862306a36Sopenharmony_ci	TP_STRUCT__entry(
85962306a36Sopenharmony_ci		WIPHY_ENTRY
86062306a36Sopenharmony_ci		NETDEV_ENTRY
86162306a36Sopenharmony_ci		MAC_ENTRY(sta_mac)
86262306a36Sopenharmony_ci		__field(u8, subtype)
86362306a36Sopenharmony_ci		__field(u16, reason_code)
86462306a36Sopenharmony_ci	),
86562306a36Sopenharmony_ci	TP_fast_assign(
86662306a36Sopenharmony_ci		WIPHY_ASSIGN;
86762306a36Sopenharmony_ci		NETDEV_ASSIGN;
86862306a36Sopenharmony_ci		MAC_ASSIGN(sta_mac, params->mac);
86962306a36Sopenharmony_ci		__entry->subtype = params->subtype;
87062306a36Sopenharmony_ci		__entry->reason_code = params->reason_code;
87162306a36Sopenharmony_ci	),
87262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
87362306a36Sopenharmony_ci		  ", subtype: %u, reason_code: %u",
87462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
87562306a36Sopenharmony_ci		  __entry->subtype, __entry->reason_code)
87662306a36Sopenharmony_ci);
87762306a36Sopenharmony_ci
87862306a36Sopenharmony_ciDEFINE_EVENT(station_del, rdev_del_station,
87962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
88062306a36Sopenharmony_ci		 struct station_del_parameters *params),
88162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params)
88262306a36Sopenharmony_ci);
88362306a36Sopenharmony_ci
88462306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station,
88562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
88662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mac)
88762306a36Sopenharmony_ci);
88862306a36Sopenharmony_ci
88962306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath,
89062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
89162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mac)
89262306a36Sopenharmony_ci);
89362306a36Sopenharmony_ci
89462306a36Sopenharmony_ciTRACE_EVENT(rdev_dump_station,
89562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
89662306a36Sopenharmony_ci		 u8 *mac),
89762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, _idx, mac),
89862306a36Sopenharmony_ci	TP_STRUCT__entry(
89962306a36Sopenharmony_ci		WIPHY_ENTRY
90062306a36Sopenharmony_ci		NETDEV_ENTRY
90162306a36Sopenharmony_ci		MAC_ENTRY(sta_mac)
90262306a36Sopenharmony_ci		__field(int, idx)
90362306a36Sopenharmony_ci	),
90462306a36Sopenharmony_ci	TP_fast_assign(
90562306a36Sopenharmony_ci		WIPHY_ASSIGN;
90662306a36Sopenharmony_ci		NETDEV_ASSIGN;
90762306a36Sopenharmony_ci		MAC_ASSIGN(sta_mac, mac);
90862306a36Sopenharmony_ci		__entry->idx = _idx;
90962306a36Sopenharmony_ci	),
91062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d",
91162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
91262306a36Sopenharmony_ci		  __entry->idx)
91362306a36Sopenharmony_ci);
91462306a36Sopenharmony_ci
91562306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_station_info,
91662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo),
91762306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, sinfo),
91862306a36Sopenharmony_ci	TP_STRUCT__entry(
91962306a36Sopenharmony_ci		WIPHY_ENTRY
92062306a36Sopenharmony_ci		__field(int, ret)
92162306a36Sopenharmony_ci		SINFO_ENTRY
92262306a36Sopenharmony_ci	),
92362306a36Sopenharmony_ci	TP_fast_assign(
92462306a36Sopenharmony_ci		WIPHY_ASSIGN;
92562306a36Sopenharmony_ci		__entry->ret = ret;
92662306a36Sopenharmony_ci		SINFO_ASSIGN;
92762306a36Sopenharmony_ci	),
92862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned %d" ,
92962306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->ret)
93062306a36Sopenharmony_ci);
93162306a36Sopenharmony_ci
93262306a36Sopenharmony_ciDECLARE_EVENT_CLASS(mpath_evt,
93362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
93462306a36Sopenharmony_ci		 u8 *next_hop),
93562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, dst, next_hop),
93662306a36Sopenharmony_ci	TP_STRUCT__entry(
93762306a36Sopenharmony_ci		WIPHY_ENTRY
93862306a36Sopenharmony_ci		NETDEV_ENTRY
93962306a36Sopenharmony_ci		MAC_ENTRY(dst)
94062306a36Sopenharmony_ci		MAC_ENTRY(next_hop)
94162306a36Sopenharmony_ci	),
94262306a36Sopenharmony_ci	TP_fast_assign(
94362306a36Sopenharmony_ci		WIPHY_ASSIGN;
94462306a36Sopenharmony_ci		NETDEV_ASSIGN;
94562306a36Sopenharmony_ci		MAC_ASSIGN(dst, dst);
94662306a36Sopenharmony_ci		MAC_ASSIGN(next_hop, next_hop);
94762306a36Sopenharmony_ci	),
94862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM",
94962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst,
95062306a36Sopenharmony_ci		  __entry->next_hop)
95162306a36Sopenharmony_ci);
95262306a36Sopenharmony_ci
95362306a36Sopenharmony_ciDEFINE_EVENT(mpath_evt, rdev_add_mpath,
95462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
95562306a36Sopenharmony_ci		 u8 *next_hop),
95662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, dst, next_hop)
95762306a36Sopenharmony_ci);
95862306a36Sopenharmony_ci
95962306a36Sopenharmony_ciDEFINE_EVENT(mpath_evt, rdev_change_mpath,
96062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
96162306a36Sopenharmony_ci		 u8 *next_hop),
96262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, dst, next_hop)
96362306a36Sopenharmony_ci);
96462306a36Sopenharmony_ci
96562306a36Sopenharmony_ciDEFINE_EVENT(mpath_evt, rdev_get_mpath,
96662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst,
96762306a36Sopenharmony_ci		 u8 *next_hop),
96862306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, dst, next_hop)
96962306a36Sopenharmony_ci);
97062306a36Sopenharmony_ci
97162306a36Sopenharmony_ciTRACE_EVENT(rdev_dump_mpath,
97262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
97362306a36Sopenharmony_ci		 u8 *dst, u8 *next_hop),
97462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, _idx, dst, next_hop),
97562306a36Sopenharmony_ci	TP_STRUCT__entry(
97662306a36Sopenharmony_ci		WIPHY_ENTRY
97762306a36Sopenharmony_ci		NETDEV_ENTRY
97862306a36Sopenharmony_ci		MAC_ENTRY(dst)
97962306a36Sopenharmony_ci		MAC_ENTRY(next_hop)
98062306a36Sopenharmony_ci		__field(int, idx)
98162306a36Sopenharmony_ci	),
98262306a36Sopenharmony_ci	TP_fast_assign(
98362306a36Sopenharmony_ci		WIPHY_ASSIGN;
98462306a36Sopenharmony_ci		NETDEV_ASSIGN;
98562306a36Sopenharmony_ci		MAC_ASSIGN(dst, dst);
98662306a36Sopenharmony_ci		MAC_ASSIGN(next_hop, next_hop);
98762306a36Sopenharmony_ci		__entry->idx = _idx;
98862306a36Sopenharmony_ci	),
98962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM",
99062306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
99162306a36Sopenharmony_ci		  __entry->next_hop)
99262306a36Sopenharmony_ci);
99362306a36Sopenharmony_ci
99462306a36Sopenharmony_ciTRACE_EVENT(rdev_get_mpp,
99562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
99662306a36Sopenharmony_ci		 u8 *dst, u8 *mpp),
99762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, dst, mpp),
99862306a36Sopenharmony_ci	TP_STRUCT__entry(
99962306a36Sopenharmony_ci		WIPHY_ENTRY
100062306a36Sopenharmony_ci		NETDEV_ENTRY
100162306a36Sopenharmony_ci		MAC_ENTRY(dst)
100262306a36Sopenharmony_ci		MAC_ENTRY(mpp)
100362306a36Sopenharmony_ci	),
100462306a36Sopenharmony_ci	TP_fast_assign(
100562306a36Sopenharmony_ci		WIPHY_ASSIGN;
100662306a36Sopenharmony_ci		NETDEV_ASSIGN;
100762306a36Sopenharmony_ci		MAC_ASSIGN(dst, dst);
100862306a36Sopenharmony_ci		MAC_ASSIGN(mpp, mpp);
100962306a36Sopenharmony_ci	),
101062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM"
101162306a36Sopenharmony_ci		  ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG,
101262306a36Sopenharmony_ci		  __entry->dst, __entry->mpp)
101362306a36Sopenharmony_ci);
101462306a36Sopenharmony_ci
101562306a36Sopenharmony_ciTRACE_EVENT(rdev_dump_mpp,
101662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
101762306a36Sopenharmony_ci		 u8 *dst, u8 *mpp),
101862306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, _idx, mpp, dst),
101962306a36Sopenharmony_ci	TP_STRUCT__entry(
102062306a36Sopenharmony_ci		WIPHY_ENTRY
102162306a36Sopenharmony_ci		NETDEV_ENTRY
102262306a36Sopenharmony_ci		MAC_ENTRY(dst)
102362306a36Sopenharmony_ci		MAC_ENTRY(mpp)
102462306a36Sopenharmony_ci		__field(int, idx)
102562306a36Sopenharmony_ci	),
102662306a36Sopenharmony_ci	TP_fast_assign(
102762306a36Sopenharmony_ci		WIPHY_ASSIGN;
102862306a36Sopenharmony_ci		NETDEV_ASSIGN;
102962306a36Sopenharmony_ci		MAC_ASSIGN(dst, dst);
103062306a36Sopenharmony_ci		MAC_ASSIGN(mpp, mpp);
103162306a36Sopenharmony_ci		__entry->idx = _idx;
103262306a36Sopenharmony_ci	),
103362306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM",
103462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
103562306a36Sopenharmony_ci		  __entry->mpp)
103662306a36Sopenharmony_ci);
103762306a36Sopenharmony_ci
103862306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_mpath_info,
103962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo),
104062306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, pinfo),
104162306a36Sopenharmony_ci	TP_STRUCT__entry(
104262306a36Sopenharmony_ci		WIPHY_ENTRY
104362306a36Sopenharmony_ci		__field(int, ret)
104462306a36Sopenharmony_ci		__field(int, generation)
104562306a36Sopenharmony_ci		__field(u32, filled)
104662306a36Sopenharmony_ci		__field(u32, frame_qlen)
104762306a36Sopenharmony_ci		__field(u32, sn)
104862306a36Sopenharmony_ci		__field(u32, metric)
104962306a36Sopenharmony_ci		__field(u32, exptime)
105062306a36Sopenharmony_ci		__field(u32, discovery_timeout)
105162306a36Sopenharmony_ci		__field(u8, discovery_retries)
105262306a36Sopenharmony_ci		__field(u8, flags)
105362306a36Sopenharmony_ci	),
105462306a36Sopenharmony_ci	TP_fast_assign(
105562306a36Sopenharmony_ci		WIPHY_ASSIGN;
105662306a36Sopenharmony_ci		__entry->ret = ret;
105762306a36Sopenharmony_ci		__entry->generation = pinfo->generation;
105862306a36Sopenharmony_ci		__entry->filled = pinfo->filled;
105962306a36Sopenharmony_ci		__entry->frame_qlen = pinfo->frame_qlen;
106062306a36Sopenharmony_ci		__entry->sn = pinfo->sn;
106162306a36Sopenharmony_ci		__entry->metric = pinfo->metric;
106262306a36Sopenharmony_ci		__entry->exptime = pinfo->exptime;
106362306a36Sopenharmony_ci		__entry->discovery_timeout = pinfo->discovery_timeout;
106462306a36Sopenharmony_ci		__entry->discovery_retries = pinfo->discovery_retries;
106562306a36Sopenharmony_ci		__entry->flags = pinfo->flags;
106662306a36Sopenharmony_ci	),
106762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, "
106862306a36Sopenharmony_ci		  "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u,"
106962306a36Sopenharmony_ci		  " discovery timeout: %u, discovery retries: %u, flags: %u",
107062306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->ret, __entry->generation,
107162306a36Sopenharmony_ci		  __entry->filled, __entry->frame_qlen, __entry->sn,
107262306a36Sopenharmony_ci		  __entry->metric, __entry->exptime, __entry->discovery_timeout,
107362306a36Sopenharmony_ci		  __entry->discovery_retries, __entry->flags)
107462306a36Sopenharmony_ci);
107562306a36Sopenharmony_ci
107662306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_mesh_config,
107762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf),
107862306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, conf),
107962306a36Sopenharmony_ci	TP_STRUCT__entry(
108062306a36Sopenharmony_ci		WIPHY_ENTRY
108162306a36Sopenharmony_ci		MESH_CFG_ENTRY
108262306a36Sopenharmony_ci		__field(int, ret)
108362306a36Sopenharmony_ci	),
108462306a36Sopenharmony_ci	TP_fast_assign(
108562306a36Sopenharmony_ci		WIPHY_ASSIGN;
108662306a36Sopenharmony_ci		MESH_CFG_ASSIGN;
108762306a36Sopenharmony_ci		__entry->ret = ret;
108862306a36Sopenharmony_ci	),
108962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned: %d",
109062306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->ret)
109162306a36Sopenharmony_ci);
109262306a36Sopenharmony_ci
109362306a36Sopenharmony_ciTRACE_EVENT(rdev_update_mesh_config,
109462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask,
109562306a36Sopenharmony_ci		 const struct mesh_config *conf),
109662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mask, conf),
109762306a36Sopenharmony_ci	TP_STRUCT__entry(
109862306a36Sopenharmony_ci		WIPHY_ENTRY
109962306a36Sopenharmony_ci		NETDEV_ENTRY
110062306a36Sopenharmony_ci		MESH_CFG_ENTRY
110162306a36Sopenharmony_ci		__field(u32, mask)
110262306a36Sopenharmony_ci	),
110362306a36Sopenharmony_ci	TP_fast_assign(
110462306a36Sopenharmony_ci		WIPHY_ASSIGN;
110562306a36Sopenharmony_ci		NETDEV_ASSIGN;
110662306a36Sopenharmony_ci		MESH_CFG_ASSIGN;
110762306a36Sopenharmony_ci		__entry->mask = mask;
110862306a36Sopenharmony_ci	),
110962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u",
111062306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask)
111162306a36Sopenharmony_ci);
111262306a36Sopenharmony_ci
111362306a36Sopenharmony_ciTRACE_EVENT(rdev_join_mesh,
111462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
111562306a36Sopenharmony_ci		 const struct mesh_config *conf,
111662306a36Sopenharmony_ci		 const struct mesh_setup *setup),
111762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, conf, setup),
111862306a36Sopenharmony_ci	TP_STRUCT__entry(
111962306a36Sopenharmony_ci		WIPHY_ENTRY
112062306a36Sopenharmony_ci		NETDEV_ENTRY
112162306a36Sopenharmony_ci		MESH_CFG_ENTRY
112262306a36Sopenharmony_ci	),
112362306a36Sopenharmony_ci	TP_fast_assign(
112462306a36Sopenharmony_ci		WIPHY_ASSIGN;
112562306a36Sopenharmony_ci		NETDEV_ASSIGN;
112662306a36Sopenharmony_ci		MESH_CFG_ASSIGN;
112762306a36Sopenharmony_ci	),
112862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT,
112962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG)
113062306a36Sopenharmony_ci);
113162306a36Sopenharmony_ci
113262306a36Sopenharmony_ciTRACE_EVENT(rdev_change_bss,
113362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
113462306a36Sopenharmony_ci		 struct bss_parameters *params),
113562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
113662306a36Sopenharmony_ci	TP_STRUCT__entry(
113762306a36Sopenharmony_ci		WIPHY_ENTRY
113862306a36Sopenharmony_ci		NETDEV_ENTRY
113962306a36Sopenharmony_ci		__field(int, use_cts_prot)
114062306a36Sopenharmony_ci		__field(int, use_short_preamble)
114162306a36Sopenharmony_ci		__field(int, use_short_slot_time)
114262306a36Sopenharmony_ci		__field(int, ap_isolate)
114362306a36Sopenharmony_ci		__field(int, ht_opmode)
114462306a36Sopenharmony_ci	),
114562306a36Sopenharmony_ci	TP_fast_assign(
114662306a36Sopenharmony_ci		WIPHY_ASSIGN;
114762306a36Sopenharmony_ci		NETDEV_ASSIGN;
114862306a36Sopenharmony_ci		__entry->use_cts_prot = params->use_cts_prot;
114962306a36Sopenharmony_ci		__entry->use_short_preamble = params->use_short_preamble;
115062306a36Sopenharmony_ci		__entry->use_short_slot_time = params->use_short_slot_time;
115162306a36Sopenharmony_ci		__entry->ap_isolate = params->ap_isolate;
115262306a36Sopenharmony_ci		__entry->ht_opmode = params->ht_opmode;
115362306a36Sopenharmony_ci	),
115462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, "
115562306a36Sopenharmony_ci		  "use short preamble: %d, use short slot time: %d, "
115662306a36Sopenharmony_ci		  "ap isolate: %d, ht opmode: %d",
115762306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot,
115862306a36Sopenharmony_ci		  __entry->use_short_preamble, __entry->use_short_slot_time,
115962306a36Sopenharmony_ci		  __entry->ap_isolate, __entry->ht_opmode)
116062306a36Sopenharmony_ci);
116162306a36Sopenharmony_ci
116262306a36Sopenharmony_ciTRACE_EVENT(rdev_inform_bss,
116362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_bss *bss),
116462306a36Sopenharmony_ci	TP_ARGS(wiphy, bss),
116562306a36Sopenharmony_ci	TP_STRUCT__entry(
116662306a36Sopenharmony_ci		WIPHY_ENTRY
116762306a36Sopenharmony_ci		MAC_ENTRY(bssid)
116862306a36Sopenharmony_ci		CHAN_ENTRY
116962306a36Sopenharmony_ci	),
117062306a36Sopenharmony_ci	TP_fast_assign(
117162306a36Sopenharmony_ci		WIPHY_ASSIGN;
117262306a36Sopenharmony_ci		MAC_ASSIGN(bssid, bss->bssid);
117362306a36Sopenharmony_ci		CHAN_ASSIGN(bss->channel);
117462306a36Sopenharmony_ci	),
117562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", %pM, " CHAN_PR_FMT,
117662306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->bssid, CHAN_PR_ARG)
117762306a36Sopenharmony_ci);
117862306a36Sopenharmony_ci
117962306a36Sopenharmony_ciTRACE_EVENT(rdev_set_txq_params,
118062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
118162306a36Sopenharmony_ci		 struct ieee80211_txq_params *params),
118262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
118362306a36Sopenharmony_ci	TP_STRUCT__entry(
118462306a36Sopenharmony_ci		WIPHY_ENTRY
118562306a36Sopenharmony_ci		NETDEV_ENTRY
118662306a36Sopenharmony_ci		__field(enum nl80211_ac, ac)
118762306a36Sopenharmony_ci		__field(u16, txop)
118862306a36Sopenharmony_ci		__field(u16, cwmin)
118962306a36Sopenharmony_ci		__field(u16, cwmax)
119062306a36Sopenharmony_ci		__field(u8, aifs)
119162306a36Sopenharmony_ci	),
119262306a36Sopenharmony_ci	TP_fast_assign(
119362306a36Sopenharmony_ci		WIPHY_ASSIGN;
119462306a36Sopenharmony_ci		NETDEV_ASSIGN;
119562306a36Sopenharmony_ci		__entry->ac = params->ac;
119662306a36Sopenharmony_ci		__entry->txop = params->txop;
119762306a36Sopenharmony_ci		__entry->cwmin = params->cwmin;
119862306a36Sopenharmony_ci		__entry->cwmax = params->cwmax;
119962306a36Sopenharmony_ci		__entry->aifs = params->aifs;
120062306a36Sopenharmony_ci	),
120162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u",
120262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop,
120362306a36Sopenharmony_ci		  __entry->cwmin, __entry->cwmax, __entry->aifs)
120462306a36Sopenharmony_ci);
120562306a36Sopenharmony_ci
120662306a36Sopenharmony_ciTRACE_EVENT(rdev_libertas_set_mesh_channel,
120762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
120862306a36Sopenharmony_ci		 struct ieee80211_channel *chan),
120962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, chan),
121062306a36Sopenharmony_ci	TP_STRUCT__entry(
121162306a36Sopenharmony_ci		WIPHY_ENTRY
121262306a36Sopenharmony_ci		NETDEV_ENTRY
121362306a36Sopenharmony_ci		CHAN_ENTRY
121462306a36Sopenharmony_ci	),
121562306a36Sopenharmony_ci	TP_fast_assign(
121662306a36Sopenharmony_ci		WIPHY_ASSIGN;
121762306a36Sopenharmony_ci		NETDEV_ASSIGN;
121862306a36Sopenharmony_ci		CHAN_ASSIGN(chan);
121962306a36Sopenharmony_ci	),
122062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG,
122162306a36Sopenharmony_ci		  NETDEV_PR_ARG, CHAN_PR_ARG)
122262306a36Sopenharmony_ci);
122362306a36Sopenharmony_ci
122462306a36Sopenharmony_ciTRACE_EVENT(rdev_set_monitor_channel,
122562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy,
122662306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef),
122762306a36Sopenharmony_ci	TP_ARGS(wiphy, chandef),
122862306a36Sopenharmony_ci	TP_STRUCT__entry(
122962306a36Sopenharmony_ci		WIPHY_ENTRY
123062306a36Sopenharmony_ci		CHAN_DEF_ENTRY
123162306a36Sopenharmony_ci	),
123262306a36Sopenharmony_ci	TP_fast_assign(
123362306a36Sopenharmony_ci		WIPHY_ASSIGN;
123462306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
123562306a36Sopenharmony_ci	),
123662306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
123762306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
123862306a36Sopenharmony_ci);
123962306a36Sopenharmony_ci
124062306a36Sopenharmony_ciTRACE_EVENT(rdev_auth,
124162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
124262306a36Sopenharmony_ci		 struct cfg80211_auth_request *req),
124362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, req),
124462306a36Sopenharmony_ci	TP_STRUCT__entry(
124562306a36Sopenharmony_ci		WIPHY_ENTRY
124662306a36Sopenharmony_ci		NETDEV_ENTRY
124762306a36Sopenharmony_ci		MAC_ENTRY(bssid)
124862306a36Sopenharmony_ci		__field(enum nl80211_auth_type, auth_type)
124962306a36Sopenharmony_ci	),
125062306a36Sopenharmony_ci	TP_fast_assign(
125162306a36Sopenharmony_ci		WIPHY_ASSIGN;
125262306a36Sopenharmony_ci		NETDEV_ASSIGN;
125362306a36Sopenharmony_ci		if (req->bss)
125462306a36Sopenharmony_ci			MAC_ASSIGN(bssid, req->bss->bssid);
125562306a36Sopenharmony_ci		else
125662306a36Sopenharmony_ci			eth_zero_addr(__entry->bssid);
125762306a36Sopenharmony_ci		__entry->auth_type = req->auth_type;
125862306a36Sopenharmony_ci	),
125962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM",
126062306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type,
126162306a36Sopenharmony_ci		  __entry->bssid)
126262306a36Sopenharmony_ci);
126362306a36Sopenharmony_ci
126462306a36Sopenharmony_ciTRACE_EVENT(rdev_assoc,
126562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
126662306a36Sopenharmony_ci		 struct cfg80211_assoc_request *req),
126762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, req),
126862306a36Sopenharmony_ci	TP_STRUCT__entry(
126962306a36Sopenharmony_ci		WIPHY_ENTRY
127062306a36Sopenharmony_ci		NETDEV_ENTRY
127162306a36Sopenharmony_ci		MAC_ENTRY(bssid)
127262306a36Sopenharmony_ci		MAC_ENTRY(prev_bssid)
127362306a36Sopenharmony_ci		__field(bool, use_mfp)
127462306a36Sopenharmony_ci		__field(u32, flags)
127562306a36Sopenharmony_ci		__dynamic_array(u8, elements, req->ie_len)
127662306a36Sopenharmony_ci		__array(u8, ht_capa, sizeof(struct ieee80211_ht_cap))
127762306a36Sopenharmony_ci		__array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap))
127862306a36Sopenharmony_ci		__array(u8, vht_capa, sizeof(struct ieee80211_vht_cap))
127962306a36Sopenharmony_ci		__array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap))
128062306a36Sopenharmony_ci		__dynamic_array(u8, fils_kek, req->fils_kek_len)
128162306a36Sopenharmony_ci		__dynamic_array(u8, fils_nonces,
128262306a36Sopenharmony_ci				req->fils_nonces ? 2 * FILS_NONCE_LEN : 0)
128362306a36Sopenharmony_ci	),
128462306a36Sopenharmony_ci	TP_fast_assign(
128562306a36Sopenharmony_ci		WIPHY_ASSIGN;
128662306a36Sopenharmony_ci		NETDEV_ASSIGN;
128762306a36Sopenharmony_ci		if (req->bss)
128862306a36Sopenharmony_ci			MAC_ASSIGN(bssid, req->bss->bssid);
128962306a36Sopenharmony_ci		else
129062306a36Sopenharmony_ci			eth_zero_addr(__entry->bssid);
129162306a36Sopenharmony_ci		MAC_ASSIGN(prev_bssid, req->prev_bssid);
129262306a36Sopenharmony_ci		__entry->use_mfp = req->use_mfp;
129362306a36Sopenharmony_ci		__entry->flags = req->flags;
129462306a36Sopenharmony_ci		if (req->ie)
129562306a36Sopenharmony_ci			memcpy(__get_dynamic_array(elements),
129662306a36Sopenharmony_ci			       req->ie, req->ie_len);
129762306a36Sopenharmony_ci		memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa));
129862306a36Sopenharmony_ci		memcpy(__entry->ht_capa_mask, &req->ht_capa_mask,
129962306a36Sopenharmony_ci		       sizeof(req->ht_capa_mask));
130062306a36Sopenharmony_ci		memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa));
130162306a36Sopenharmony_ci		memcpy(__entry->vht_capa_mask, &req->vht_capa_mask,
130262306a36Sopenharmony_ci		       sizeof(req->vht_capa_mask));
130362306a36Sopenharmony_ci		if (req->fils_kek)
130462306a36Sopenharmony_ci			memcpy(__get_dynamic_array(fils_kek),
130562306a36Sopenharmony_ci			       req->fils_kek, req->fils_kek_len);
130662306a36Sopenharmony_ci		if (req->fils_nonces)
130762306a36Sopenharmony_ci			memcpy(__get_dynamic_array(fils_nonces),
130862306a36Sopenharmony_ci			       req->fils_nonces, 2 * FILS_NONCE_LEN);
130962306a36Sopenharmony_ci	),
131062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
131162306a36Sopenharmony_ci		  ", previous bssid: %pM, use mfp: %s, flags: %u",
131262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
131362306a36Sopenharmony_ci		  __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp),
131462306a36Sopenharmony_ci		  __entry->flags)
131562306a36Sopenharmony_ci);
131662306a36Sopenharmony_ci
131762306a36Sopenharmony_ciTRACE_EVENT(rdev_deauth,
131862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
131962306a36Sopenharmony_ci		 struct cfg80211_deauth_request *req),
132062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, req),
132162306a36Sopenharmony_ci	TP_STRUCT__entry(
132262306a36Sopenharmony_ci		WIPHY_ENTRY
132362306a36Sopenharmony_ci		NETDEV_ENTRY
132462306a36Sopenharmony_ci		MAC_ENTRY(bssid)
132562306a36Sopenharmony_ci		__field(u16, reason_code)
132662306a36Sopenharmony_ci	),
132762306a36Sopenharmony_ci	TP_fast_assign(
132862306a36Sopenharmony_ci		WIPHY_ASSIGN;
132962306a36Sopenharmony_ci		NETDEV_ASSIGN;
133062306a36Sopenharmony_ci		MAC_ASSIGN(bssid, req->bssid);
133162306a36Sopenharmony_ci		__entry->reason_code = req->reason_code;
133262306a36Sopenharmony_ci	),
133362306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u",
133462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
133562306a36Sopenharmony_ci		  __entry->reason_code)
133662306a36Sopenharmony_ci);
133762306a36Sopenharmony_ci
133862306a36Sopenharmony_ciTRACE_EVENT(rdev_disassoc,
133962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
134062306a36Sopenharmony_ci		 struct cfg80211_disassoc_request *req),
134162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, req),
134262306a36Sopenharmony_ci	TP_STRUCT__entry(
134362306a36Sopenharmony_ci		WIPHY_ENTRY
134462306a36Sopenharmony_ci		NETDEV_ENTRY
134562306a36Sopenharmony_ci		MAC_ENTRY(bssid)
134662306a36Sopenharmony_ci		__field(u16, reason_code)
134762306a36Sopenharmony_ci		__field(bool, local_state_change)
134862306a36Sopenharmony_ci	),
134962306a36Sopenharmony_ci	TP_fast_assign(
135062306a36Sopenharmony_ci		WIPHY_ASSIGN;
135162306a36Sopenharmony_ci		NETDEV_ASSIGN;
135262306a36Sopenharmony_ci		MAC_ASSIGN(bssid, req->ap_addr);
135362306a36Sopenharmony_ci		__entry->reason_code = req->reason_code;
135462306a36Sopenharmony_ci		__entry->local_state_change = req->local_state_change;
135562306a36Sopenharmony_ci	),
135662306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
135762306a36Sopenharmony_ci		  ", reason: %u, local state change: %s",
135862306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
135962306a36Sopenharmony_ci		  __entry->reason_code,
136062306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->local_state_change))
136162306a36Sopenharmony_ci);
136262306a36Sopenharmony_ci
136362306a36Sopenharmony_ciTRACE_EVENT(rdev_mgmt_tx_cancel_wait,
136462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy,
136562306a36Sopenharmony_ci		 struct wireless_dev *wdev, u64 cookie),
136662306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie),
136762306a36Sopenharmony_ci	TP_STRUCT__entry(
136862306a36Sopenharmony_ci		WIPHY_ENTRY
136962306a36Sopenharmony_ci		WDEV_ENTRY
137062306a36Sopenharmony_ci		__field(u64, cookie)
137162306a36Sopenharmony_ci	),
137262306a36Sopenharmony_ci	TP_fast_assign(
137362306a36Sopenharmony_ci		WIPHY_ASSIGN;
137462306a36Sopenharmony_ci		WDEV_ASSIGN;
137562306a36Sopenharmony_ci		__entry->cookie = cookie;
137662306a36Sopenharmony_ci	),
137762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ",
137862306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie)
137962306a36Sopenharmony_ci);
138062306a36Sopenharmony_ci
138162306a36Sopenharmony_ciTRACE_EVENT(rdev_set_power_mgmt,
138262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
138362306a36Sopenharmony_ci		 bool enabled, int timeout),
138462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, enabled, timeout),
138562306a36Sopenharmony_ci	TP_STRUCT__entry(
138662306a36Sopenharmony_ci		WIPHY_ENTRY
138762306a36Sopenharmony_ci		NETDEV_ENTRY
138862306a36Sopenharmony_ci		__field(bool, enabled)
138962306a36Sopenharmony_ci		__field(int, timeout)
139062306a36Sopenharmony_ci	),
139162306a36Sopenharmony_ci	TP_fast_assign(
139262306a36Sopenharmony_ci		WIPHY_ASSIGN;
139362306a36Sopenharmony_ci		NETDEV_ASSIGN;
139462306a36Sopenharmony_ci		__entry->enabled = enabled;
139562306a36Sopenharmony_ci		__entry->timeout = timeout;
139662306a36Sopenharmony_ci	),
139762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ",
139862306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,
139962306a36Sopenharmony_ci		  __entry->enabled ? "" : "not ", __entry->timeout)
140062306a36Sopenharmony_ci);
140162306a36Sopenharmony_ci
140262306a36Sopenharmony_ciTRACE_EVENT(rdev_connect,
140362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
140462306a36Sopenharmony_ci		 struct cfg80211_connect_params *sme),
140562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, sme),
140662306a36Sopenharmony_ci	TP_STRUCT__entry(
140762306a36Sopenharmony_ci		WIPHY_ENTRY
140862306a36Sopenharmony_ci		NETDEV_ENTRY
140962306a36Sopenharmony_ci		MAC_ENTRY(bssid)
141062306a36Sopenharmony_ci		__array(char, ssid, IEEE80211_MAX_SSID_LEN + 1)
141162306a36Sopenharmony_ci		__field(enum nl80211_auth_type, auth_type)
141262306a36Sopenharmony_ci		__field(bool, privacy)
141362306a36Sopenharmony_ci		__field(u32, wpa_versions)
141462306a36Sopenharmony_ci		__field(u32, flags)
141562306a36Sopenharmony_ci		MAC_ENTRY(prev_bssid)
141662306a36Sopenharmony_ci	),
141762306a36Sopenharmony_ci	TP_fast_assign(
141862306a36Sopenharmony_ci		WIPHY_ASSIGN;
141962306a36Sopenharmony_ci		NETDEV_ASSIGN;
142062306a36Sopenharmony_ci		MAC_ASSIGN(bssid, sme->bssid);
142162306a36Sopenharmony_ci		memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
142262306a36Sopenharmony_ci		memcpy(__entry->ssid, sme->ssid, sme->ssid_len);
142362306a36Sopenharmony_ci		__entry->auth_type = sme->auth_type;
142462306a36Sopenharmony_ci		__entry->privacy = sme->privacy;
142562306a36Sopenharmony_ci		__entry->wpa_versions = sme->crypto.wpa_versions;
142662306a36Sopenharmony_ci		__entry->flags = sme->flags;
142762306a36Sopenharmony_ci		MAC_ASSIGN(prev_bssid, sme->prev_bssid);
142862306a36Sopenharmony_ci	),
142962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
143062306a36Sopenharmony_ci		  ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, "
143162306a36Sopenharmony_ci		  "flags: %u, previous bssid: %pM",
143262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid,
143362306a36Sopenharmony_ci		  __entry->auth_type, BOOL_TO_STR(__entry->privacy),
143462306a36Sopenharmony_ci		  __entry->wpa_versions, __entry->flags, __entry->prev_bssid)
143562306a36Sopenharmony_ci);
143662306a36Sopenharmony_ci
143762306a36Sopenharmony_ciTRACE_EVENT(rdev_update_connect_params,
143862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
143962306a36Sopenharmony_ci		 struct cfg80211_connect_params *sme, u32 changed),
144062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, sme, changed),
144162306a36Sopenharmony_ci	TP_STRUCT__entry(
144262306a36Sopenharmony_ci		WIPHY_ENTRY
144362306a36Sopenharmony_ci		NETDEV_ENTRY
144462306a36Sopenharmony_ci		__field(u32, changed)
144562306a36Sopenharmony_ci	),
144662306a36Sopenharmony_ci	TP_fast_assign(
144762306a36Sopenharmony_ci		WIPHY_ASSIGN;
144862306a36Sopenharmony_ci		NETDEV_ASSIGN;
144962306a36Sopenharmony_ci		__entry->changed = changed;
145062306a36Sopenharmony_ci	),
145162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u",
145262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,  __entry->changed)
145362306a36Sopenharmony_ci);
145462306a36Sopenharmony_ci
145562306a36Sopenharmony_ciTRACE_EVENT(rdev_set_cqm_rssi_config,
145662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy,
145762306a36Sopenharmony_ci		 struct net_device *netdev, s32 rssi_thold,
145862306a36Sopenharmony_ci		 u32 rssi_hyst),
145962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst),
146062306a36Sopenharmony_ci	TP_STRUCT__entry(
146162306a36Sopenharmony_ci		WIPHY_ENTRY
146262306a36Sopenharmony_ci		NETDEV_ENTRY
146362306a36Sopenharmony_ci		__field(s32, rssi_thold)
146462306a36Sopenharmony_ci		__field(u32, rssi_hyst)
146562306a36Sopenharmony_ci	),
146662306a36Sopenharmony_ci	TP_fast_assign(
146762306a36Sopenharmony_ci		WIPHY_ASSIGN;
146862306a36Sopenharmony_ci		NETDEV_ASSIGN;
146962306a36Sopenharmony_ci		__entry->rssi_thold = rssi_thold;
147062306a36Sopenharmony_ci		__entry->rssi_hyst = rssi_hyst;
147162306a36Sopenharmony_ci	),
147262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
147362306a36Sopenharmony_ci		  ", rssi_thold: %d, rssi_hyst: %u ",
147462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,
147562306a36Sopenharmony_ci		 __entry->rssi_thold, __entry->rssi_hyst)
147662306a36Sopenharmony_ci);
147762306a36Sopenharmony_ci
147862306a36Sopenharmony_ciTRACE_EVENT(rdev_set_cqm_rssi_range_config,
147962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy,
148062306a36Sopenharmony_ci		 struct net_device *netdev, s32 low, s32 high),
148162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, low, high),
148262306a36Sopenharmony_ci	TP_STRUCT__entry(
148362306a36Sopenharmony_ci		WIPHY_ENTRY
148462306a36Sopenharmony_ci		NETDEV_ENTRY
148562306a36Sopenharmony_ci		__field(s32, rssi_low)
148662306a36Sopenharmony_ci		__field(s32, rssi_high)
148762306a36Sopenharmony_ci	),
148862306a36Sopenharmony_ci	TP_fast_assign(
148962306a36Sopenharmony_ci		WIPHY_ASSIGN;
149062306a36Sopenharmony_ci		NETDEV_ASSIGN;
149162306a36Sopenharmony_ci		__entry->rssi_low = low;
149262306a36Sopenharmony_ci		__entry->rssi_high = high;
149362306a36Sopenharmony_ci	),
149462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
149562306a36Sopenharmony_ci		  ", range: %d - %d ",
149662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,
149762306a36Sopenharmony_ci		  __entry->rssi_low, __entry->rssi_high)
149862306a36Sopenharmony_ci);
149962306a36Sopenharmony_ci
150062306a36Sopenharmony_ciTRACE_EVENT(rdev_set_cqm_txe_config,
150162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate,
150262306a36Sopenharmony_ci		 u32 pkts, u32 intvl),
150362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, rate, pkts, intvl),
150462306a36Sopenharmony_ci	TP_STRUCT__entry(
150562306a36Sopenharmony_ci		WIPHY_ENTRY
150662306a36Sopenharmony_ci		NETDEV_ENTRY
150762306a36Sopenharmony_ci		__field(u32, rate)
150862306a36Sopenharmony_ci		__field(u32, pkts)
150962306a36Sopenharmony_ci		__field(u32, intvl)
151062306a36Sopenharmony_ci	),
151162306a36Sopenharmony_ci	TP_fast_assign(
151262306a36Sopenharmony_ci		WIPHY_ASSIGN;
151362306a36Sopenharmony_ci		NETDEV_ASSIGN;
151462306a36Sopenharmony_ci		__entry->rate = rate;
151562306a36Sopenharmony_ci		__entry->pkts = pkts;
151662306a36Sopenharmony_ci		__entry->intvl = intvl;
151762306a36Sopenharmony_ci	),
151862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u",
151962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts,
152062306a36Sopenharmony_ci		  __entry->intvl)
152162306a36Sopenharmony_ci);
152262306a36Sopenharmony_ci
152362306a36Sopenharmony_ciTRACE_EVENT(rdev_disconnect,
152462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
152562306a36Sopenharmony_ci		 u16 reason_code),
152662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, reason_code),
152762306a36Sopenharmony_ci	TP_STRUCT__entry(
152862306a36Sopenharmony_ci		WIPHY_ENTRY
152962306a36Sopenharmony_ci		NETDEV_ENTRY
153062306a36Sopenharmony_ci		__field(u16, reason_code)
153162306a36Sopenharmony_ci	),
153262306a36Sopenharmony_ci	TP_fast_assign(
153362306a36Sopenharmony_ci		WIPHY_ASSIGN;
153462306a36Sopenharmony_ci		NETDEV_ASSIGN;
153562306a36Sopenharmony_ci		__entry->reason_code = reason_code;
153662306a36Sopenharmony_ci	),
153762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG,
153862306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->reason_code)
153962306a36Sopenharmony_ci);
154062306a36Sopenharmony_ci
154162306a36Sopenharmony_ciTRACE_EVENT(rdev_join_ibss,
154262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
154362306a36Sopenharmony_ci		 struct cfg80211_ibss_params *params),
154462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
154562306a36Sopenharmony_ci	TP_STRUCT__entry(
154662306a36Sopenharmony_ci		WIPHY_ENTRY
154762306a36Sopenharmony_ci		NETDEV_ENTRY
154862306a36Sopenharmony_ci		MAC_ENTRY(bssid)
154962306a36Sopenharmony_ci		__array(char, ssid, IEEE80211_MAX_SSID_LEN + 1)
155062306a36Sopenharmony_ci	),
155162306a36Sopenharmony_ci	TP_fast_assign(
155262306a36Sopenharmony_ci		WIPHY_ASSIGN;
155362306a36Sopenharmony_ci		NETDEV_ASSIGN;
155462306a36Sopenharmony_ci		MAC_ASSIGN(bssid, params->bssid);
155562306a36Sopenharmony_ci		memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
155662306a36Sopenharmony_ci		memcpy(__entry->ssid, params->ssid, params->ssid_len);
155762306a36Sopenharmony_ci	),
155862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s",
155962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid)
156062306a36Sopenharmony_ci);
156162306a36Sopenharmony_ci
156262306a36Sopenharmony_ciTRACE_EVENT(rdev_join_ocb,
156362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
156462306a36Sopenharmony_ci		 const struct ocb_setup *setup),
156562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, setup),
156662306a36Sopenharmony_ci	TP_STRUCT__entry(
156762306a36Sopenharmony_ci		WIPHY_ENTRY
156862306a36Sopenharmony_ci		NETDEV_ENTRY
156962306a36Sopenharmony_ci	),
157062306a36Sopenharmony_ci	TP_fast_assign(
157162306a36Sopenharmony_ci		WIPHY_ASSIGN;
157262306a36Sopenharmony_ci		NETDEV_ASSIGN;
157362306a36Sopenharmony_ci	),
157462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT,
157562306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG)
157662306a36Sopenharmony_ci);
157762306a36Sopenharmony_ci
157862306a36Sopenharmony_ciTRACE_EVENT(rdev_set_wiphy_params,
157962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u32 changed),
158062306a36Sopenharmony_ci	TP_ARGS(wiphy, changed),
158162306a36Sopenharmony_ci	TP_STRUCT__entry(
158262306a36Sopenharmony_ci		WIPHY_ENTRY
158362306a36Sopenharmony_ci		__field(u32, changed)
158462306a36Sopenharmony_ci	),
158562306a36Sopenharmony_ci	TP_fast_assign(
158662306a36Sopenharmony_ci		WIPHY_ASSIGN;
158762306a36Sopenharmony_ci		__entry->changed = changed;
158862306a36Sopenharmony_ci	),
158962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", changed: %u",
159062306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->changed)
159162306a36Sopenharmony_ci);
159262306a36Sopenharmony_ci
159362306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power,
159462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
159562306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
159662306a36Sopenharmony_ci);
159762306a36Sopenharmony_ci
159862306a36Sopenharmony_ciTRACE_EVENT(rdev_set_tx_power,
159962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
160062306a36Sopenharmony_ci		 enum nl80211_tx_power_setting type, int mbm),
160162306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, type, mbm),
160262306a36Sopenharmony_ci	TP_STRUCT__entry(
160362306a36Sopenharmony_ci		WIPHY_ENTRY
160462306a36Sopenharmony_ci		WDEV_ENTRY
160562306a36Sopenharmony_ci		__field(enum nl80211_tx_power_setting, type)
160662306a36Sopenharmony_ci		__field(int, mbm)
160762306a36Sopenharmony_ci	),
160862306a36Sopenharmony_ci	TP_fast_assign(
160962306a36Sopenharmony_ci		WIPHY_ASSIGN;
161062306a36Sopenharmony_ci		WDEV_ASSIGN;
161162306a36Sopenharmony_ci		__entry->type = type;
161262306a36Sopenharmony_ci		__entry->mbm = mbm;
161362306a36Sopenharmony_ci	),
161462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d",
161562306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm)
161662306a36Sopenharmony_ci);
161762306a36Sopenharmony_ci
161862306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_int,
161962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill),
162062306a36Sopenharmony_ci	TP_ARGS(wiphy, func_ret, func_fill),
162162306a36Sopenharmony_ci	TP_STRUCT__entry(
162262306a36Sopenharmony_ci		WIPHY_ENTRY
162362306a36Sopenharmony_ci		__field(int, func_ret)
162462306a36Sopenharmony_ci		__field(int, func_fill)
162562306a36Sopenharmony_ci	),
162662306a36Sopenharmony_ci	TP_fast_assign(
162762306a36Sopenharmony_ci		WIPHY_ASSIGN;
162862306a36Sopenharmony_ci		__entry->func_ret = func_ret;
162962306a36Sopenharmony_ci		__entry->func_fill = func_fill;
163062306a36Sopenharmony_ci	),
163162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d",
163262306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill)
163362306a36Sopenharmony_ci);
163462306a36Sopenharmony_ci
163562306a36Sopenharmony_ci#ifdef CONFIG_NL80211_TESTMODE
163662306a36Sopenharmony_ciTRACE_EVENT(rdev_testmode_cmd,
163762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
163862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev),
163962306a36Sopenharmony_ci	TP_STRUCT__entry(
164062306a36Sopenharmony_ci		WIPHY_ENTRY
164162306a36Sopenharmony_ci		WDEV_ENTRY
164262306a36Sopenharmony_ci	),
164362306a36Sopenharmony_ci	TP_fast_assign(
164462306a36Sopenharmony_ci		WIPHY_ASSIGN;
164562306a36Sopenharmony_ci		WDEV_ASSIGN;
164662306a36Sopenharmony_ci	),
164762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG)
164862306a36Sopenharmony_ci);
164962306a36Sopenharmony_ci
165062306a36Sopenharmony_ciTRACE_EVENT(rdev_testmode_dump,
165162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy),
165262306a36Sopenharmony_ci	TP_ARGS(wiphy),
165362306a36Sopenharmony_ci	TP_STRUCT__entry(
165462306a36Sopenharmony_ci		WIPHY_ENTRY
165562306a36Sopenharmony_ci	),
165662306a36Sopenharmony_ci	TP_fast_assign(
165762306a36Sopenharmony_ci		WIPHY_ASSIGN;
165862306a36Sopenharmony_ci	),
165962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG)
166062306a36Sopenharmony_ci);
166162306a36Sopenharmony_ci#endif /* CONFIG_NL80211_TESTMODE */
166262306a36Sopenharmony_ci
166362306a36Sopenharmony_ciTRACE_EVENT(rdev_set_bitrate_mask,
166462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
166562306a36Sopenharmony_ci		 unsigned int link_id,
166662306a36Sopenharmony_ci		 const u8 *peer, const struct cfg80211_bitrate_mask *mask),
166762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, peer, mask),
166862306a36Sopenharmony_ci	TP_STRUCT__entry(
166962306a36Sopenharmony_ci		WIPHY_ENTRY
167062306a36Sopenharmony_ci		NETDEV_ENTRY
167162306a36Sopenharmony_ci		__field(unsigned int, link_id)
167262306a36Sopenharmony_ci		MAC_ENTRY(peer)
167362306a36Sopenharmony_ci	),
167462306a36Sopenharmony_ci	TP_fast_assign(
167562306a36Sopenharmony_ci		WIPHY_ASSIGN;
167662306a36Sopenharmony_ci		NETDEV_ASSIGN;
167762306a36Sopenharmony_ci		__entry->link_id = link_id;
167862306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
167962306a36Sopenharmony_ci	),
168062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM",
168162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
168262306a36Sopenharmony_ci		  __entry->peer)
168362306a36Sopenharmony_ci);
168462306a36Sopenharmony_ci
168562306a36Sopenharmony_ciTRACE_EVENT(rdev_update_mgmt_frame_registrations,
168662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
168762306a36Sopenharmony_ci		 struct mgmt_frame_regs *upd),
168862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, upd),
168962306a36Sopenharmony_ci	TP_STRUCT__entry(
169062306a36Sopenharmony_ci		WIPHY_ENTRY
169162306a36Sopenharmony_ci		WDEV_ENTRY
169262306a36Sopenharmony_ci		__field(u16, global_stypes)
169362306a36Sopenharmony_ci		__field(u16, interface_stypes)
169462306a36Sopenharmony_ci	),
169562306a36Sopenharmony_ci	TP_fast_assign(
169662306a36Sopenharmony_ci		WIPHY_ASSIGN;
169762306a36Sopenharmony_ci		WDEV_ASSIGN;
169862306a36Sopenharmony_ci		__entry->global_stypes = upd->global_stypes;
169962306a36Sopenharmony_ci		__entry->interface_stypes = upd->interface_stypes;
170062306a36Sopenharmony_ci	),
170162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x",
170262306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG,
170362306a36Sopenharmony_ci		  __entry->global_stypes, __entry->interface_stypes)
170462306a36Sopenharmony_ci);
170562306a36Sopenharmony_ci
170662306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_tx_rx,
170762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx),
170862306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, tx, rx),
170962306a36Sopenharmony_ci	TP_STRUCT__entry(
171062306a36Sopenharmony_ci		WIPHY_ENTRY
171162306a36Sopenharmony_ci		__field(int, ret)
171262306a36Sopenharmony_ci		__field(u32, tx)
171362306a36Sopenharmony_ci		__field(u32, rx)
171462306a36Sopenharmony_ci	),
171562306a36Sopenharmony_ci	TP_fast_assign(
171662306a36Sopenharmony_ci		WIPHY_ASSIGN;
171762306a36Sopenharmony_ci		__entry->ret = ret;
171862306a36Sopenharmony_ci		__entry->tx = tx;
171962306a36Sopenharmony_ci		__entry->rx = rx;
172062306a36Sopenharmony_ci	),
172162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u",
172262306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx)
172362306a36Sopenharmony_ci);
172462306a36Sopenharmony_ci
172562306a36Sopenharmony_ciTRACE_EVENT(rdev_return_void_tx_rx,
172662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max,
172762306a36Sopenharmony_ci		 u32 rx, u32 rx_max),
172862306a36Sopenharmony_ci	TP_ARGS(wiphy, tx, tx_max, rx, rx_max),
172962306a36Sopenharmony_ci	TP_STRUCT__entry(
173062306a36Sopenharmony_ci		WIPHY_ENTRY
173162306a36Sopenharmony_ci		__field(u32, tx)
173262306a36Sopenharmony_ci		__field(u32, tx_max)
173362306a36Sopenharmony_ci		__field(u32, rx)
173462306a36Sopenharmony_ci		__field(u32, rx_max)
173562306a36Sopenharmony_ci	),
173662306a36Sopenharmony_ci	TP_fast_assign(
173762306a36Sopenharmony_ci		WIPHY_ASSIGN;
173862306a36Sopenharmony_ci		__entry->tx = tx;
173962306a36Sopenharmony_ci		__entry->tx_max = tx_max;
174062306a36Sopenharmony_ci		__entry->rx = rx;
174162306a36Sopenharmony_ci		__entry->rx_max = rx_max;
174262306a36Sopenharmony_ci	),
174362306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ",
174462306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx,
174562306a36Sopenharmony_ci		  __entry->rx_max)
174662306a36Sopenharmony_ci);
174762306a36Sopenharmony_ci
174862306a36Sopenharmony_ciDECLARE_EVENT_CLASS(tx_rx_evt,
174962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx),
175062306a36Sopenharmony_ci	TP_ARGS(wiphy, rx, tx),
175162306a36Sopenharmony_ci	TP_STRUCT__entry(
175262306a36Sopenharmony_ci		WIPHY_ENTRY
175362306a36Sopenharmony_ci		__field(u32, tx)
175462306a36Sopenharmony_ci		__field(u32, rx)
175562306a36Sopenharmony_ci	),
175662306a36Sopenharmony_ci	TP_fast_assign(
175762306a36Sopenharmony_ci		WIPHY_ASSIGN;
175862306a36Sopenharmony_ci		__entry->tx = tx;
175962306a36Sopenharmony_ci		__entry->rx = rx;
176062306a36Sopenharmony_ci	),
176162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ",
176262306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->tx, __entry->rx)
176362306a36Sopenharmony_ci);
176462306a36Sopenharmony_ci
176562306a36Sopenharmony_ciDEFINE_EVENT(tx_rx_evt, rdev_set_antenna,
176662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx),
176762306a36Sopenharmony_ci	TP_ARGS(wiphy, rx, tx)
176862306a36Sopenharmony_ci);
176962306a36Sopenharmony_ci
177062306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_netdev_id_evt,
177162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
177262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, id),
177362306a36Sopenharmony_ci	TP_STRUCT__entry(
177462306a36Sopenharmony_ci		WIPHY_ENTRY
177562306a36Sopenharmony_ci		NETDEV_ENTRY
177662306a36Sopenharmony_ci		__field(u64, id)
177762306a36Sopenharmony_ci	),
177862306a36Sopenharmony_ci	TP_fast_assign(
177962306a36Sopenharmony_ci		WIPHY_ASSIGN;
178062306a36Sopenharmony_ci		NETDEV_ASSIGN;
178162306a36Sopenharmony_ci		__entry->id = id;
178262306a36Sopenharmony_ci	),
178362306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu",
178462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id)
178562306a36Sopenharmony_ci);
178662306a36Sopenharmony_ci
178762306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start,
178862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
178962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, id)
179062306a36Sopenharmony_ci);
179162306a36Sopenharmony_ci
179262306a36Sopenharmony_ciDEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop,
179362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
179462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, id)
179562306a36Sopenharmony_ci);
179662306a36Sopenharmony_ci
179762306a36Sopenharmony_ciTRACE_EVENT(rdev_tdls_mgmt,
179862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
179962306a36Sopenharmony_ci		 u8 *peer, int link_id, u8 action_code, u8 dialog_token,
180062306a36Sopenharmony_ci		 u16 status_code, u32 peer_capability,
180162306a36Sopenharmony_ci		 bool initiator, const u8 *buf, size_t len),
180262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, peer, link_id, action_code, dialog_token,
180362306a36Sopenharmony_ci		status_code, peer_capability, initiator, buf, len),
180462306a36Sopenharmony_ci	TP_STRUCT__entry(
180562306a36Sopenharmony_ci		WIPHY_ENTRY
180662306a36Sopenharmony_ci		NETDEV_ENTRY
180762306a36Sopenharmony_ci		MAC_ENTRY(peer)
180862306a36Sopenharmony_ci		__field(int, link_id)
180962306a36Sopenharmony_ci		__field(u8, action_code)
181062306a36Sopenharmony_ci		__field(u8, dialog_token)
181162306a36Sopenharmony_ci		__field(u16, status_code)
181262306a36Sopenharmony_ci		__field(u32, peer_capability)
181362306a36Sopenharmony_ci		__field(bool, initiator)
181462306a36Sopenharmony_ci		__dynamic_array(u8, buf, len)
181562306a36Sopenharmony_ci	),
181662306a36Sopenharmony_ci	TP_fast_assign(
181762306a36Sopenharmony_ci		WIPHY_ASSIGN;
181862306a36Sopenharmony_ci		NETDEV_ASSIGN;
181962306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
182062306a36Sopenharmony_ci		__entry->link_id = link_id;
182162306a36Sopenharmony_ci		__entry->action_code = action_code;
182262306a36Sopenharmony_ci		__entry->dialog_token = dialog_token;
182362306a36Sopenharmony_ci		__entry->status_code = status_code;
182462306a36Sopenharmony_ci		__entry->peer_capability = peer_capability;
182562306a36Sopenharmony_ci		__entry->initiator = initiator;
182662306a36Sopenharmony_ci		memcpy(__get_dynamic_array(buf), buf, len);
182762306a36Sopenharmony_ci	),
182862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
182962306a36Sopenharmony_ci		  ", link_id: %d, action_code: %u "
183062306a36Sopenharmony_ci		  "dialog_token: %u, status_code: %u, peer_capability: %u "
183162306a36Sopenharmony_ci		  "initiator: %s buf: %#.2x ",
183262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
183362306a36Sopenharmony_ci		  __entry->link_id, __entry->action_code, __entry->dialog_token,
183462306a36Sopenharmony_ci		  __entry->status_code, __entry->peer_capability,
183562306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->initiator),
183662306a36Sopenharmony_ci		  ((u8 *)__get_dynamic_array(buf))[0])
183762306a36Sopenharmony_ci);
183862306a36Sopenharmony_ci
183962306a36Sopenharmony_ciTRACE_EVENT(rdev_dump_survey,
184062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx),
184162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, _idx),
184262306a36Sopenharmony_ci	TP_STRUCT__entry(
184362306a36Sopenharmony_ci		WIPHY_ENTRY
184462306a36Sopenharmony_ci		NETDEV_ENTRY
184562306a36Sopenharmony_ci		__field(int, idx)
184662306a36Sopenharmony_ci	),
184762306a36Sopenharmony_ci	TP_fast_assign(
184862306a36Sopenharmony_ci		WIPHY_ASSIGN;
184962306a36Sopenharmony_ci		NETDEV_ASSIGN;
185062306a36Sopenharmony_ci		__entry->idx = _idx;
185162306a36Sopenharmony_ci	),
185262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d",
185362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx)
185462306a36Sopenharmony_ci);
185562306a36Sopenharmony_ci
185662306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_survey_info,
185762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info),
185862306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, info),
185962306a36Sopenharmony_ci	TP_STRUCT__entry(
186062306a36Sopenharmony_ci		WIPHY_ENTRY
186162306a36Sopenharmony_ci		CHAN_ENTRY
186262306a36Sopenharmony_ci		__field(int, ret)
186362306a36Sopenharmony_ci		__field(u64, time)
186462306a36Sopenharmony_ci		__field(u64, time_busy)
186562306a36Sopenharmony_ci		__field(u64, time_ext_busy)
186662306a36Sopenharmony_ci		__field(u64, time_rx)
186762306a36Sopenharmony_ci		__field(u64, time_tx)
186862306a36Sopenharmony_ci		__field(u64, time_scan)
186962306a36Sopenharmony_ci		__field(u32, filled)
187062306a36Sopenharmony_ci		__field(s8, noise)
187162306a36Sopenharmony_ci	),
187262306a36Sopenharmony_ci	TP_fast_assign(
187362306a36Sopenharmony_ci		WIPHY_ASSIGN;
187462306a36Sopenharmony_ci		CHAN_ASSIGN(info->channel);
187562306a36Sopenharmony_ci		__entry->ret = ret;
187662306a36Sopenharmony_ci		__entry->time = info->time;
187762306a36Sopenharmony_ci		__entry->time_busy = info->time_busy;
187862306a36Sopenharmony_ci		__entry->time_ext_busy = info->time_ext_busy;
187962306a36Sopenharmony_ci		__entry->time_rx = info->time_rx;
188062306a36Sopenharmony_ci		__entry->time_tx = info->time_tx;
188162306a36Sopenharmony_ci		__entry->time_scan = info->time_scan;
188262306a36Sopenharmony_ci		__entry->filled = info->filled;
188362306a36Sopenharmony_ci		__entry->noise = info->noise;
188462306a36Sopenharmony_ci	),
188562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT
188662306a36Sopenharmony_ci		  ", channel time: %llu, channel time busy: %llu, "
188762306a36Sopenharmony_ci		  "channel time extension busy: %llu, channel time rx: %llu, "
188862306a36Sopenharmony_ci		  "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d",
188962306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG,
189062306a36Sopenharmony_ci		  __entry->time, __entry->time_busy,
189162306a36Sopenharmony_ci		  __entry->time_ext_busy, __entry->time_rx,
189262306a36Sopenharmony_ci		  __entry->time_tx, __entry->time_scan,
189362306a36Sopenharmony_ci		  __entry->filled, __entry->noise)
189462306a36Sopenharmony_ci);
189562306a36Sopenharmony_ci
189662306a36Sopenharmony_ciTRACE_EVENT(rdev_tdls_oper,
189762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
189862306a36Sopenharmony_ci		 u8 *peer, enum nl80211_tdls_operation oper),
189962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, peer, oper),
190062306a36Sopenharmony_ci	TP_STRUCT__entry(
190162306a36Sopenharmony_ci		WIPHY_ENTRY
190262306a36Sopenharmony_ci		NETDEV_ENTRY
190362306a36Sopenharmony_ci		MAC_ENTRY(peer)
190462306a36Sopenharmony_ci		__field(enum nl80211_tdls_operation, oper)
190562306a36Sopenharmony_ci	),
190662306a36Sopenharmony_ci	TP_fast_assign(
190762306a36Sopenharmony_ci		WIPHY_ASSIGN;
190862306a36Sopenharmony_ci		NETDEV_ASSIGN;
190962306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
191062306a36Sopenharmony_ci		__entry->oper = oper;
191162306a36Sopenharmony_ci	),
191262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d",
191362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper)
191462306a36Sopenharmony_ci);
191562306a36Sopenharmony_ci
191662306a36Sopenharmony_ciDECLARE_EVENT_CLASS(rdev_pmksa,
191762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
191862306a36Sopenharmony_ci		 struct cfg80211_pmksa *pmksa),
191962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, pmksa),
192062306a36Sopenharmony_ci	TP_STRUCT__entry(
192162306a36Sopenharmony_ci		WIPHY_ENTRY
192262306a36Sopenharmony_ci		NETDEV_ENTRY
192362306a36Sopenharmony_ci		MAC_ENTRY(bssid)
192462306a36Sopenharmony_ci	),
192562306a36Sopenharmony_ci	TP_fast_assign(
192662306a36Sopenharmony_ci		WIPHY_ASSIGN;
192762306a36Sopenharmony_ci		NETDEV_ASSIGN;
192862306a36Sopenharmony_ci		MAC_ASSIGN(bssid, pmksa->bssid);
192962306a36Sopenharmony_ci	),
193062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM",
193162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid)
193262306a36Sopenharmony_ci);
193362306a36Sopenharmony_ci
193462306a36Sopenharmony_ciTRACE_EVENT(rdev_probe_client,
193562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
193662306a36Sopenharmony_ci		 const u8 *peer),
193762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, peer),
193862306a36Sopenharmony_ci	TP_STRUCT__entry(
193962306a36Sopenharmony_ci		WIPHY_ENTRY
194062306a36Sopenharmony_ci		NETDEV_ENTRY
194162306a36Sopenharmony_ci		MAC_ENTRY(peer)
194262306a36Sopenharmony_ci	),
194362306a36Sopenharmony_ci	TP_fast_assign(
194462306a36Sopenharmony_ci		WIPHY_ASSIGN;
194562306a36Sopenharmony_ci		NETDEV_ASSIGN;
194662306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
194762306a36Sopenharmony_ci	),
194862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
194962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
195062306a36Sopenharmony_ci);
195162306a36Sopenharmony_ci
195262306a36Sopenharmony_ciDEFINE_EVENT(rdev_pmksa, rdev_set_pmksa,
195362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
195462306a36Sopenharmony_ci		 struct cfg80211_pmksa *pmksa),
195562306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, pmksa)
195662306a36Sopenharmony_ci);
195762306a36Sopenharmony_ci
195862306a36Sopenharmony_ciDEFINE_EVENT(rdev_pmksa, rdev_del_pmksa,
195962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
196062306a36Sopenharmony_ci		 struct cfg80211_pmksa *pmksa),
196162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, pmksa)
196262306a36Sopenharmony_ci);
196362306a36Sopenharmony_ci
196462306a36Sopenharmony_ciTRACE_EVENT(rdev_remain_on_channel,
196562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
196662306a36Sopenharmony_ci		 struct ieee80211_channel *chan,
196762306a36Sopenharmony_ci		 unsigned int duration),
196862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, chan, duration),
196962306a36Sopenharmony_ci	TP_STRUCT__entry(
197062306a36Sopenharmony_ci		WIPHY_ENTRY
197162306a36Sopenharmony_ci		WDEV_ENTRY
197262306a36Sopenharmony_ci		CHAN_ENTRY
197362306a36Sopenharmony_ci		__field(unsigned int, duration)
197462306a36Sopenharmony_ci	),
197562306a36Sopenharmony_ci	TP_fast_assign(
197662306a36Sopenharmony_ci		WIPHY_ASSIGN;
197762306a36Sopenharmony_ci		WDEV_ASSIGN;
197862306a36Sopenharmony_ci		CHAN_ASSIGN(chan);
197962306a36Sopenharmony_ci		__entry->duration = duration;
198062306a36Sopenharmony_ci	),
198162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u",
198262306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration)
198362306a36Sopenharmony_ci);
198462306a36Sopenharmony_ci
198562306a36Sopenharmony_ciTRACE_EVENT(rdev_return_int_cookie,
198662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie),
198762306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, cookie),
198862306a36Sopenharmony_ci	TP_STRUCT__entry(
198962306a36Sopenharmony_ci		WIPHY_ENTRY
199062306a36Sopenharmony_ci		__field(int, ret)
199162306a36Sopenharmony_ci		__field(u64, cookie)
199262306a36Sopenharmony_ci	),
199362306a36Sopenharmony_ci	TP_fast_assign(
199462306a36Sopenharmony_ci		WIPHY_ASSIGN;
199562306a36Sopenharmony_ci		__entry->ret = ret;
199662306a36Sopenharmony_ci		__entry->cookie = cookie;
199762306a36Sopenharmony_ci	),
199862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu",
199962306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->ret, __entry->cookie)
200062306a36Sopenharmony_ci);
200162306a36Sopenharmony_ci
200262306a36Sopenharmony_ciTRACE_EVENT(rdev_cancel_remain_on_channel,
200362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
200462306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie),
200562306a36Sopenharmony_ci	TP_STRUCT__entry(
200662306a36Sopenharmony_ci		WIPHY_ENTRY
200762306a36Sopenharmony_ci		WDEV_ENTRY
200862306a36Sopenharmony_ci		__field(u64, cookie)
200962306a36Sopenharmony_ci	),
201062306a36Sopenharmony_ci	TP_fast_assign(
201162306a36Sopenharmony_ci		WIPHY_ASSIGN;
201262306a36Sopenharmony_ci		WDEV_ASSIGN;
201362306a36Sopenharmony_ci		__entry->cookie = cookie;
201462306a36Sopenharmony_ci	),
201562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu",
201662306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie)
201762306a36Sopenharmony_ci);
201862306a36Sopenharmony_ci
201962306a36Sopenharmony_ciTRACE_EVENT(rdev_mgmt_tx,
202062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
202162306a36Sopenharmony_ci		 struct cfg80211_mgmt_tx_params *params),
202262306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, params),
202362306a36Sopenharmony_ci	TP_STRUCT__entry(
202462306a36Sopenharmony_ci		WIPHY_ENTRY
202562306a36Sopenharmony_ci		WDEV_ENTRY
202662306a36Sopenharmony_ci		CHAN_ENTRY
202762306a36Sopenharmony_ci		__field(bool, offchan)
202862306a36Sopenharmony_ci		__field(unsigned int, wait)
202962306a36Sopenharmony_ci		__field(bool, no_cck)
203062306a36Sopenharmony_ci		__field(bool, dont_wait_for_ack)
203162306a36Sopenharmony_ci	),
203262306a36Sopenharmony_ci	TP_fast_assign(
203362306a36Sopenharmony_ci		WIPHY_ASSIGN;
203462306a36Sopenharmony_ci		WDEV_ASSIGN;
203562306a36Sopenharmony_ci		CHAN_ASSIGN(params->chan);
203662306a36Sopenharmony_ci		__entry->offchan = params->offchan;
203762306a36Sopenharmony_ci		__entry->wait = params->wait;
203862306a36Sopenharmony_ci		__entry->no_cck = params->no_cck;
203962306a36Sopenharmony_ci		__entry->dont_wait_for_ack = params->dont_wait_for_ack;
204062306a36Sopenharmony_ci	),
204162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s,"
204262306a36Sopenharmony_ci		  " wait: %u, no cck: %s, dont wait for ack: %s",
204362306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG,
204462306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->offchan), __entry->wait,
204562306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->no_cck),
204662306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->dont_wait_for_ack))
204762306a36Sopenharmony_ci);
204862306a36Sopenharmony_ci
204962306a36Sopenharmony_ciTRACE_EVENT(rdev_tx_control_port,
205062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
205162306a36Sopenharmony_ci		 const u8 *buf, size_t len, const u8 *dest, __be16 proto,
205262306a36Sopenharmony_ci		 bool unencrypted, int link_id),
205362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted, link_id),
205462306a36Sopenharmony_ci	TP_STRUCT__entry(
205562306a36Sopenharmony_ci		WIPHY_ENTRY
205662306a36Sopenharmony_ci		NETDEV_ENTRY
205762306a36Sopenharmony_ci		MAC_ENTRY(dest)
205862306a36Sopenharmony_ci		__field(__be16, proto)
205962306a36Sopenharmony_ci		__field(bool, unencrypted)
206062306a36Sopenharmony_ci		__field(int, link_id)
206162306a36Sopenharmony_ci	),
206262306a36Sopenharmony_ci	TP_fast_assign(
206362306a36Sopenharmony_ci		WIPHY_ASSIGN;
206462306a36Sopenharmony_ci		NETDEV_ASSIGN;
206562306a36Sopenharmony_ci		MAC_ASSIGN(dest, dest);
206662306a36Sopenharmony_ci		__entry->proto = proto;
206762306a36Sopenharmony_ci		__entry->unencrypted = unencrypted;
206862306a36Sopenharmony_ci		__entry->link_id = link_id;
206962306a36Sopenharmony_ci	),
207062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM,"
207162306a36Sopenharmony_ci		  " proto: 0x%x, unencrypted: %s, link: %d",
207262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest,
207362306a36Sopenharmony_ci		  be16_to_cpu(__entry->proto),
207462306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->unencrypted),
207562306a36Sopenharmony_ci		  __entry->link_id)
207662306a36Sopenharmony_ci);
207762306a36Sopenharmony_ci
207862306a36Sopenharmony_ciTRACE_EVENT(rdev_set_noack_map,
207962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
208062306a36Sopenharmony_ci		 u16 noack_map),
208162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, noack_map),
208262306a36Sopenharmony_ci	TP_STRUCT__entry(
208362306a36Sopenharmony_ci		WIPHY_ENTRY
208462306a36Sopenharmony_ci		NETDEV_ENTRY
208562306a36Sopenharmony_ci		__field(u16, noack_map)
208662306a36Sopenharmony_ci	),
208762306a36Sopenharmony_ci	TP_fast_assign(
208862306a36Sopenharmony_ci		WIPHY_ASSIGN;
208962306a36Sopenharmony_ci		NETDEV_ASSIGN;
209062306a36Sopenharmony_ci		__entry->noack_map = noack_map;
209162306a36Sopenharmony_ci	),
209262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u",
209362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map)
209462306a36Sopenharmony_ci);
209562306a36Sopenharmony_ci
209662306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_wdev_link_evt,
209762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
209862306a36Sopenharmony_ci		 unsigned int link_id),
209962306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, link_id),
210062306a36Sopenharmony_ci	TP_STRUCT__entry(
210162306a36Sopenharmony_ci		WIPHY_ENTRY
210262306a36Sopenharmony_ci		WDEV_ENTRY
210362306a36Sopenharmony_ci		__field(unsigned int, link_id)
210462306a36Sopenharmony_ci	),
210562306a36Sopenharmony_ci	TP_fast_assign(
210662306a36Sopenharmony_ci		WIPHY_ASSIGN;
210762306a36Sopenharmony_ci		WDEV_ASSIGN;
210862306a36Sopenharmony_ci		__entry->link_id = link_id;
210962306a36Sopenharmony_ci	),
211062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u",
211162306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id)
211262306a36Sopenharmony_ci);
211362306a36Sopenharmony_ci
211462306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel,
211562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
211662306a36Sopenharmony_ci		 unsigned int link_id),
211762306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, link_id)
211862306a36Sopenharmony_ci);
211962306a36Sopenharmony_ci
212062306a36Sopenharmony_ciTRACE_EVENT(rdev_return_chandef,
212162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, int ret,
212262306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef),
212362306a36Sopenharmony_ci	TP_ARGS(wiphy, ret, chandef),
212462306a36Sopenharmony_ci	TP_STRUCT__entry(
212562306a36Sopenharmony_ci		WIPHY_ENTRY
212662306a36Sopenharmony_ci		__field(int, ret)
212762306a36Sopenharmony_ci		CHAN_DEF_ENTRY
212862306a36Sopenharmony_ci	),
212962306a36Sopenharmony_ci	TP_fast_assign(
213062306a36Sopenharmony_ci		WIPHY_ASSIGN;
213162306a36Sopenharmony_ci		if (ret == 0)
213262306a36Sopenharmony_ci			CHAN_DEF_ASSIGN(chandef);
213362306a36Sopenharmony_ci		else
213462306a36Sopenharmony_ci			CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL);
213562306a36Sopenharmony_ci		__entry->ret = ret;
213662306a36Sopenharmony_ci	),
213762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d",
213862306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret)
213962306a36Sopenharmony_ci);
214062306a36Sopenharmony_ci
214162306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device,
214262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
214362306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
214462306a36Sopenharmony_ci);
214562306a36Sopenharmony_ci
214662306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device,
214762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
214862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
214962306a36Sopenharmony_ci);
215062306a36Sopenharmony_ci
215162306a36Sopenharmony_ciTRACE_EVENT(rdev_start_nan,
215262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
215362306a36Sopenharmony_ci		 struct cfg80211_nan_conf *conf),
215462306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, conf),
215562306a36Sopenharmony_ci	TP_STRUCT__entry(
215662306a36Sopenharmony_ci		WIPHY_ENTRY
215762306a36Sopenharmony_ci		WDEV_ENTRY
215862306a36Sopenharmony_ci		__field(u8, master_pref)
215962306a36Sopenharmony_ci		__field(u8, bands)
216062306a36Sopenharmony_ci	),
216162306a36Sopenharmony_ci	TP_fast_assign(
216262306a36Sopenharmony_ci		WIPHY_ASSIGN;
216362306a36Sopenharmony_ci		WDEV_ASSIGN;
216462306a36Sopenharmony_ci		__entry->master_pref = conf->master_pref;
216562306a36Sopenharmony_ci		__entry->bands = conf->bands;
216662306a36Sopenharmony_ci	),
216762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT
216862306a36Sopenharmony_ci		  ", master preference: %u, bands: 0x%0x",
216962306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref,
217062306a36Sopenharmony_ci		  __entry->bands)
217162306a36Sopenharmony_ci);
217262306a36Sopenharmony_ci
217362306a36Sopenharmony_ciTRACE_EVENT(rdev_nan_change_conf,
217462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
217562306a36Sopenharmony_ci		 struct cfg80211_nan_conf *conf, u32 changes),
217662306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, conf, changes),
217762306a36Sopenharmony_ci	TP_STRUCT__entry(
217862306a36Sopenharmony_ci		WIPHY_ENTRY
217962306a36Sopenharmony_ci		WDEV_ENTRY
218062306a36Sopenharmony_ci		__field(u8, master_pref)
218162306a36Sopenharmony_ci		__field(u8, bands)
218262306a36Sopenharmony_ci		__field(u32, changes)
218362306a36Sopenharmony_ci	),
218462306a36Sopenharmony_ci	TP_fast_assign(
218562306a36Sopenharmony_ci		WIPHY_ASSIGN;
218662306a36Sopenharmony_ci		WDEV_ASSIGN;
218762306a36Sopenharmony_ci		__entry->master_pref = conf->master_pref;
218862306a36Sopenharmony_ci		__entry->bands = conf->bands;
218962306a36Sopenharmony_ci		__entry->changes = changes;
219062306a36Sopenharmony_ci	),
219162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT
219262306a36Sopenharmony_ci		  ", master preference: %u, bands: 0x%0x, changes: %x",
219362306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref,
219462306a36Sopenharmony_ci		  __entry->bands, __entry->changes)
219562306a36Sopenharmony_ci);
219662306a36Sopenharmony_ci
219762306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan,
219862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
219962306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
220062306a36Sopenharmony_ci);
220162306a36Sopenharmony_ci
220262306a36Sopenharmony_ciTRACE_EVENT(rdev_add_nan_func,
220362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
220462306a36Sopenharmony_ci		 const struct cfg80211_nan_func *func),
220562306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, func),
220662306a36Sopenharmony_ci	TP_STRUCT__entry(
220762306a36Sopenharmony_ci		WIPHY_ENTRY
220862306a36Sopenharmony_ci		WDEV_ENTRY
220962306a36Sopenharmony_ci		__field(u8, func_type)
221062306a36Sopenharmony_ci		__field(u64, cookie)
221162306a36Sopenharmony_ci	),
221262306a36Sopenharmony_ci	TP_fast_assign(
221362306a36Sopenharmony_ci		WIPHY_ASSIGN;
221462306a36Sopenharmony_ci		WDEV_ASSIGN;
221562306a36Sopenharmony_ci		__entry->func_type = func->type;
221662306a36Sopenharmony_ci		__entry->cookie = func->cookie
221762306a36Sopenharmony_ci	),
221862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu",
221962306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type,
222062306a36Sopenharmony_ci		  __entry->cookie)
222162306a36Sopenharmony_ci);
222262306a36Sopenharmony_ci
222362306a36Sopenharmony_ciTRACE_EVENT(rdev_del_nan_func,
222462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
222562306a36Sopenharmony_ci		 u64 cookie),
222662306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie),
222762306a36Sopenharmony_ci	TP_STRUCT__entry(
222862306a36Sopenharmony_ci		WIPHY_ENTRY
222962306a36Sopenharmony_ci		WDEV_ENTRY
223062306a36Sopenharmony_ci		__field(u64, cookie)
223162306a36Sopenharmony_ci	),
223262306a36Sopenharmony_ci	TP_fast_assign(
223362306a36Sopenharmony_ci		WIPHY_ASSIGN;
223462306a36Sopenharmony_ci		WDEV_ASSIGN;
223562306a36Sopenharmony_ci		__entry->cookie = cookie;
223662306a36Sopenharmony_ci	),
223762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu",
223862306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie)
223962306a36Sopenharmony_ci);
224062306a36Sopenharmony_ci
224162306a36Sopenharmony_ciTRACE_EVENT(rdev_set_mac_acl,
224262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
224362306a36Sopenharmony_ci		 struct cfg80211_acl_data *params),
224462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
224562306a36Sopenharmony_ci	TP_STRUCT__entry(
224662306a36Sopenharmony_ci		WIPHY_ENTRY
224762306a36Sopenharmony_ci		NETDEV_ENTRY
224862306a36Sopenharmony_ci		__field(u32, acl_policy)
224962306a36Sopenharmony_ci	),
225062306a36Sopenharmony_ci	TP_fast_assign(
225162306a36Sopenharmony_ci		WIPHY_ASSIGN;
225262306a36Sopenharmony_ci		NETDEV_ASSIGN;
225362306a36Sopenharmony_ci		__entry->acl_policy = params->acl_policy;
225462306a36Sopenharmony_ci	),
225562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d",
225662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy)
225762306a36Sopenharmony_ci);
225862306a36Sopenharmony_ci
225962306a36Sopenharmony_ciTRACE_EVENT(rdev_update_ft_ies,
226062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
226162306a36Sopenharmony_ci		 struct cfg80211_update_ft_ies_params *ftie),
226262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, ftie),
226362306a36Sopenharmony_ci	TP_STRUCT__entry(
226462306a36Sopenharmony_ci		WIPHY_ENTRY
226562306a36Sopenharmony_ci		NETDEV_ENTRY
226662306a36Sopenharmony_ci		__field(u16, md)
226762306a36Sopenharmony_ci		__dynamic_array(u8, ie, ftie->ie_len)
226862306a36Sopenharmony_ci	),
226962306a36Sopenharmony_ci	TP_fast_assign(
227062306a36Sopenharmony_ci		WIPHY_ASSIGN;
227162306a36Sopenharmony_ci		NETDEV_ASSIGN;
227262306a36Sopenharmony_ci		__entry->md = ftie->md;
227362306a36Sopenharmony_ci		memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len);
227462306a36Sopenharmony_ci	),
227562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x",
227662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md)
227762306a36Sopenharmony_ci);
227862306a36Sopenharmony_ci
227962306a36Sopenharmony_ciTRACE_EVENT(rdev_crit_proto_start,
228062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
228162306a36Sopenharmony_ci		 enum nl80211_crit_proto_id protocol, u16 duration),
228262306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, protocol, duration),
228362306a36Sopenharmony_ci	TP_STRUCT__entry(
228462306a36Sopenharmony_ci		WIPHY_ENTRY
228562306a36Sopenharmony_ci		WDEV_ENTRY
228662306a36Sopenharmony_ci		__field(u16, proto)
228762306a36Sopenharmony_ci		__field(u16, duration)
228862306a36Sopenharmony_ci	),
228962306a36Sopenharmony_ci	TP_fast_assign(
229062306a36Sopenharmony_ci		WIPHY_ASSIGN;
229162306a36Sopenharmony_ci		WDEV_ASSIGN;
229262306a36Sopenharmony_ci		__entry->proto = protocol;
229362306a36Sopenharmony_ci		__entry->duration = duration;
229462306a36Sopenharmony_ci	),
229562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u",
229662306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration)
229762306a36Sopenharmony_ci);
229862306a36Sopenharmony_ci
229962306a36Sopenharmony_ciTRACE_EVENT(rdev_crit_proto_stop,
230062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
230162306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev),
230262306a36Sopenharmony_ci	TP_STRUCT__entry(
230362306a36Sopenharmony_ci		WIPHY_ENTRY
230462306a36Sopenharmony_ci		WDEV_ENTRY
230562306a36Sopenharmony_ci	),
230662306a36Sopenharmony_ci	TP_fast_assign(
230762306a36Sopenharmony_ci		WIPHY_ASSIGN;
230862306a36Sopenharmony_ci		WDEV_ASSIGN;
230962306a36Sopenharmony_ci	),
231062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT,
231162306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG)
231262306a36Sopenharmony_ci);
231362306a36Sopenharmony_ci
231462306a36Sopenharmony_ciTRACE_EVENT(rdev_channel_switch,
231562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
231662306a36Sopenharmony_ci		 struct cfg80211_csa_settings *params),
231762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
231862306a36Sopenharmony_ci	TP_STRUCT__entry(
231962306a36Sopenharmony_ci		WIPHY_ENTRY
232062306a36Sopenharmony_ci		NETDEV_ENTRY
232162306a36Sopenharmony_ci		CHAN_DEF_ENTRY
232262306a36Sopenharmony_ci		__field(bool, radar_required)
232362306a36Sopenharmony_ci		__field(bool, block_tx)
232462306a36Sopenharmony_ci		__field(u8, count)
232562306a36Sopenharmony_ci		__dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon)
232662306a36Sopenharmony_ci		__dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp)
232762306a36Sopenharmony_ci	),
232862306a36Sopenharmony_ci	TP_fast_assign(
232962306a36Sopenharmony_ci		WIPHY_ASSIGN;
233062306a36Sopenharmony_ci		NETDEV_ASSIGN;
233162306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(&params->chandef);
233262306a36Sopenharmony_ci		__entry->radar_required = params->radar_required;
233362306a36Sopenharmony_ci		__entry->block_tx = params->block_tx;
233462306a36Sopenharmony_ci		__entry->count = params->count;
233562306a36Sopenharmony_ci		memcpy(__get_dynamic_array(bcn_ofs),
233662306a36Sopenharmony_ci		       params->counter_offsets_beacon,
233762306a36Sopenharmony_ci		       params->n_counter_offsets_beacon * sizeof(u16));
233862306a36Sopenharmony_ci
233962306a36Sopenharmony_ci		/* probe response offsets are optional */
234062306a36Sopenharmony_ci		if (params->n_counter_offsets_presp)
234162306a36Sopenharmony_ci			memcpy(__get_dynamic_array(pres_ofs),
234262306a36Sopenharmony_ci			       params->counter_offsets_presp,
234362306a36Sopenharmony_ci			       params->n_counter_offsets_presp * sizeof(u16));
234462306a36Sopenharmony_ci	),
234562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT
234662306a36Sopenharmony_ci		  ", block_tx: %d, count: %u, radar_required: %d",
234762306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
234862306a36Sopenharmony_ci		  __entry->block_tx, __entry->count, __entry->radar_required)
234962306a36Sopenharmony_ci);
235062306a36Sopenharmony_ci
235162306a36Sopenharmony_ciTRACE_EVENT(rdev_set_qos_map,
235262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
235362306a36Sopenharmony_ci		 struct cfg80211_qos_map *qos_map),
235462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, qos_map),
235562306a36Sopenharmony_ci	TP_STRUCT__entry(
235662306a36Sopenharmony_ci		WIPHY_ENTRY
235762306a36Sopenharmony_ci		NETDEV_ENTRY
235862306a36Sopenharmony_ci		QOS_MAP_ENTRY
235962306a36Sopenharmony_ci	),
236062306a36Sopenharmony_ci	TP_fast_assign(
236162306a36Sopenharmony_ci		WIPHY_ASSIGN;
236262306a36Sopenharmony_ci		NETDEV_ASSIGN;
236362306a36Sopenharmony_ci		QOS_MAP_ASSIGN(qos_map);
236462306a36Sopenharmony_ci	),
236562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u",
236662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des)
236762306a36Sopenharmony_ci);
236862306a36Sopenharmony_ci
236962306a36Sopenharmony_ciTRACE_EVENT(rdev_set_ap_chanwidth,
237062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
237162306a36Sopenharmony_ci		 unsigned int link_id,
237262306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef),
237362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, link_id, chandef),
237462306a36Sopenharmony_ci	TP_STRUCT__entry(
237562306a36Sopenharmony_ci		WIPHY_ENTRY
237662306a36Sopenharmony_ci		NETDEV_ENTRY
237762306a36Sopenharmony_ci		CHAN_DEF_ENTRY
237862306a36Sopenharmony_ci		__field(unsigned int, link_id)
237962306a36Sopenharmony_ci	),
238062306a36Sopenharmony_ci	TP_fast_assign(
238162306a36Sopenharmony_ci		WIPHY_ASSIGN;
238262306a36Sopenharmony_ci		NETDEV_ASSIGN;
238362306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
238462306a36Sopenharmony_ci		__entry->link_id = link_id;
238562306a36Sopenharmony_ci	),
238662306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
238762306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
238862306a36Sopenharmony_ci		  __entry->link_id)
238962306a36Sopenharmony_ci);
239062306a36Sopenharmony_ci
239162306a36Sopenharmony_ciTRACE_EVENT(rdev_add_tx_ts,
239262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
239362306a36Sopenharmony_ci		 u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time),
239462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time),
239562306a36Sopenharmony_ci	TP_STRUCT__entry(
239662306a36Sopenharmony_ci		WIPHY_ENTRY
239762306a36Sopenharmony_ci		NETDEV_ENTRY
239862306a36Sopenharmony_ci		MAC_ENTRY(peer)
239962306a36Sopenharmony_ci		__field(u8, tsid)
240062306a36Sopenharmony_ci		__field(u8, user_prio)
240162306a36Sopenharmony_ci		__field(u16, admitted_time)
240262306a36Sopenharmony_ci	),
240362306a36Sopenharmony_ci	TP_fast_assign(
240462306a36Sopenharmony_ci		WIPHY_ASSIGN;
240562306a36Sopenharmony_ci		NETDEV_ASSIGN;
240662306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
240762306a36Sopenharmony_ci		__entry->tsid = tsid;
240862306a36Sopenharmony_ci		__entry->user_prio = user_prio;
240962306a36Sopenharmony_ci		__entry->admitted_time = admitted_time;
241062306a36Sopenharmony_ci	),
241162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d",
241262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
241362306a36Sopenharmony_ci		  __entry->tsid, __entry->user_prio, __entry->admitted_time)
241462306a36Sopenharmony_ci);
241562306a36Sopenharmony_ci
241662306a36Sopenharmony_ciTRACE_EVENT(rdev_del_tx_ts,
241762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
241862306a36Sopenharmony_ci		 u8 tsid, const u8 *peer),
241962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, tsid, peer),
242062306a36Sopenharmony_ci	TP_STRUCT__entry(
242162306a36Sopenharmony_ci		WIPHY_ENTRY
242262306a36Sopenharmony_ci		NETDEV_ENTRY
242362306a36Sopenharmony_ci		MAC_ENTRY(peer)
242462306a36Sopenharmony_ci		__field(u8, tsid)
242562306a36Sopenharmony_ci	),
242662306a36Sopenharmony_ci	TP_fast_assign(
242762306a36Sopenharmony_ci		WIPHY_ASSIGN;
242862306a36Sopenharmony_ci		NETDEV_ASSIGN;
242962306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
243062306a36Sopenharmony_ci		__entry->tsid = tsid;
243162306a36Sopenharmony_ci	),
243262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d",
243362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid)
243462306a36Sopenharmony_ci);
243562306a36Sopenharmony_ci
243662306a36Sopenharmony_ciTRACE_EVENT(rdev_tdls_channel_switch,
243762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
243862306a36Sopenharmony_ci		 const u8 *addr, u8 oper_class,
243962306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef),
244062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, addr, oper_class, chandef),
244162306a36Sopenharmony_ci	TP_STRUCT__entry(
244262306a36Sopenharmony_ci		WIPHY_ENTRY
244362306a36Sopenharmony_ci		NETDEV_ENTRY
244462306a36Sopenharmony_ci		MAC_ENTRY(addr)
244562306a36Sopenharmony_ci		__field(u8, oper_class)
244662306a36Sopenharmony_ci		CHAN_DEF_ENTRY
244762306a36Sopenharmony_ci	),
244862306a36Sopenharmony_ci	TP_fast_assign(
244962306a36Sopenharmony_ci		WIPHY_ASSIGN;
245062306a36Sopenharmony_ci		NETDEV_ASSIGN;
245162306a36Sopenharmony_ci		MAC_ASSIGN(addr, addr);
245262306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
245362306a36Sopenharmony_ci	),
245462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
245562306a36Sopenharmony_ci		  " oper class %d, " CHAN_DEF_PR_FMT,
245662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr,
245762306a36Sopenharmony_ci		  __entry->oper_class, CHAN_DEF_PR_ARG)
245862306a36Sopenharmony_ci);
245962306a36Sopenharmony_ci
246062306a36Sopenharmony_ciTRACE_EVENT(rdev_tdls_cancel_channel_switch,
246162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
246262306a36Sopenharmony_ci		 const u8 *addr),
246362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, addr),
246462306a36Sopenharmony_ci	TP_STRUCT__entry(
246562306a36Sopenharmony_ci		WIPHY_ENTRY
246662306a36Sopenharmony_ci		NETDEV_ENTRY
246762306a36Sopenharmony_ci		MAC_ENTRY(addr)
246862306a36Sopenharmony_ci	),
246962306a36Sopenharmony_ci	TP_fast_assign(
247062306a36Sopenharmony_ci		WIPHY_ASSIGN;
247162306a36Sopenharmony_ci		NETDEV_ASSIGN;
247262306a36Sopenharmony_ci		MAC_ASSIGN(addr, addr);
247362306a36Sopenharmony_ci	),
247462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
247562306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr)
247662306a36Sopenharmony_ci);
247762306a36Sopenharmony_ci
247862306a36Sopenharmony_ciTRACE_EVENT(rdev_set_pmk,
247962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
248062306a36Sopenharmony_ci		 struct cfg80211_pmk_conf *pmk_conf),
248162306a36Sopenharmony_ci
248262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, pmk_conf),
248362306a36Sopenharmony_ci
248462306a36Sopenharmony_ci	TP_STRUCT__entry(
248562306a36Sopenharmony_ci		WIPHY_ENTRY
248662306a36Sopenharmony_ci		NETDEV_ENTRY
248762306a36Sopenharmony_ci		MAC_ENTRY(aa)
248862306a36Sopenharmony_ci		__field(u8, pmk_len)
248962306a36Sopenharmony_ci		__field(u8, pmk_r0_name_len)
249062306a36Sopenharmony_ci		__dynamic_array(u8, pmk, pmk_conf->pmk_len)
249162306a36Sopenharmony_ci		__dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN)
249262306a36Sopenharmony_ci	),
249362306a36Sopenharmony_ci
249462306a36Sopenharmony_ci	TP_fast_assign(
249562306a36Sopenharmony_ci		WIPHY_ASSIGN;
249662306a36Sopenharmony_ci		NETDEV_ASSIGN;
249762306a36Sopenharmony_ci		MAC_ASSIGN(aa, pmk_conf->aa);
249862306a36Sopenharmony_ci		__entry->pmk_len = pmk_conf->pmk_len;
249962306a36Sopenharmony_ci		__entry->pmk_r0_name_len =
250062306a36Sopenharmony_ci		pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0;
250162306a36Sopenharmony_ci		memcpy(__get_dynamic_array(pmk), pmk_conf->pmk,
250262306a36Sopenharmony_ci		       pmk_conf->pmk_len);
250362306a36Sopenharmony_ci		memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name,
250462306a36Sopenharmony_ci		       pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0);
250562306a36Sopenharmony_ci	),
250662306a36Sopenharmony_ci
250762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
250862306a36Sopenharmony_ci		  "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG,
250962306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->aa, __entry->pmk_len,
251062306a36Sopenharmony_ci		  __print_array(__get_dynamic_array(pmk),
251162306a36Sopenharmony_ci				__get_dynamic_array_len(pmk), 1),
251262306a36Sopenharmony_ci		  __entry->pmk_r0_name_len ?
251362306a36Sopenharmony_ci		  __print_array(__get_dynamic_array(pmk_r0_name),
251462306a36Sopenharmony_ci				__get_dynamic_array_len(pmk_r0_name), 1) : "")
251562306a36Sopenharmony_ci);
251662306a36Sopenharmony_ci
251762306a36Sopenharmony_ciTRACE_EVENT(rdev_del_pmk,
251862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa),
251962306a36Sopenharmony_ci
252062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, aa),
252162306a36Sopenharmony_ci
252262306a36Sopenharmony_ci	TP_STRUCT__entry(
252362306a36Sopenharmony_ci		WIPHY_ENTRY
252462306a36Sopenharmony_ci		NETDEV_ENTRY
252562306a36Sopenharmony_ci		MAC_ENTRY(aa)
252662306a36Sopenharmony_ci	),
252762306a36Sopenharmony_ci
252862306a36Sopenharmony_ci	TP_fast_assign(
252962306a36Sopenharmony_ci		WIPHY_ASSIGN;
253062306a36Sopenharmony_ci		NETDEV_ASSIGN;
253162306a36Sopenharmony_ci		MAC_ASSIGN(aa, aa);
253262306a36Sopenharmony_ci	),
253362306a36Sopenharmony_ci
253462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
253562306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa)
253662306a36Sopenharmony_ci);
253762306a36Sopenharmony_ci
253862306a36Sopenharmony_ciTRACE_EVENT(rdev_external_auth,
253962306a36Sopenharmony_ci	    TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
254062306a36Sopenharmony_ci		     struct cfg80211_external_auth_params *params),
254162306a36Sopenharmony_ci	    TP_ARGS(wiphy, netdev, params),
254262306a36Sopenharmony_ci	    TP_STRUCT__entry(WIPHY_ENTRY
254362306a36Sopenharmony_ci			     NETDEV_ENTRY
254462306a36Sopenharmony_ci			     MAC_ENTRY(bssid)
254562306a36Sopenharmony_ci			     __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1)
254662306a36Sopenharmony_ci			     __field(u16, status)
254762306a36Sopenharmony_ci			     MAC_ENTRY(mld_addr)
254862306a36Sopenharmony_ci	    ),
254962306a36Sopenharmony_ci	    TP_fast_assign(WIPHY_ASSIGN;
255062306a36Sopenharmony_ci			   NETDEV_ASSIGN;
255162306a36Sopenharmony_ci			   MAC_ASSIGN(bssid, params->bssid);
255262306a36Sopenharmony_ci			   memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
255362306a36Sopenharmony_ci			   memcpy(__entry->ssid, params->ssid.ssid,
255462306a36Sopenharmony_ci				  params->ssid.ssid_len);
255562306a36Sopenharmony_ci			   __entry->status = params->status;
255662306a36Sopenharmony_ci			   MAC_ASSIGN(mld_addr, params->mld_addr);
255762306a36Sopenharmony_ci	    ),
255862306a36Sopenharmony_ci	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
255962306a36Sopenharmony_ci		      ", ssid: %s, status: %u, mld_addr: %pM",
256062306a36Sopenharmony_ci		      WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
256162306a36Sopenharmony_ci		      __entry->ssid, __entry->status, __entry->mld_addr)
256262306a36Sopenharmony_ci);
256362306a36Sopenharmony_ci
256462306a36Sopenharmony_ciTRACE_EVENT(rdev_start_radar_detection,
256562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
256662306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef,
256762306a36Sopenharmony_ci		 u32 cac_time_ms),
256862306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, chandef, cac_time_ms),
256962306a36Sopenharmony_ci	TP_STRUCT__entry(
257062306a36Sopenharmony_ci		WIPHY_ENTRY
257162306a36Sopenharmony_ci		NETDEV_ENTRY
257262306a36Sopenharmony_ci		CHAN_DEF_ENTRY
257362306a36Sopenharmony_ci		__field(u32, cac_time_ms)
257462306a36Sopenharmony_ci	),
257562306a36Sopenharmony_ci	TP_fast_assign(
257662306a36Sopenharmony_ci		WIPHY_ASSIGN;
257762306a36Sopenharmony_ci		NETDEV_ASSIGN;
257862306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
257962306a36Sopenharmony_ci		__entry->cac_time_ms = cac_time_ms;
258062306a36Sopenharmony_ci	),
258162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT
258262306a36Sopenharmony_ci		  ", cac_time_ms=%u",
258362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
258462306a36Sopenharmony_ci		  __entry->cac_time_ms)
258562306a36Sopenharmony_ci);
258662306a36Sopenharmony_ci
258762306a36Sopenharmony_ciTRACE_EVENT(rdev_set_mcast_rate,
258862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
258962306a36Sopenharmony_ci		 int *mcast_rate),
259062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, mcast_rate),
259162306a36Sopenharmony_ci	TP_STRUCT__entry(
259262306a36Sopenharmony_ci		WIPHY_ENTRY
259362306a36Sopenharmony_ci		NETDEV_ENTRY
259462306a36Sopenharmony_ci		__array(int, mcast_rate, NUM_NL80211_BANDS)
259562306a36Sopenharmony_ci	),
259662306a36Sopenharmony_ci	TP_fast_assign(
259762306a36Sopenharmony_ci		WIPHY_ASSIGN;
259862306a36Sopenharmony_ci		NETDEV_ASSIGN;
259962306a36Sopenharmony_ci		memcpy(__entry->mcast_rate, mcast_rate,
260062306a36Sopenharmony_ci		       sizeof(int) * NUM_NL80211_BANDS);
260162306a36Sopenharmony_ci	),
260262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", "
260362306a36Sopenharmony_ci		  "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]",
260462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,
260562306a36Sopenharmony_ci		  __entry->mcast_rate[NL80211_BAND_2GHZ],
260662306a36Sopenharmony_ci		  __entry->mcast_rate[NL80211_BAND_5GHZ],
260762306a36Sopenharmony_ci		  __entry->mcast_rate[NL80211_BAND_6GHZ],
260862306a36Sopenharmony_ci		  __entry->mcast_rate[NL80211_BAND_60GHZ])
260962306a36Sopenharmony_ci);
261062306a36Sopenharmony_ci
261162306a36Sopenharmony_ciTRACE_EVENT(rdev_set_coalesce,
261262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce),
261362306a36Sopenharmony_ci	TP_ARGS(wiphy, coalesce),
261462306a36Sopenharmony_ci	TP_STRUCT__entry(
261562306a36Sopenharmony_ci		WIPHY_ENTRY
261662306a36Sopenharmony_ci		__field(int, n_rules)
261762306a36Sopenharmony_ci	),
261862306a36Sopenharmony_ci	TP_fast_assign(
261962306a36Sopenharmony_ci		WIPHY_ASSIGN;
262062306a36Sopenharmony_ci		__entry->n_rules = coalesce ? coalesce->n_rules : 0;
262162306a36Sopenharmony_ci	),
262262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", n_rules=%d",
262362306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->n_rules)
262462306a36Sopenharmony_ci);
262562306a36Sopenharmony_ci
262662306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan,
262762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
262862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
262962306a36Sopenharmony_ci);
263062306a36Sopenharmony_ci
263162306a36Sopenharmony_ciTRACE_EVENT(rdev_set_multicast_to_unicast,
263262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
263362306a36Sopenharmony_ci		 const bool enabled),
263462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, enabled),
263562306a36Sopenharmony_ci	TP_STRUCT__entry(
263662306a36Sopenharmony_ci		WIPHY_ENTRY
263762306a36Sopenharmony_ci		NETDEV_ENTRY
263862306a36Sopenharmony_ci		__field(bool, enabled)
263962306a36Sopenharmony_ci	),
264062306a36Sopenharmony_ci	TP_fast_assign(
264162306a36Sopenharmony_ci		WIPHY_ASSIGN;
264262306a36Sopenharmony_ci		NETDEV_ASSIGN;
264362306a36Sopenharmony_ci		__entry->enabled = enabled;
264462306a36Sopenharmony_ci	),
264562306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s",
264662306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,
264762306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->enabled))
264862306a36Sopenharmony_ci);
264962306a36Sopenharmony_ci
265062306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats,
265162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
265262306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev)
265362306a36Sopenharmony_ci);
265462306a36Sopenharmony_ci
265562306a36Sopenharmony_ciTRACE_EVENT(rdev_get_ftm_responder_stats,
265662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
265762306a36Sopenharmony_ci		 struct cfg80211_ftm_responder_stats *ftm_stats),
265862306a36Sopenharmony_ci
265962306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, ftm_stats),
266062306a36Sopenharmony_ci
266162306a36Sopenharmony_ci	TP_STRUCT__entry(
266262306a36Sopenharmony_ci		WIPHY_ENTRY
266362306a36Sopenharmony_ci		NETDEV_ENTRY
266462306a36Sopenharmony_ci		__field(u64, timestamp)
266562306a36Sopenharmony_ci		__field(u32, success_num)
266662306a36Sopenharmony_ci		__field(u32, partial_num)
266762306a36Sopenharmony_ci		__field(u32, failed_num)
266862306a36Sopenharmony_ci		__field(u32, asap_num)
266962306a36Sopenharmony_ci		__field(u32, non_asap_num)
267062306a36Sopenharmony_ci		__field(u64, duration)
267162306a36Sopenharmony_ci		__field(u32, unknown_triggers)
267262306a36Sopenharmony_ci		__field(u32, reschedule)
267362306a36Sopenharmony_ci		__field(u32, out_of_window)
267462306a36Sopenharmony_ci	),
267562306a36Sopenharmony_ci
267662306a36Sopenharmony_ci	TP_fast_assign(
267762306a36Sopenharmony_ci		WIPHY_ASSIGN;
267862306a36Sopenharmony_ci		NETDEV_ASSIGN;
267962306a36Sopenharmony_ci		__entry->success_num = ftm_stats->success_num;
268062306a36Sopenharmony_ci		__entry->partial_num = ftm_stats->partial_num;
268162306a36Sopenharmony_ci		__entry->failed_num = ftm_stats->failed_num;
268262306a36Sopenharmony_ci		__entry->asap_num = ftm_stats->asap_num;
268362306a36Sopenharmony_ci		__entry->non_asap_num = ftm_stats->non_asap_num;
268462306a36Sopenharmony_ci		__entry->duration = ftm_stats->total_duration_ms;
268562306a36Sopenharmony_ci		__entry->unknown_triggers = ftm_stats->unknown_triggers_num;
268662306a36Sopenharmony_ci		__entry->reschedule = ftm_stats->reschedule_requests_num;
268762306a36Sopenharmony_ci		__entry->out_of_window = ftm_stats->out_of_window_triggers_num;
268862306a36Sopenharmony_ci	),
268962306a36Sopenharmony_ci
269062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, "
269162306a36Sopenharmony_ci		"failed %u, asap %u, non asap %u, total duration %llu, unknown "
269262306a36Sopenharmony_ci		"triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG,
269362306a36Sopenharmony_ci		__entry->success_num, __entry->partial_num, __entry->failed_num,
269462306a36Sopenharmony_ci		__entry->asap_num, __entry->non_asap_num, __entry->duration,
269562306a36Sopenharmony_ci		__entry->unknown_triggers, __entry->reschedule,
269662306a36Sopenharmony_ci		__entry->out_of_window)
269762306a36Sopenharmony_ci);
269862306a36Sopenharmony_ci
269962306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr,
270062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
270162306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie)
270262306a36Sopenharmony_ci);
270362306a36Sopenharmony_ci
270462306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr,
270562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
270662306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie)
270762306a36Sopenharmony_ci);
270862306a36Sopenharmony_ci
270962306a36Sopenharmony_ciTRACE_EVENT(rdev_set_fils_aad,
271062306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
271162306a36Sopenharmony_ci		 struct cfg80211_fils_aad *fils_aad),
271262306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, fils_aad),
271362306a36Sopenharmony_ci	TP_STRUCT__entry(WIPHY_ENTRY
271462306a36Sopenharmony_ci		NETDEV_ENTRY
271562306a36Sopenharmony_ci		__array(u8, macaddr, ETH_ALEN)
271662306a36Sopenharmony_ci		__field(u8, kek_len)
271762306a36Sopenharmony_ci	),
271862306a36Sopenharmony_ci	TP_fast_assign(WIPHY_ASSIGN;
271962306a36Sopenharmony_ci		NETDEV_ASSIGN;
272062306a36Sopenharmony_ci		FILS_AAD_ASSIGN(fils_aad);
272162306a36Sopenharmony_ci	),
272262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT,
272362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr,
272462306a36Sopenharmony_ci		  __entry->kek_len)
272562306a36Sopenharmony_ci);
272662306a36Sopenharmony_ci
272762306a36Sopenharmony_ciTRACE_EVENT(rdev_update_owe_info,
272862306a36Sopenharmony_ci	    TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
272962306a36Sopenharmony_ci		     struct cfg80211_update_owe_info *owe_info),
273062306a36Sopenharmony_ci	    TP_ARGS(wiphy, netdev, owe_info),
273162306a36Sopenharmony_ci	    TP_STRUCT__entry(WIPHY_ENTRY
273262306a36Sopenharmony_ci			     NETDEV_ENTRY
273362306a36Sopenharmony_ci			     MAC_ENTRY(peer)
273462306a36Sopenharmony_ci			     __field(u16, status)
273562306a36Sopenharmony_ci			     __dynamic_array(u8, ie, owe_info->ie_len)),
273662306a36Sopenharmony_ci	    TP_fast_assign(WIPHY_ASSIGN;
273762306a36Sopenharmony_ci			   NETDEV_ASSIGN;
273862306a36Sopenharmony_ci			   MAC_ASSIGN(peer, owe_info->peer);
273962306a36Sopenharmony_ci			   __entry->status = owe_info->status;
274062306a36Sopenharmony_ci			   memcpy(__get_dynamic_array(ie),
274162306a36Sopenharmony_ci				  owe_info->ie, owe_info->ie_len);),
274262306a36Sopenharmony_ci	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM"
274362306a36Sopenharmony_ci		  " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
274462306a36Sopenharmony_ci		  __entry->status)
274562306a36Sopenharmony_ci);
274662306a36Sopenharmony_ci
274762306a36Sopenharmony_ciTRACE_EVENT(rdev_probe_mesh_link,
274862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
274962306a36Sopenharmony_ci		 const u8 *dest, const u8 *buf, size_t len),
275062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, dest, buf, len),
275162306a36Sopenharmony_ci	TP_STRUCT__entry(
275262306a36Sopenharmony_ci		WIPHY_ENTRY
275362306a36Sopenharmony_ci		NETDEV_ENTRY
275462306a36Sopenharmony_ci		MAC_ENTRY(dest)
275562306a36Sopenharmony_ci	),
275662306a36Sopenharmony_ci	TP_fast_assign(
275762306a36Sopenharmony_ci		WIPHY_ASSIGN;
275862306a36Sopenharmony_ci		NETDEV_ASSIGN;
275962306a36Sopenharmony_ci		MAC_ASSIGN(dest, dest);
276062306a36Sopenharmony_ci	),
276162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
276262306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest)
276362306a36Sopenharmony_ci);
276462306a36Sopenharmony_ci
276562306a36Sopenharmony_ciTRACE_EVENT(rdev_set_tid_config,
276662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
276762306a36Sopenharmony_ci		 struct cfg80211_tid_config *tid_conf),
276862306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, tid_conf),
276962306a36Sopenharmony_ci	TP_STRUCT__entry(
277062306a36Sopenharmony_ci		WIPHY_ENTRY
277162306a36Sopenharmony_ci		NETDEV_ENTRY
277262306a36Sopenharmony_ci		MAC_ENTRY(peer)
277362306a36Sopenharmony_ci	),
277462306a36Sopenharmony_ci	TP_fast_assign(
277562306a36Sopenharmony_ci		WIPHY_ASSIGN;
277662306a36Sopenharmony_ci		NETDEV_ASSIGN;
277762306a36Sopenharmony_ci		MAC_ASSIGN(peer, tid_conf->peer);
277862306a36Sopenharmony_ci	),
277962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM",
278062306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
278162306a36Sopenharmony_ci);
278262306a36Sopenharmony_ci
278362306a36Sopenharmony_ciTRACE_EVENT(rdev_reset_tid_config,
278462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
278562306a36Sopenharmony_ci		 const u8 *peer, u8 tids),
278662306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, peer, tids),
278762306a36Sopenharmony_ci	TP_STRUCT__entry(
278862306a36Sopenharmony_ci		WIPHY_ENTRY
278962306a36Sopenharmony_ci		NETDEV_ENTRY
279062306a36Sopenharmony_ci		MAC_ENTRY(peer)
279162306a36Sopenharmony_ci		__field(u8, tids)
279262306a36Sopenharmony_ci	),
279362306a36Sopenharmony_ci	TP_fast_assign(
279462306a36Sopenharmony_ci		WIPHY_ASSIGN;
279562306a36Sopenharmony_ci		NETDEV_ASSIGN;
279662306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
279762306a36Sopenharmony_ci		__entry->tids = tids;
279862306a36Sopenharmony_ci	),
279962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x",
280062306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids)
280162306a36Sopenharmony_ci);
280262306a36Sopenharmony_ci
280362306a36Sopenharmony_ciTRACE_EVENT(rdev_set_sar_specs,
280462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar),
280562306a36Sopenharmony_ci	TP_ARGS(wiphy, sar),
280662306a36Sopenharmony_ci	TP_STRUCT__entry(
280762306a36Sopenharmony_ci		WIPHY_ENTRY
280862306a36Sopenharmony_ci		__field(u16, type)
280962306a36Sopenharmony_ci		__field(u16, num)
281062306a36Sopenharmony_ci	),
281162306a36Sopenharmony_ci	TP_fast_assign(
281262306a36Sopenharmony_ci		WIPHY_ASSIGN;
281362306a36Sopenharmony_ci		__entry->type = sar->type;
281462306a36Sopenharmony_ci		__entry->num = sar->num_sub_specs;
281562306a36Sopenharmony_ci
281662306a36Sopenharmony_ci	),
281762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d",
281862306a36Sopenharmony_ci		  WIPHY_PR_ARG, __entry->type, __entry->num)
281962306a36Sopenharmony_ci);
282062306a36Sopenharmony_ci
282162306a36Sopenharmony_ciTRACE_EVENT(rdev_color_change,
282262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
282362306a36Sopenharmony_ci		 struct cfg80211_color_change_settings *params),
282462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
282562306a36Sopenharmony_ci	TP_STRUCT__entry(
282662306a36Sopenharmony_ci		WIPHY_ENTRY
282762306a36Sopenharmony_ci		NETDEV_ENTRY
282862306a36Sopenharmony_ci		__field(u8, count)
282962306a36Sopenharmony_ci		__field(u16, bcn_ofs)
283062306a36Sopenharmony_ci		__field(u16, pres_ofs)
283162306a36Sopenharmony_ci	),
283262306a36Sopenharmony_ci	TP_fast_assign(
283362306a36Sopenharmony_ci		WIPHY_ASSIGN;
283462306a36Sopenharmony_ci		NETDEV_ASSIGN;
283562306a36Sopenharmony_ci		__entry->count = params->count;
283662306a36Sopenharmony_ci		__entry->bcn_ofs = params->counter_offset_beacon;
283762306a36Sopenharmony_ci		__entry->pres_ofs = params->counter_offset_presp;
283862306a36Sopenharmony_ci	),
283962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
284062306a36Sopenharmony_ci		  ", count: %u",
284162306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG,
284262306a36Sopenharmony_ci		  __entry->count)
284362306a36Sopenharmony_ci);
284462306a36Sopenharmony_ci
284562306a36Sopenharmony_ciTRACE_EVENT(rdev_set_radar_background,
284662306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
284762306a36Sopenharmony_ci
284862306a36Sopenharmony_ci	TP_ARGS(wiphy, chandef),
284962306a36Sopenharmony_ci
285062306a36Sopenharmony_ci	TP_STRUCT__entry(
285162306a36Sopenharmony_ci		WIPHY_ENTRY
285262306a36Sopenharmony_ci		CHAN_DEF_ENTRY
285362306a36Sopenharmony_ci	),
285462306a36Sopenharmony_ci
285562306a36Sopenharmony_ci	TP_fast_assign(
285662306a36Sopenharmony_ci		WIPHY_ASSIGN;
285762306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef)
285862306a36Sopenharmony_ci	),
285962306a36Sopenharmony_ci
286062306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
286162306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
286262306a36Sopenharmony_ci);
286362306a36Sopenharmony_ci
286462306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link,
286562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
286662306a36Sopenharmony_ci		 unsigned int link_id),
286762306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, link_id)
286862306a36Sopenharmony_ci);
286962306a36Sopenharmony_ci
287062306a36Sopenharmony_ciDEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link,
287162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
287262306a36Sopenharmony_ci		 unsigned int link_id),
287362306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, link_id)
287462306a36Sopenharmony_ci);
287562306a36Sopenharmony_ci
287662306a36Sopenharmony_ci/*************************************************************
287762306a36Sopenharmony_ci *	     cfg80211 exported functions traces		     *
287862306a36Sopenharmony_ci *************************************************************/
287962306a36Sopenharmony_ci
288062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_return_bool,
288162306a36Sopenharmony_ci	TP_PROTO(bool ret),
288262306a36Sopenharmony_ci	TP_ARGS(ret),
288362306a36Sopenharmony_ci	TP_STRUCT__entry(
288462306a36Sopenharmony_ci		__field(bool, ret)
288562306a36Sopenharmony_ci	),
288662306a36Sopenharmony_ci	TP_fast_assign(
288762306a36Sopenharmony_ci		__entry->ret = ret;
288862306a36Sopenharmony_ci	),
288962306a36Sopenharmony_ci	TP_printk("returned %s", BOOL_TO_STR(__entry->ret))
289062306a36Sopenharmony_ci);
289162306a36Sopenharmony_ci
289262306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt,
289362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *macaddr),
289462306a36Sopenharmony_ci	TP_ARGS(netdev, macaddr),
289562306a36Sopenharmony_ci	TP_STRUCT__entry(
289662306a36Sopenharmony_ci		NETDEV_ENTRY
289762306a36Sopenharmony_ci		MAC_ENTRY(macaddr)
289862306a36Sopenharmony_ci	),
289962306a36Sopenharmony_ci	TP_fast_assign(
290062306a36Sopenharmony_ci		NETDEV_ASSIGN;
290162306a36Sopenharmony_ci		MAC_ASSIGN(macaddr, macaddr);
290262306a36Sopenharmony_ci	),
290362306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", mac: %pM",
290462306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->macaddr)
290562306a36Sopenharmony_ci);
290662306a36Sopenharmony_ci
290762306a36Sopenharmony_ciDEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate,
290862306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *macaddr),
290962306a36Sopenharmony_ci	TP_ARGS(netdev, macaddr)
291062306a36Sopenharmony_ci);
291162306a36Sopenharmony_ci
291262306a36Sopenharmony_ciDECLARE_EVENT_CLASS(netdev_evt_only,
291362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev),
291462306a36Sopenharmony_ci	TP_ARGS(netdev),
291562306a36Sopenharmony_ci	TP_STRUCT__entry(
291662306a36Sopenharmony_ci		NETDEV_ENTRY
291762306a36Sopenharmony_ci	),
291862306a36Sopenharmony_ci	TP_fast_assign(
291962306a36Sopenharmony_ci		NETDEV_ASSIGN;
292062306a36Sopenharmony_ci	),
292162306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG)
292262306a36Sopenharmony_ci);
292362306a36Sopenharmony_ci
292462306a36Sopenharmony_ciDEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth,
292562306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev),
292662306a36Sopenharmony_ci	TP_ARGS(netdev)
292762306a36Sopenharmony_ci);
292862306a36Sopenharmony_ci
292962306a36Sopenharmony_ciTRACE_EVENT(cfg80211_send_rx_assoc,
293062306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev,
293162306a36Sopenharmony_ci		 struct cfg80211_rx_assoc_resp *data),
293262306a36Sopenharmony_ci	TP_ARGS(netdev, data),
293362306a36Sopenharmony_ci	TP_STRUCT__entry(
293462306a36Sopenharmony_ci		NETDEV_ENTRY
293562306a36Sopenharmony_ci		MAC_ENTRY(ap_addr)
293662306a36Sopenharmony_ci	),
293762306a36Sopenharmony_ci	TP_fast_assign(
293862306a36Sopenharmony_ci		NETDEV_ASSIGN;
293962306a36Sopenharmony_ci		MAC_ASSIGN(ap_addr,
294062306a36Sopenharmony_ci			   data->ap_mld_addr ?: data->links[0].bss->bssid);
294162306a36Sopenharmony_ci	),
294262306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", %pM",
294362306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->ap_addr)
294462306a36Sopenharmony_ci);
294562306a36Sopenharmony_ci
294662306a36Sopenharmony_ciDECLARE_EVENT_CLASS(netdev_frame_event,
294762306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *buf, int len),
294862306a36Sopenharmony_ci	TP_ARGS(netdev, buf, len),
294962306a36Sopenharmony_ci	TP_STRUCT__entry(
295062306a36Sopenharmony_ci		NETDEV_ENTRY
295162306a36Sopenharmony_ci		__dynamic_array(u8, frame, len)
295262306a36Sopenharmony_ci	),
295362306a36Sopenharmony_ci	TP_fast_assign(
295462306a36Sopenharmony_ci		NETDEV_ASSIGN;
295562306a36Sopenharmony_ci		memcpy(__get_dynamic_array(frame), buf, len);
295662306a36Sopenharmony_ci	),
295762306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x",
295862306a36Sopenharmony_ci		  NETDEV_PR_ARG,
295962306a36Sopenharmony_ci		  le16_to_cpup((__le16 *)__get_dynamic_array(frame)))
296062306a36Sopenharmony_ci);
296162306a36Sopenharmony_ci
296262306a36Sopenharmony_ciDEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt,
296362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *buf, int len),
296462306a36Sopenharmony_ci	TP_ARGS(netdev, buf, len)
296562306a36Sopenharmony_ci);
296662306a36Sopenharmony_ci
296762306a36Sopenharmony_ciDEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt,
296862306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *buf, int len),
296962306a36Sopenharmony_ci	TP_ARGS(netdev, buf, len)
297062306a36Sopenharmony_ci);
297162306a36Sopenharmony_ci
297262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_tx_mlme_mgmt,
297362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *buf, int len,
297462306a36Sopenharmony_ci		 bool reconnect),
297562306a36Sopenharmony_ci	TP_ARGS(netdev, buf, len, reconnect),
297662306a36Sopenharmony_ci	TP_STRUCT__entry(
297762306a36Sopenharmony_ci		NETDEV_ENTRY
297862306a36Sopenharmony_ci		__dynamic_array(u8, frame, len)
297962306a36Sopenharmony_ci		__field(int, reconnect)
298062306a36Sopenharmony_ci	),
298162306a36Sopenharmony_ci	TP_fast_assign(
298262306a36Sopenharmony_ci		NETDEV_ASSIGN;
298362306a36Sopenharmony_ci		memcpy(__get_dynamic_array(frame), buf, len);
298462306a36Sopenharmony_ci		__entry->reconnect = reconnect;
298562306a36Sopenharmony_ci	),
298662306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d",
298762306a36Sopenharmony_ci		  NETDEV_PR_ARG,
298862306a36Sopenharmony_ci		  le16_to_cpup((__le16 *)__get_dynamic_array(frame)),
298962306a36Sopenharmony_ci		  __entry->reconnect)
299062306a36Sopenharmony_ci);
299162306a36Sopenharmony_ci
299262306a36Sopenharmony_ciDECLARE_EVENT_CLASS(netdev_mac_evt,
299362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *mac),
299462306a36Sopenharmony_ci	TP_ARGS(netdev, mac),
299562306a36Sopenharmony_ci	TP_STRUCT__entry(
299662306a36Sopenharmony_ci		NETDEV_ENTRY
299762306a36Sopenharmony_ci		MAC_ENTRY(mac)
299862306a36Sopenharmony_ci	),
299962306a36Sopenharmony_ci	TP_fast_assign(
300062306a36Sopenharmony_ci		NETDEV_ASSIGN;
300162306a36Sopenharmony_ci		MAC_ASSIGN(mac, mac)
300262306a36Sopenharmony_ci	),
300362306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", mac: %pM",
300462306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->mac)
300562306a36Sopenharmony_ci);
300662306a36Sopenharmony_ci
300762306a36Sopenharmony_ciDEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout,
300862306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *mac),
300962306a36Sopenharmony_ci	TP_ARGS(netdev, mac)
301062306a36Sopenharmony_ci);
301162306a36Sopenharmony_ci
301262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_send_assoc_failure,
301362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev,
301462306a36Sopenharmony_ci		 struct cfg80211_assoc_failure *data),
301562306a36Sopenharmony_ci	TP_ARGS(netdev, data),
301662306a36Sopenharmony_ci	TP_STRUCT__entry(
301762306a36Sopenharmony_ci		NETDEV_ENTRY
301862306a36Sopenharmony_ci		MAC_ENTRY(ap_addr)
301962306a36Sopenharmony_ci		__field(bool, timeout)
302062306a36Sopenharmony_ci	),
302162306a36Sopenharmony_ci	TP_fast_assign(
302262306a36Sopenharmony_ci		NETDEV_ASSIGN;
302362306a36Sopenharmony_ci		MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid);
302462306a36Sopenharmony_ci		__entry->timeout = data->timeout;
302562306a36Sopenharmony_ci	),
302662306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d",
302762306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
302862306a36Sopenharmony_ci);
302962306a36Sopenharmony_ci
303062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_michael_mic_failure,
303162306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *addr,
303262306a36Sopenharmony_ci		 enum nl80211_key_type key_type, int key_id, const u8 *tsc),
303362306a36Sopenharmony_ci	TP_ARGS(netdev, addr, key_type, key_id, tsc),
303462306a36Sopenharmony_ci	TP_STRUCT__entry(
303562306a36Sopenharmony_ci		NETDEV_ENTRY
303662306a36Sopenharmony_ci		MAC_ENTRY(addr)
303762306a36Sopenharmony_ci		__field(enum nl80211_key_type, key_type)
303862306a36Sopenharmony_ci		__field(int, key_id)
303962306a36Sopenharmony_ci		__array(u8, tsc, 6)
304062306a36Sopenharmony_ci	),
304162306a36Sopenharmony_ci	TP_fast_assign(
304262306a36Sopenharmony_ci		NETDEV_ASSIGN;
304362306a36Sopenharmony_ci		MAC_ASSIGN(addr, addr);
304462306a36Sopenharmony_ci		__entry->key_type = key_type;
304562306a36Sopenharmony_ci		__entry->key_id = key_id;
304662306a36Sopenharmony_ci		if (tsc)
304762306a36Sopenharmony_ci			memcpy(__entry->tsc, tsc, 6);
304862306a36Sopenharmony_ci	),
304962306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm",
305062306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->addr, __entry->key_type,
305162306a36Sopenharmony_ci		  __entry->key_id, __entry->tsc)
305262306a36Sopenharmony_ci);
305362306a36Sopenharmony_ci
305462306a36Sopenharmony_ciTRACE_EVENT(cfg80211_ready_on_channel,
305562306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, u64 cookie,
305662306a36Sopenharmony_ci		 struct ieee80211_channel *chan,
305762306a36Sopenharmony_ci		 unsigned int duration),
305862306a36Sopenharmony_ci	TP_ARGS(wdev, cookie, chan, duration),
305962306a36Sopenharmony_ci	TP_STRUCT__entry(
306062306a36Sopenharmony_ci		WDEV_ENTRY
306162306a36Sopenharmony_ci		__field(u64, cookie)
306262306a36Sopenharmony_ci		CHAN_ENTRY
306362306a36Sopenharmony_ci		__field(unsigned int, duration)
306462306a36Sopenharmony_ci	),
306562306a36Sopenharmony_ci	TP_fast_assign(
306662306a36Sopenharmony_ci		WDEV_ASSIGN;
306762306a36Sopenharmony_ci		__entry->cookie = cookie;
306862306a36Sopenharmony_ci		CHAN_ASSIGN(chan);
306962306a36Sopenharmony_ci		__entry->duration = duration;
307062306a36Sopenharmony_ci	),
307162306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u",
307262306a36Sopenharmony_ci		  WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG,
307362306a36Sopenharmony_ci		  __entry->duration)
307462306a36Sopenharmony_ci);
307562306a36Sopenharmony_ci
307662306a36Sopenharmony_ciTRACE_EVENT(cfg80211_ready_on_channel_expired,
307762306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, u64 cookie,
307862306a36Sopenharmony_ci		 struct ieee80211_channel *chan),
307962306a36Sopenharmony_ci	TP_ARGS(wdev, cookie, chan),
308062306a36Sopenharmony_ci	TP_STRUCT__entry(
308162306a36Sopenharmony_ci		WDEV_ENTRY
308262306a36Sopenharmony_ci		__field(u64, cookie)
308362306a36Sopenharmony_ci		CHAN_ENTRY
308462306a36Sopenharmony_ci	),
308562306a36Sopenharmony_ci	TP_fast_assign(
308662306a36Sopenharmony_ci		WDEV_ASSIGN;
308762306a36Sopenharmony_ci		__entry->cookie = cookie;
308862306a36Sopenharmony_ci		CHAN_ASSIGN(chan);
308962306a36Sopenharmony_ci	),
309062306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT,
309162306a36Sopenharmony_ci		  WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG)
309262306a36Sopenharmony_ci);
309362306a36Sopenharmony_ci
309462306a36Sopenharmony_ciTRACE_EVENT(cfg80211_tx_mgmt_expired,
309562306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, u64 cookie,
309662306a36Sopenharmony_ci		 struct ieee80211_channel *chan),
309762306a36Sopenharmony_ci	TP_ARGS(wdev, cookie, chan),
309862306a36Sopenharmony_ci	TP_STRUCT__entry(
309962306a36Sopenharmony_ci		WDEV_ENTRY
310062306a36Sopenharmony_ci		__field(u64, cookie)
310162306a36Sopenharmony_ci		CHAN_ENTRY
310262306a36Sopenharmony_ci	),
310362306a36Sopenharmony_ci	TP_fast_assign(
310462306a36Sopenharmony_ci		WDEV_ASSIGN;
310562306a36Sopenharmony_ci		__entry->cookie = cookie;
310662306a36Sopenharmony_ci		CHAN_ASSIGN(chan);
310762306a36Sopenharmony_ci	),
310862306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT,
310962306a36Sopenharmony_ci		  WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG)
311062306a36Sopenharmony_ci);
311162306a36Sopenharmony_ci
311262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_new_sta,
311362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *mac_addr,
311462306a36Sopenharmony_ci		 struct station_info *sinfo),
311562306a36Sopenharmony_ci	TP_ARGS(netdev, mac_addr, sinfo),
311662306a36Sopenharmony_ci	TP_STRUCT__entry(
311762306a36Sopenharmony_ci		NETDEV_ENTRY
311862306a36Sopenharmony_ci		MAC_ENTRY(mac_addr)
311962306a36Sopenharmony_ci		SINFO_ENTRY
312062306a36Sopenharmony_ci	),
312162306a36Sopenharmony_ci	TP_fast_assign(
312262306a36Sopenharmony_ci		NETDEV_ASSIGN;
312362306a36Sopenharmony_ci		MAC_ASSIGN(mac_addr, mac_addr);
312462306a36Sopenharmony_ci		SINFO_ASSIGN;
312562306a36Sopenharmony_ci	),
312662306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", %pM",
312762306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->mac_addr)
312862306a36Sopenharmony_ci);
312962306a36Sopenharmony_ci
313062306a36Sopenharmony_ciDEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta,
313162306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *macaddr),
313262306a36Sopenharmony_ci	TP_ARGS(netdev, macaddr)
313362306a36Sopenharmony_ci);
313462306a36Sopenharmony_ci
313562306a36Sopenharmony_ciTRACE_EVENT(cfg80211_rx_mgmt,
313662306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, struct cfg80211_rx_info *info),
313762306a36Sopenharmony_ci	TP_ARGS(wdev, info),
313862306a36Sopenharmony_ci	TP_STRUCT__entry(
313962306a36Sopenharmony_ci		WDEV_ENTRY
314062306a36Sopenharmony_ci		__field(int, freq)
314162306a36Sopenharmony_ci		__field(int, sig_dbm)
314262306a36Sopenharmony_ci	),
314362306a36Sopenharmony_ci	TP_fast_assign(
314462306a36Sopenharmony_ci		WDEV_ASSIGN;
314562306a36Sopenharmony_ci		__entry->freq = info->freq;
314662306a36Sopenharmony_ci		__entry->sig_dbm = info->sig_dbm;
314762306a36Sopenharmony_ci	),
314862306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d",
314962306a36Sopenharmony_ci		  WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm)
315062306a36Sopenharmony_ci);
315162306a36Sopenharmony_ci
315262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_mgmt_tx_status,
315362306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack),
315462306a36Sopenharmony_ci	TP_ARGS(wdev, cookie, ack),
315562306a36Sopenharmony_ci	TP_STRUCT__entry(
315662306a36Sopenharmony_ci		WDEV_ENTRY
315762306a36Sopenharmony_ci		__field(u64, cookie)
315862306a36Sopenharmony_ci		__field(bool, ack)
315962306a36Sopenharmony_ci	),
316062306a36Sopenharmony_ci	TP_fast_assign(
316162306a36Sopenharmony_ci		WDEV_ASSIGN;
316262306a36Sopenharmony_ci		__entry->cookie = cookie;
316362306a36Sopenharmony_ci		__entry->ack = ack;
316462306a36Sopenharmony_ci	),
316562306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s",
316662306a36Sopenharmony_ci		  WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack))
316762306a36Sopenharmony_ci);
316862306a36Sopenharmony_ci
316962306a36Sopenharmony_ciTRACE_EVENT(cfg80211_control_port_tx_status,
317062306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack),
317162306a36Sopenharmony_ci	TP_ARGS(wdev, cookie, ack),
317262306a36Sopenharmony_ci	TP_STRUCT__entry(
317362306a36Sopenharmony_ci		WDEV_ENTRY
317462306a36Sopenharmony_ci		__field(u64, cookie)
317562306a36Sopenharmony_ci		__field(bool, ack)
317662306a36Sopenharmony_ci	),
317762306a36Sopenharmony_ci	TP_fast_assign(
317862306a36Sopenharmony_ci		WDEV_ASSIGN;
317962306a36Sopenharmony_ci		__entry->cookie = cookie;
318062306a36Sopenharmony_ci		__entry->ack = ack;
318162306a36Sopenharmony_ci	),
318262306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s",
318362306a36Sopenharmony_ci		  WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack))
318462306a36Sopenharmony_ci);
318562306a36Sopenharmony_ci
318662306a36Sopenharmony_ciTRACE_EVENT(cfg80211_rx_control_port,
318762306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, struct sk_buff *skb,
318862306a36Sopenharmony_ci		 bool unencrypted, int link_id),
318962306a36Sopenharmony_ci	TP_ARGS(netdev, skb, unencrypted, link_id),
319062306a36Sopenharmony_ci	TP_STRUCT__entry(
319162306a36Sopenharmony_ci		NETDEV_ENTRY
319262306a36Sopenharmony_ci		__field(int, len)
319362306a36Sopenharmony_ci		MAC_ENTRY(from)
319462306a36Sopenharmony_ci		__field(u16, proto)
319562306a36Sopenharmony_ci		__field(bool, unencrypted)
319662306a36Sopenharmony_ci		__field(int, link_id)
319762306a36Sopenharmony_ci	),
319862306a36Sopenharmony_ci	TP_fast_assign(
319962306a36Sopenharmony_ci		NETDEV_ASSIGN;
320062306a36Sopenharmony_ci		__entry->len = skb->len;
320162306a36Sopenharmony_ci		MAC_ASSIGN(from, eth_hdr(skb)->h_source);
320262306a36Sopenharmony_ci		__entry->proto = be16_to_cpu(skb->protocol);
320362306a36Sopenharmony_ci		__entry->unencrypted = unencrypted;
320462306a36Sopenharmony_ci		__entry->link_id = link_id;
320562306a36Sopenharmony_ci	),
320662306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s, link: %d",
320762306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->len, __entry->from,
320862306a36Sopenharmony_ci		  __entry->proto, BOOL_TO_STR(__entry->unencrypted),
320962306a36Sopenharmony_ci		  __entry->link_id)
321062306a36Sopenharmony_ci);
321162306a36Sopenharmony_ci
321262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_cqm_rssi_notify,
321362306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev,
321462306a36Sopenharmony_ci		 enum nl80211_cqm_rssi_threshold_event rssi_event,
321562306a36Sopenharmony_ci		 s32 rssi_level),
321662306a36Sopenharmony_ci	TP_ARGS(netdev, rssi_event, rssi_level),
321762306a36Sopenharmony_ci	TP_STRUCT__entry(
321862306a36Sopenharmony_ci		NETDEV_ENTRY
321962306a36Sopenharmony_ci		__field(enum nl80211_cqm_rssi_threshold_event, rssi_event)
322062306a36Sopenharmony_ci		__field(s32, rssi_level)
322162306a36Sopenharmony_ci	),
322262306a36Sopenharmony_ci	TP_fast_assign(
322362306a36Sopenharmony_ci		NETDEV_ASSIGN;
322462306a36Sopenharmony_ci		__entry->rssi_event = rssi_event;
322562306a36Sopenharmony_ci		__entry->rssi_level = rssi_level;
322662306a36Sopenharmony_ci	),
322762306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d",
322862306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level)
322962306a36Sopenharmony_ci);
323062306a36Sopenharmony_ci
323162306a36Sopenharmony_ciTRACE_EVENT(cfg80211_reg_can_beacon,
323262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef,
323362306a36Sopenharmony_ci		 enum nl80211_iftype iftype, bool check_no_ir),
323462306a36Sopenharmony_ci	TP_ARGS(wiphy, chandef, iftype, check_no_ir),
323562306a36Sopenharmony_ci	TP_STRUCT__entry(
323662306a36Sopenharmony_ci		WIPHY_ENTRY
323762306a36Sopenharmony_ci		CHAN_DEF_ENTRY
323862306a36Sopenharmony_ci		__field(enum nl80211_iftype, iftype)
323962306a36Sopenharmony_ci		__field(bool, check_no_ir)
324062306a36Sopenharmony_ci	),
324162306a36Sopenharmony_ci	TP_fast_assign(
324262306a36Sopenharmony_ci		WIPHY_ASSIGN;
324362306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
324462306a36Sopenharmony_ci		__entry->iftype = iftype;
324562306a36Sopenharmony_ci		__entry->check_no_ir = check_no_ir;
324662306a36Sopenharmony_ci	),
324762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s",
324862306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype,
324962306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->check_no_ir))
325062306a36Sopenharmony_ci);
325162306a36Sopenharmony_ci
325262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_chandef_dfs_required,
325362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
325462306a36Sopenharmony_ci	TP_ARGS(wiphy, chandef),
325562306a36Sopenharmony_ci	TP_STRUCT__entry(
325662306a36Sopenharmony_ci		WIPHY_ENTRY
325762306a36Sopenharmony_ci		CHAN_DEF_ENTRY
325862306a36Sopenharmony_ci	),
325962306a36Sopenharmony_ci	TP_fast_assign(
326062306a36Sopenharmony_ci		WIPHY_ASSIGN;
326162306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
326262306a36Sopenharmony_ci	),
326362306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
326462306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
326562306a36Sopenharmony_ci);
326662306a36Sopenharmony_ci
326762306a36Sopenharmony_ciTRACE_EVENT(cfg80211_ch_switch_notify,
326862306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev,
326962306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef,
327062306a36Sopenharmony_ci		 unsigned int link_id,
327162306a36Sopenharmony_ci		 u16 punct_bitmap),
327262306a36Sopenharmony_ci	TP_ARGS(netdev, chandef, link_id, punct_bitmap),
327362306a36Sopenharmony_ci	TP_STRUCT__entry(
327462306a36Sopenharmony_ci		NETDEV_ENTRY
327562306a36Sopenharmony_ci		CHAN_DEF_ENTRY
327662306a36Sopenharmony_ci		__field(unsigned int, link_id)
327762306a36Sopenharmony_ci		__field(u16, punct_bitmap)
327862306a36Sopenharmony_ci	),
327962306a36Sopenharmony_ci	TP_fast_assign(
328062306a36Sopenharmony_ci		NETDEV_ASSIGN;
328162306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
328262306a36Sopenharmony_ci		__entry->link_id = link_id;
328362306a36Sopenharmony_ci		__entry->punct_bitmap = punct_bitmap;
328462306a36Sopenharmony_ci	),
328562306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
328662306a36Sopenharmony_ci		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
328762306a36Sopenharmony_ci		  __entry->punct_bitmap)
328862306a36Sopenharmony_ci);
328962306a36Sopenharmony_ci
329062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_ch_switch_started_notify,
329162306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev,
329262306a36Sopenharmony_ci		 struct cfg80211_chan_def *chandef,
329362306a36Sopenharmony_ci		 unsigned int link_id,
329462306a36Sopenharmony_ci		 u16 punct_bitmap),
329562306a36Sopenharmony_ci	TP_ARGS(netdev, chandef, link_id, punct_bitmap),
329662306a36Sopenharmony_ci	TP_STRUCT__entry(
329762306a36Sopenharmony_ci		NETDEV_ENTRY
329862306a36Sopenharmony_ci		CHAN_DEF_ENTRY
329962306a36Sopenharmony_ci		__field(unsigned int, link_id)
330062306a36Sopenharmony_ci		__field(u16, punct_bitmap)
330162306a36Sopenharmony_ci	),
330262306a36Sopenharmony_ci	TP_fast_assign(
330362306a36Sopenharmony_ci		NETDEV_ASSIGN;
330462306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
330562306a36Sopenharmony_ci		__entry->link_id = link_id;
330662306a36Sopenharmony_ci		__entry->punct_bitmap = punct_bitmap;
330762306a36Sopenharmony_ci	),
330862306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
330962306a36Sopenharmony_ci		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
331062306a36Sopenharmony_ci		  __entry->punct_bitmap)
331162306a36Sopenharmony_ci);
331262306a36Sopenharmony_ci
331362306a36Sopenharmony_ciTRACE_EVENT(cfg80211_radar_event,
331462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef,
331562306a36Sopenharmony_ci		 bool offchan),
331662306a36Sopenharmony_ci	TP_ARGS(wiphy, chandef, offchan),
331762306a36Sopenharmony_ci	TP_STRUCT__entry(
331862306a36Sopenharmony_ci		WIPHY_ENTRY
331962306a36Sopenharmony_ci		CHAN_DEF_ENTRY
332062306a36Sopenharmony_ci		__field(bool, offchan)
332162306a36Sopenharmony_ci	),
332262306a36Sopenharmony_ci	TP_fast_assign(
332362306a36Sopenharmony_ci		WIPHY_ASSIGN;
332462306a36Sopenharmony_ci		CHAN_DEF_ASSIGN(chandef);
332562306a36Sopenharmony_ci		__entry->offchan = offchan;
332662306a36Sopenharmony_ci	),
332762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d",
332862306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan)
332962306a36Sopenharmony_ci);
333062306a36Sopenharmony_ci
333162306a36Sopenharmony_ciTRACE_EVENT(cfg80211_cac_event,
333262306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt),
333362306a36Sopenharmony_ci	TP_ARGS(netdev, evt),
333462306a36Sopenharmony_ci	TP_STRUCT__entry(
333562306a36Sopenharmony_ci		NETDEV_ENTRY
333662306a36Sopenharmony_ci		__field(enum nl80211_radar_event, evt)
333762306a36Sopenharmony_ci	),
333862306a36Sopenharmony_ci	TP_fast_assign(
333962306a36Sopenharmony_ci		NETDEV_ASSIGN;
334062306a36Sopenharmony_ci		__entry->evt = evt;
334162306a36Sopenharmony_ci	),
334262306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ",  event: %d",
334362306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->evt)
334462306a36Sopenharmony_ci);
334562306a36Sopenharmony_ci
334662306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cfg80211_rx_evt,
334762306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *addr),
334862306a36Sopenharmony_ci	TP_ARGS(netdev, addr),
334962306a36Sopenharmony_ci	TP_STRUCT__entry(
335062306a36Sopenharmony_ci		NETDEV_ENTRY
335162306a36Sopenharmony_ci		MAC_ENTRY(addr)
335262306a36Sopenharmony_ci	),
335362306a36Sopenharmony_ci	TP_fast_assign(
335462306a36Sopenharmony_ci		NETDEV_ASSIGN;
335562306a36Sopenharmony_ci		MAC_ASSIGN(addr, addr);
335662306a36Sopenharmony_ci	),
335762306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr)
335862306a36Sopenharmony_ci);
335962306a36Sopenharmony_ci
336062306a36Sopenharmony_ciDEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame,
336162306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *addr),
336262306a36Sopenharmony_ci	TP_ARGS(netdev, addr)
336362306a36Sopenharmony_ci);
336462306a36Sopenharmony_ci
336562306a36Sopenharmony_ciDEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame,
336662306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *addr),
336762306a36Sopenharmony_ci	TP_ARGS(netdev, addr)
336862306a36Sopenharmony_ci);
336962306a36Sopenharmony_ci
337062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_ibss_joined,
337162306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *bssid,
337262306a36Sopenharmony_ci		 struct ieee80211_channel *channel),
337362306a36Sopenharmony_ci	TP_ARGS(netdev, bssid, channel),
337462306a36Sopenharmony_ci	TP_STRUCT__entry(
337562306a36Sopenharmony_ci		NETDEV_ENTRY
337662306a36Sopenharmony_ci		MAC_ENTRY(bssid)
337762306a36Sopenharmony_ci		CHAN_ENTRY
337862306a36Sopenharmony_ci	),
337962306a36Sopenharmony_ci	TP_fast_assign(
338062306a36Sopenharmony_ci		NETDEV_ASSIGN;
338162306a36Sopenharmony_ci		MAC_ASSIGN(bssid, bssid);
338262306a36Sopenharmony_ci		CHAN_ASSIGN(channel);
338362306a36Sopenharmony_ci	),
338462306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT,
338562306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG)
338662306a36Sopenharmony_ci);
338762306a36Sopenharmony_ci
338862306a36Sopenharmony_ciTRACE_EVENT(cfg80211_probe_status,
338962306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie,
339062306a36Sopenharmony_ci		 bool acked),
339162306a36Sopenharmony_ci	TP_ARGS(netdev, addr, cookie, acked),
339262306a36Sopenharmony_ci	TP_STRUCT__entry(
339362306a36Sopenharmony_ci		NETDEV_ENTRY
339462306a36Sopenharmony_ci		MAC_ENTRY(addr)
339562306a36Sopenharmony_ci		__field(u64, cookie)
339662306a36Sopenharmony_ci		__field(bool, acked)
339762306a36Sopenharmony_ci	),
339862306a36Sopenharmony_ci	TP_fast_assign(
339962306a36Sopenharmony_ci		NETDEV_ASSIGN;
340062306a36Sopenharmony_ci		MAC_ASSIGN(addr, addr);
340162306a36Sopenharmony_ci		__entry->cookie = cookie;
340262306a36Sopenharmony_ci		__entry->acked = acked;
340362306a36Sopenharmony_ci	),
340462306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s",
340562306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->addr, __entry->cookie,
340662306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->acked))
340762306a36Sopenharmony_ci);
340862306a36Sopenharmony_ci
340962306a36Sopenharmony_ciTRACE_EVENT(cfg80211_cqm_pktloss_notify,
341062306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets),
341162306a36Sopenharmony_ci	TP_ARGS(netdev, peer, num_packets),
341262306a36Sopenharmony_ci	TP_STRUCT__entry(
341362306a36Sopenharmony_ci		NETDEV_ENTRY
341462306a36Sopenharmony_ci		MAC_ENTRY(peer)
341562306a36Sopenharmony_ci		__field(u32, num_packets)
341662306a36Sopenharmony_ci	),
341762306a36Sopenharmony_ci	TP_fast_assign(
341862306a36Sopenharmony_ci		NETDEV_ASSIGN;
341962306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
342062306a36Sopenharmony_ci		__entry->num_packets = num_packets;
342162306a36Sopenharmony_ci	),
342262306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u",
342362306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->peer, __entry->num_packets)
342462306a36Sopenharmony_ci);
342562306a36Sopenharmony_ci
342662306a36Sopenharmony_ciDEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify,
342762306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, const u8 *macaddr),
342862306a36Sopenharmony_ci	TP_ARGS(netdev, macaddr)
342962306a36Sopenharmony_ci);
343062306a36Sopenharmony_ci
343162306a36Sopenharmony_ciTRACE_EVENT(cfg80211_pmksa_candidate_notify,
343262306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, int index, const u8 *bssid,
343362306a36Sopenharmony_ci		 bool preauth),
343462306a36Sopenharmony_ci	TP_ARGS(netdev, index, bssid, preauth),
343562306a36Sopenharmony_ci	TP_STRUCT__entry(
343662306a36Sopenharmony_ci		NETDEV_ENTRY
343762306a36Sopenharmony_ci		__field(int, index)
343862306a36Sopenharmony_ci		MAC_ENTRY(bssid)
343962306a36Sopenharmony_ci		__field(bool, preauth)
344062306a36Sopenharmony_ci	),
344162306a36Sopenharmony_ci	TP_fast_assign(
344262306a36Sopenharmony_ci		NETDEV_ASSIGN;
344362306a36Sopenharmony_ci		__entry->index = index;
344462306a36Sopenharmony_ci		MAC_ASSIGN(bssid, bssid);
344562306a36Sopenharmony_ci		__entry->preauth = preauth;
344662306a36Sopenharmony_ci	),
344762306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s",
344862306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->index, __entry->bssid,
344962306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->preauth))
345062306a36Sopenharmony_ci);
345162306a36Sopenharmony_ci
345262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_report_obss_beacon,
345362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len,
345462306a36Sopenharmony_ci		 int freq, int sig_dbm),
345562306a36Sopenharmony_ci	TP_ARGS(wiphy, frame, len, freq, sig_dbm),
345662306a36Sopenharmony_ci	TP_STRUCT__entry(
345762306a36Sopenharmony_ci		WIPHY_ENTRY
345862306a36Sopenharmony_ci		__field(int, freq)
345962306a36Sopenharmony_ci		__field(int, sig_dbm)
346062306a36Sopenharmony_ci	),
346162306a36Sopenharmony_ci	TP_fast_assign(
346262306a36Sopenharmony_ci		WIPHY_ASSIGN;
346362306a36Sopenharmony_ci		__entry->freq = freq;
346462306a36Sopenharmony_ci		__entry->sig_dbm = sig_dbm;
346562306a36Sopenharmony_ci	),
346662306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d",
346762306a36Sopenharmony_ci		  WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm)
346862306a36Sopenharmony_ci);
346962306a36Sopenharmony_ci
347062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_tdls_oper_request,
347162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer,
347262306a36Sopenharmony_ci		 enum nl80211_tdls_operation oper, u16 reason_code),
347362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, peer, oper, reason_code),
347462306a36Sopenharmony_ci	TP_STRUCT__entry(
347562306a36Sopenharmony_ci		WIPHY_ENTRY
347662306a36Sopenharmony_ci		NETDEV_ENTRY
347762306a36Sopenharmony_ci		MAC_ENTRY(peer)
347862306a36Sopenharmony_ci		__field(enum nl80211_tdls_operation, oper)
347962306a36Sopenharmony_ci		__field(u16, reason_code)
348062306a36Sopenharmony_ci	),
348162306a36Sopenharmony_ci	TP_fast_assign(
348262306a36Sopenharmony_ci		WIPHY_ASSIGN;
348362306a36Sopenharmony_ci		NETDEV_ASSIGN;
348462306a36Sopenharmony_ci		MAC_ASSIGN(peer, peer);
348562306a36Sopenharmony_ci		__entry->oper = oper;
348662306a36Sopenharmony_ci		__entry->reason_code = reason_code;
348762306a36Sopenharmony_ci	),
348862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u",
348962306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper,
349062306a36Sopenharmony_ci		  __entry->reason_code)
349162306a36Sopenharmony_ci	);
349262306a36Sopenharmony_ci
349362306a36Sopenharmony_ciTRACE_EVENT(cfg80211_scan_done,
349462306a36Sopenharmony_ci	TP_PROTO(struct cfg80211_scan_request *request,
349562306a36Sopenharmony_ci		 struct cfg80211_scan_info *info),
349662306a36Sopenharmony_ci	TP_ARGS(request, info),
349762306a36Sopenharmony_ci	TP_STRUCT__entry(
349862306a36Sopenharmony_ci		__field(u32, n_channels)
349962306a36Sopenharmony_ci		__dynamic_array(u8, ie, request ? request->ie_len : 0)
350062306a36Sopenharmony_ci		__array(u32, rates, NUM_NL80211_BANDS)
350162306a36Sopenharmony_ci		__field(u32, wdev_id)
350262306a36Sopenharmony_ci		MAC_ENTRY(wiphy_mac)
350362306a36Sopenharmony_ci		__field(bool, no_cck)
350462306a36Sopenharmony_ci		__field(bool, aborted)
350562306a36Sopenharmony_ci		__field(u64, scan_start_tsf)
350662306a36Sopenharmony_ci		MAC_ENTRY(tsf_bssid)
350762306a36Sopenharmony_ci	),
350862306a36Sopenharmony_ci	TP_fast_assign(
350962306a36Sopenharmony_ci		if (request) {
351062306a36Sopenharmony_ci			memcpy(__get_dynamic_array(ie), request->ie,
351162306a36Sopenharmony_ci			       request->ie_len);
351262306a36Sopenharmony_ci			memcpy(__entry->rates, request->rates,
351362306a36Sopenharmony_ci			       NUM_NL80211_BANDS);
351462306a36Sopenharmony_ci			__entry->wdev_id = request->wdev ?
351562306a36Sopenharmony_ci					request->wdev->identifier : 0;
351662306a36Sopenharmony_ci			if (request->wiphy)
351762306a36Sopenharmony_ci				MAC_ASSIGN(wiphy_mac,
351862306a36Sopenharmony_ci					   request->wiphy->perm_addr);
351962306a36Sopenharmony_ci			__entry->no_cck = request->no_cck;
352062306a36Sopenharmony_ci		}
352162306a36Sopenharmony_ci		if (info) {
352262306a36Sopenharmony_ci			__entry->aborted = info->aborted;
352362306a36Sopenharmony_ci			__entry->scan_start_tsf = info->scan_start_tsf;
352462306a36Sopenharmony_ci			MAC_ASSIGN(tsf_bssid, info->tsf_bssid);
352562306a36Sopenharmony_ci		}
352662306a36Sopenharmony_ci	),
352762306a36Sopenharmony_ci	TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM",
352862306a36Sopenharmony_ci		  BOOL_TO_STR(__entry->aborted),
352962306a36Sopenharmony_ci		  (unsigned long long)__entry->scan_start_tsf,
353062306a36Sopenharmony_ci		  __entry->tsf_bssid)
353162306a36Sopenharmony_ci);
353262306a36Sopenharmony_ci
353362306a36Sopenharmony_ciDECLARE_EVENT_CLASS(wiphy_id_evt,
353462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u64 id),
353562306a36Sopenharmony_ci	TP_ARGS(wiphy, id),
353662306a36Sopenharmony_ci	TP_STRUCT__entry(
353762306a36Sopenharmony_ci		WIPHY_ENTRY
353862306a36Sopenharmony_ci		__field(u64, id)
353962306a36Sopenharmony_ci	),
354062306a36Sopenharmony_ci	TP_fast_assign(
354162306a36Sopenharmony_ci		WIPHY_ASSIGN;
354262306a36Sopenharmony_ci		__entry->id = id;
354362306a36Sopenharmony_ci	),
354462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id)
354562306a36Sopenharmony_ci);
354662306a36Sopenharmony_ci
354762306a36Sopenharmony_ciDEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped,
354862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u64 id),
354962306a36Sopenharmony_ci	TP_ARGS(wiphy, id)
355062306a36Sopenharmony_ci);
355162306a36Sopenharmony_ci
355262306a36Sopenharmony_ciDEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results,
355362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, u64 id),
355462306a36Sopenharmony_ci	TP_ARGS(wiphy, id)
355562306a36Sopenharmony_ci);
355662306a36Sopenharmony_ci
355762306a36Sopenharmony_ciTRACE_EVENT(cfg80211_get_bss,
355862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel,
355962306a36Sopenharmony_ci		 const u8 *bssid, const u8 *ssid, size_t ssid_len,
356062306a36Sopenharmony_ci		 enum ieee80211_bss_type bss_type,
356162306a36Sopenharmony_ci		 enum ieee80211_privacy privacy),
356262306a36Sopenharmony_ci	TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy),
356362306a36Sopenharmony_ci	TP_STRUCT__entry(
356462306a36Sopenharmony_ci		WIPHY_ENTRY
356562306a36Sopenharmony_ci		CHAN_ENTRY
356662306a36Sopenharmony_ci		MAC_ENTRY(bssid)
356762306a36Sopenharmony_ci		__dynamic_array(u8, ssid, ssid_len)
356862306a36Sopenharmony_ci		__field(enum ieee80211_bss_type, bss_type)
356962306a36Sopenharmony_ci		__field(enum ieee80211_privacy, privacy)
357062306a36Sopenharmony_ci	),
357162306a36Sopenharmony_ci	TP_fast_assign(
357262306a36Sopenharmony_ci		WIPHY_ASSIGN;
357362306a36Sopenharmony_ci		CHAN_ASSIGN(channel);
357462306a36Sopenharmony_ci		MAC_ASSIGN(bssid, bssid);
357562306a36Sopenharmony_ci		memcpy(__get_dynamic_array(ssid), ssid, ssid_len);
357662306a36Sopenharmony_ci		__entry->bss_type = bss_type;
357762306a36Sopenharmony_ci		__entry->privacy = privacy;
357862306a36Sopenharmony_ci	),
357962306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM"
358062306a36Sopenharmony_ci		  ", buf: %#.2x, bss_type: %d, privacy: %d",
358162306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid,
358262306a36Sopenharmony_ci		  ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type,
358362306a36Sopenharmony_ci		  __entry->privacy)
358462306a36Sopenharmony_ci);
358562306a36Sopenharmony_ci
358662306a36Sopenharmony_ciTRACE_EVENT(cfg80211_inform_bss_frame,
358762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data,
358862306a36Sopenharmony_ci		 struct ieee80211_mgmt *mgmt, size_t len),
358962306a36Sopenharmony_ci	TP_ARGS(wiphy, data, mgmt, len),
359062306a36Sopenharmony_ci	TP_STRUCT__entry(
359162306a36Sopenharmony_ci		WIPHY_ENTRY
359262306a36Sopenharmony_ci		CHAN_ENTRY
359362306a36Sopenharmony_ci		__field(enum nl80211_bss_scan_width, scan_width)
359462306a36Sopenharmony_ci		__dynamic_array(u8, mgmt, len)
359562306a36Sopenharmony_ci		__field(s32, signal)
359662306a36Sopenharmony_ci		__field(u64, ts_boottime)
359762306a36Sopenharmony_ci		__field(u64, parent_tsf)
359862306a36Sopenharmony_ci		MAC_ENTRY(parent_bssid)
359962306a36Sopenharmony_ci	),
360062306a36Sopenharmony_ci	TP_fast_assign(
360162306a36Sopenharmony_ci		WIPHY_ASSIGN;
360262306a36Sopenharmony_ci		CHAN_ASSIGN(data->chan);
360362306a36Sopenharmony_ci		__entry->scan_width = data->scan_width;
360462306a36Sopenharmony_ci		if (mgmt)
360562306a36Sopenharmony_ci			memcpy(__get_dynamic_array(mgmt), mgmt, len);
360662306a36Sopenharmony_ci		__entry->signal = data->signal;
360762306a36Sopenharmony_ci		__entry->ts_boottime = data->boottime_ns;
360862306a36Sopenharmony_ci		__entry->parent_tsf = data->parent_tsf;
360962306a36Sopenharmony_ci		MAC_ASSIGN(parent_bssid, data->parent_bssid);
361062306a36Sopenharmony_ci	),
361162306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT
361262306a36Sopenharmony_ci		  "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM",
361362306a36Sopenharmony_ci		  WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
361462306a36Sopenharmony_ci		  __entry->signal, (unsigned long long)__entry->ts_boottime,
361562306a36Sopenharmony_ci		  (unsigned long long)__entry->parent_tsf,
361662306a36Sopenharmony_ci		  __entry->parent_bssid)
361762306a36Sopenharmony_ci);
361862306a36Sopenharmony_ci
361962306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cfg80211_bss_evt,
362062306a36Sopenharmony_ci	TP_PROTO(struct cfg80211_bss *pub),
362162306a36Sopenharmony_ci	TP_ARGS(pub),
362262306a36Sopenharmony_ci	TP_STRUCT__entry(
362362306a36Sopenharmony_ci		MAC_ENTRY(bssid)
362462306a36Sopenharmony_ci		CHAN_ENTRY
362562306a36Sopenharmony_ci	),
362662306a36Sopenharmony_ci	TP_fast_assign(
362762306a36Sopenharmony_ci		MAC_ASSIGN(bssid, pub->bssid);
362862306a36Sopenharmony_ci		CHAN_ASSIGN(pub->channel);
362962306a36Sopenharmony_ci	),
363062306a36Sopenharmony_ci	TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG)
363162306a36Sopenharmony_ci);
363262306a36Sopenharmony_ci
363362306a36Sopenharmony_ciDEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss,
363462306a36Sopenharmony_ci	TP_PROTO(struct cfg80211_bss *pub),
363562306a36Sopenharmony_ci	TP_ARGS(pub)
363662306a36Sopenharmony_ci);
363762306a36Sopenharmony_ci
363862306a36Sopenharmony_ciTRACE_EVENT(cfg80211_return_uint,
363962306a36Sopenharmony_ci	TP_PROTO(unsigned int ret),
364062306a36Sopenharmony_ci	TP_ARGS(ret),
364162306a36Sopenharmony_ci	TP_STRUCT__entry(
364262306a36Sopenharmony_ci		__field(unsigned int, ret)
364362306a36Sopenharmony_ci	),
364462306a36Sopenharmony_ci	TP_fast_assign(
364562306a36Sopenharmony_ci		__entry->ret = ret;
364662306a36Sopenharmony_ci	),
364762306a36Sopenharmony_ci	TP_printk("ret: %d", __entry->ret)
364862306a36Sopenharmony_ci);
364962306a36Sopenharmony_ci
365062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_return_u32,
365162306a36Sopenharmony_ci	TP_PROTO(u32 ret),
365262306a36Sopenharmony_ci	TP_ARGS(ret),
365362306a36Sopenharmony_ci	TP_STRUCT__entry(
365462306a36Sopenharmony_ci		__field(u32, ret)
365562306a36Sopenharmony_ci	),
365662306a36Sopenharmony_ci	TP_fast_assign(
365762306a36Sopenharmony_ci		__entry->ret = ret;
365862306a36Sopenharmony_ci	),
365962306a36Sopenharmony_ci	TP_printk("ret: %u", __entry->ret)
366062306a36Sopenharmony_ci);
366162306a36Sopenharmony_ci
366262306a36Sopenharmony_ciTRACE_EVENT(cfg80211_report_wowlan_wakeup,
366362306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
366462306a36Sopenharmony_ci		 struct cfg80211_wowlan_wakeup *wakeup),
366562306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, wakeup),
366662306a36Sopenharmony_ci	TP_STRUCT__entry(
366762306a36Sopenharmony_ci		WIPHY_ENTRY
366862306a36Sopenharmony_ci		WDEV_ENTRY
366962306a36Sopenharmony_ci		__field(bool, non_wireless)
367062306a36Sopenharmony_ci		__field(bool, disconnect)
367162306a36Sopenharmony_ci		__field(bool, magic_pkt)
367262306a36Sopenharmony_ci		__field(bool, gtk_rekey_failure)
367362306a36Sopenharmony_ci		__field(bool, eap_identity_req)
367462306a36Sopenharmony_ci		__field(bool, four_way_handshake)
367562306a36Sopenharmony_ci		__field(bool, rfkill_release)
367662306a36Sopenharmony_ci		__field(s32, pattern_idx)
367762306a36Sopenharmony_ci		__field(u32, packet_len)
367862306a36Sopenharmony_ci		__dynamic_array(u8, packet,
367962306a36Sopenharmony_ci				wakeup ? wakeup->packet_present_len : 0)
368062306a36Sopenharmony_ci	),
368162306a36Sopenharmony_ci	TP_fast_assign(
368262306a36Sopenharmony_ci		WIPHY_ASSIGN;
368362306a36Sopenharmony_ci		WDEV_ASSIGN;
368462306a36Sopenharmony_ci		__entry->non_wireless = !wakeup;
368562306a36Sopenharmony_ci		__entry->disconnect = wakeup ? wakeup->disconnect : false;
368662306a36Sopenharmony_ci		__entry->magic_pkt = wakeup ? wakeup->magic_pkt : false;
368762306a36Sopenharmony_ci		__entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false;
368862306a36Sopenharmony_ci		__entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false;
368962306a36Sopenharmony_ci		__entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false;
369062306a36Sopenharmony_ci		__entry->rfkill_release = wakeup ? wakeup->rfkill_release : false;
369162306a36Sopenharmony_ci		__entry->pattern_idx = wakeup ? wakeup->pattern_idx : false;
369262306a36Sopenharmony_ci		__entry->packet_len = wakeup ? wakeup->packet_len : false;
369362306a36Sopenharmony_ci		if (wakeup && wakeup->packet && wakeup->packet_present_len)
369462306a36Sopenharmony_ci			memcpy(__get_dynamic_array(packet), wakeup->packet,
369562306a36Sopenharmony_ci			       wakeup->packet_present_len);
369662306a36Sopenharmony_ci	),
369762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG)
369862306a36Sopenharmony_ci);
369962306a36Sopenharmony_ci
370062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_ft_event,
370162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
370262306a36Sopenharmony_ci		 struct cfg80211_ft_event_params *ft_event),
370362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, ft_event),
370462306a36Sopenharmony_ci	TP_STRUCT__entry(
370562306a36Sopenharmony_ci		WIPHY_ENTRY
370662306a36Sopenharmony_ci		NETDEV_ENTRY
370762306a36Sopenharmony_ci		__dynamic_array(u8, ies, ft_event->ies_len)
370862306a36Sopenharmony_ci		MAC_ENTRY(target_ap)
370962306a36Sopenharmony_ci		__dynamic_array(u8, ric_ies, ft_event->ric_ies_len)
371062306a36Sopenharmony_ci	),
371162306a36Sopenharmony_ci	TP_fast_assign(
371262306a36Sopenharmony_ci		WIPHY_ASSIGN;
371362306a36Sopenharmony_ci		NETDEV_ASSIGN;
371462306a36Sopenharmony_ci		if (ft_event->ies)
371562306a36Sopenharmony_ci			memcpy(__get_dynamic_array(ies), ft_event->ies,
371662306a36Sopenharmony_ci			       ft_event->ies_len);
371762306a36Sopenharmony_ci		MAC_ASSIGN(target_ap, ft_event->target_ap);
371862306a36Sopenharmony_ci		if (ft_event->ric_ies)
371962306a36Sopenharmony_ci			memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies,
372062306a36Sopenharmony_ci			       ft_event->ric_ies_len);
372162306a36Sopenharmony_ci	),
372262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM",
372362306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap)
372462306a36Sopenharmony_ci);
372562306a36Sopenharmony_ci
372662306a36Sopenharmony_ciTRACE_EVENT(cfg80211_stop_iface,
372762306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
372862306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev),
372962306a36Sopenharmony_ci	TP_STRUCT__entry(
373062306a36Sopenharmony_ci		WIPHY_ENTRY
373162306a36Sopenharmony_ci		WDEV_ENTRY
373262306a36Sopenharmony_ci	),
373362306a36Sopenharmony_ci	TP_fast_assign(
373462306a36Sopenharmony_ci		WIPHY_ASSIGN;
373562306a36Sopenharmony_ci		WDEV_ASSIGN;
373662306a36Sopenharmony_ci	),
373762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT,
373862306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG)
373962306a36Sopenharmony_ci);
374062306a36Sopenharmony_ci
374162306a36Sopenharmony_ciTRACE_EVENT(cfg80211_pmsr_report,
374262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
374362306a36Sopenharmony_ci		 u64 cookie, const u8 *addr),
374462306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie, addr),
374562306a36Sopenharmony_ci	TP_STRUCT__entry(
374662306a36Sopenharmony_ci		WIPHY_ENTRY
374762306a36Sopenharmony_ci		WDEV_ENTRY
374862306a36Sopenharmony_ci		__field(u64, cookie)
374962306a36Sopenharmony_ci		MAC_ENTRY(addr)
375062306a36Sopenharmony_ci	),
375162306a36Sopenharmony_ci	TP_fast_assign(
375262306a36Sopenharmony_ci		WIPHY_ASSIGN;
375362306a36Sopenharmony_ci		WDEV_ASSIGN;
375462306a36Sopenharmony_ci		__entry->cookie = cookie;
375562306a36Sopenharmony_ci		MAC_ASSIGN(addr, addr);
375662306a36Sopenharmony_ci	),
375762306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM",
375862306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG,
375962306a36Sopenharmony_ci		  (unsigned long long)__entry->cookie,
376062306a36Sopenharmony_ci		  __entry->addr)
376162306a36Sopenharmony_ci);
376262306a36Sopenharmony_ci
376362306a36Sopenharmony_ciTRACE_EVENT(cfg80211_pmsr_complete,
376462306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie),
376562306a36Sopenharmony_ci	TP_ARGS(wiphy, wdev, cookie),
376662306a36Sopenharmony_ci	TP_STRUCT__entry(
376762306a36Sopenharmony_ci		WIPHY_ENTRY
376862306a36Sopenharmony_ci		WDEV_ENTRY
376962306a36Sopenharmony_ci		__field(u64, cookie)
377062306a36Sopenharmony_ci	),
377162306a36Sopenharmony_ci	TP_fast_assign(
377262306a36Sopenharmony_ci		WIPHY_ASSIGN;
377362306a36Sopenharmony_ci		WDEV_ASSIGN;
377462306a36Sopenharmony_ci		__entry->cookie = cookie;
377562306a36Sopenharmony_ci	),
377662306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld",
377762306a36Sopenharmony_ci		  WIPHY_PR_ARG, WDEV_PR_ARG,
377862306a36Sopenharmony_ci		  (unsigned long long)__entry->cookie)
377962306a36Sopenharmony_ci);
378062306a36Sopenharmony_ci
378162306a36Sopenharmony_ciTRACE_EVENT(cfg80211_update_owe_info_event,
378262306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
378362306a36Sopenharmony_ci		 struct cfg80211_update_owe_info *owe_info),
378462306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, owe_info),
378562306a36Sopenharmony_ci	TP_STRUCT__entry(
378662306a36Sopenharmony_ci		WIPHY_ENTRY
378762306a36Sopenharmony_ci		NETDEV_ENTRY
378862306a36Sopenharmony_ci		MAC_ENTRY(peer)
378962306a36Sopenharmony_ci		__dynamic_array(u8, ie, owe_info->ie_len)
379062306a36Sopenharmony_ci		__field(int, assoc_link_id)
379162306a36Sopenharmony_ci		MAC_ENTRY(peer_mld_addr)
379262306a36Sopenharmony_ci	),
379362306a36Sopenharmony_ci	TP_fast_assign(
379462306a36Sopenharmony_ci		WIPHY_ASSIGN;
379562306a36Sopenharmony_ci		NETDEV_ASSIGN;
379662306a36Sopenharmony_ci		MAC_ASSIGN(peer, owe_info->peer);
379762306a36Sopenharmony_ci		memcpy(__get_dynamic_array(ie), owe_info->ie,
379862306a36Sopenharmony_ci		       owe_info->ie_len);
379962306a36Sopenharmony_ci		__entry->assoc_link_id = owe_info->assoc_link_id;
380062306a36Sopenharmony_ci		MAC_ASSIGN(peer_mld_addr, owe_info->peer_mld_addr);
380162306a36Sopenharmony_ci	),
380262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM,"
380362306a36Sopenharmony_ci	          " assoc_link_id: %d, peer_mld_addr: %pM",
380462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
380562306a36Sopenharmony_ci		  __entry->assoc_link_id, __entry->peer_mld_addr)
380662306a36Sopenharmony_ci);
380762306a36Sopenharmony_ci
380862306a36Sopenharmony_ciTRACE_EVENT(cfg80211_bss_color_notify,
380962306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev,
381062306a36Sopenharmony_ci		 enum nl80211_commands cmd,
381162306a36Sopenharmony_ci		 u8 count, u64 color_bitmap),
381262306a36Sopenharmony_ci	TP_ARGS(netdev, cmd, count, color_bitmap),
381362306a36Sopenharmony_ci	TP_STRUCT__entry(
381462306a36Sopenharmony_ci		NETDEV_ENTRY
381562306a36Sopenharmony_ci		__field(u32, cmd)
381662306a36Sopenharmony_ci		__field(u8, count)
381762306a36Sopenharmony_ci		__field(u64, color_bitmap)
381862306a36Sopenharmony_ci	),
381962306a36Sopenharmony_ci	TP_fast_assign(
382062306a36Sopenharmony_ci		NETDEV_ASSIGN;
382162306a36Sopenharmony_ci		__entry->cmd = cmd;
382262306a36Sopenharmony_ci		__entry->count = count;
382362306a36Sopenharmony_ci		__entry->color_bitmap = color_bitmap;
382462306a36Sopenharmony_ci	),
382562306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx",
382662306a36Sopenharmony_ci		  NETDEV_PR_ARG, __entry->cmd, __entry->count,
382762306a36Sopenharmony_ci		  __entry->color_bitmap)
382862306a36Sopenharmony_ci);
382962306a36Sopenharmony_ci
383062306a36Sopenharmony_ciTRACE_EVENT(cfg80211_assoc_comeback,
383162306a36Sopenharmony_ci	TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout),
383262306a36Sopenharmony_ci	TP_ARGS(wdev, ap_addr, timeout),
383362306a36Sopenharmony_ci	TP_STRUCT__entry(
383462306a36Sopenharmony_ci		WDEV_ENTRY
383562306a36Sopenharmony_ci		MAC_ENTRY(ap_addr)
383662306a36Sopenharmony_ci		__field(u32, timeout)
383762306a36Sopenharmony_ci	),
383862306a36Sopenharmony_ci	TP_fast_assign(
383962306a36Sopenharmony_ci		WDEV_ASSIGN;
384062306a36Sopenharmony_ci		MAC_ASSIGN(ap_addr, ap_addr);
384162306a36Sopenharmony_ci		__entry->timeout = timeout;
384262306a36Sopenharmony_ci	),
384362306a36Sopenharmony_ci	TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs",
384462306a36Sopenharmony_ci		  WDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
384562306a36Sopenharmony_ci);
384662306a36Sopenharmony_ci
384762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(link_station_add_mod,
384862306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
384962306a36Sopenharmony_ci		 struct link_station_parameters *params),
385062306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
385162306a36Sopenharmony_ci	TP_STRUCT__entry(
385262306a36Sopenharmony_ci		WIPHY_ENTRY
385362306a36Sopenharmony_ci		NETDEV_ENTRY
385462306a36Sopenharmony_ci		__array(u8, mld_mac, 6)
385562306a36Sopenharmony_ci		__array(u8, link_mac, 6)
385662306a36Sopenharmony_ci		__field(u32, link_id)
385762306a36Sopenharmony_ci		__dynamic_array(u8, supported_rates,
385862306a36Sopenharmony_ci				params->supported_rates_len)
385962306a36Sopenharmony_ci		__array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap))
386062306a36Sopenharmony_ci		__array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap))
386162306a36Sopenharmony_ci		__field(u8, opmode_notif)
386262306a36Sopenharmony_ci		__field(bool, opmode_notif_used)
386362306a36Sopenharmony_ci		__dynamic_array(u8, he_capa, params->he_capa_len)
386462306a36Sopenharmony_ci		__array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa))
386562306a36Sopenharmony_ci		__dynamic_array(u8, eht_capa, params->eht_capa_len)
386662306a36Sopenharmony_ci	),
386762306a36Sopenharmony_ci	TP_fast_assign(
386862306a36Sopenharmony_ci		WIPHY_ASSIGN;
386962306a36Sopenharmony_ci		NETDEV_ASSIGN;
387062306a36Sopenharmony_ci		memset(__entry->mld_mac, 0, 6);
387162306a36Sopenharmony_ci		memset(__entry->link_mac, 0, 6);
387262306a36Sopenharmony_ci		if (params->mld_mac)
387362306a36Sopenharmony_ci			memcpy(__entry->mld_mac, params->mld_mac, 6);
387462306a36Sopenharmony_ci		if (params->link_mac)
387562306a36Sopenharmony_ci			memcpy(__entry->link_mac, params->link_mac, 6);
387662306a36Sopenharmony_ci		__entry->link_id = params->link_id;
387762306a36Sopenharmony_ci		if (params->supported_rates && params->supported_rates_len)
387862306a36Sopenharmony_ci			memcpy(__get_dynamic_array(supported_rates),
387962306a36Sopenharmony_ci			       params->supported_rates,
388062306a36Sopenharmony_ci			       params->supported_rates_len);
388162306a36Sopenharmony_ci		memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap));
388262306a36Sopenharmony_ci		if (params->ht_capa)
388362306a36Sopenharmony_ci			memcpy(__entry->ht_capa, params->ht_capa,
388462306a36Sopenharmony_ci			       sizeof(struct ieee80211_ht_cap));
388562306a36Sopenharmony_ci		memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap));
388662306a36Sopenharmony_ci		if (params->vht_capa)
388762306a36Sopenharmony_ci			memcpy(__entry->vht_capa, params->vht_capa,
388862306a36Sopenharmony_ci			       sizeof(struct ieee80211_vht_cap));
388962306a36Sopenharmony_ci		__entry->opmode_notif = params->opmode_notif;
389062306a36Sopenharmony_ci		__entry->opmode_notif_used = params->opmode_notif_used;
389162306a36Sopenharmony_ci		if (params->he_capa && params->he_capa_len)
389262306a36Sopenharmony_ci			memcpy(__get_dynamic_array(he_capa), params->he_capa,
389362306a36Sopenharmony_ci			       params->he_capa_len);
389462306a36Sopenharmony_ci		memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa));
389562306a36Sopenharmony_ci		if (params->he_6ghz_capa)
389662306a36Sopenharmony_ci			memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa,
389762306a36Sopenharmony_ci			       sizeof(struct ieee80211_he_6ghz_capa));
389862306a36Sopenharmony_ci		if (params->eht_capa && params->eht_capa_len)
389962306a36Sopenharmony_ci			memcpy(__get_dynamic_array(eht_capa), params->eht_capa,
390062306a36Sopenharmony_ci			       params->eht_capa_len);
390162306a36Sopenharmony_ci	),
390262306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
390362306a36Sopenharmony_ci		  ", link mac: %pM, link id: %u",
390462306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
390562306a36Sopenharmony_ci		  __entry->link_mac, __entry->link_id)
390662306a36Sopenharmony_ci);
390762306a36Sopenharmony_ci
390862306a36Sopenharmony_ciDEFINE_EVENT(link_station_add_mod, rdev_add_link_station,
390962306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
391062306a36Sopenharmony_ci		 struct link_station_parameters *params),
391162306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params)
391262306a36Sopenharmony_ci);
391362306a36Sopenharmony_ci
391462306a36Sopenharmony_ciDEFINE_EVENT(link_station_add_mod, rdev_mod_link_station,
391562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
391662306a36Sopenharmony_ci		 struct link_station_parameters *params),
391762306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params)
391862306a36Sopenharmony_ci);
391962306a36Sopenharmony_ci
392062306a36Sopenharmony_ciTRACE_EVENT(rdev_del_link_station,
392162306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
392262306a36Sopenharmony_ci		 struct link_station_del_parameters *params),
392362306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, params),
392462306a36Sopenharmony_ci	TP_STRUCT__entry(
392562306a36Sopenharmony_ci		WIPHY_ENTRY
392662306a36Sopenharmony_ci		NETDEV_ENTRY
392762306a36Sopenharmony_ci		__array(u8, mld_mac, 6)
392862306a36Sopenharmony_ci		__field(u32, link_id)
392962306a36Sopenharmony_ci	),
393062306a36Sopenharmony_ci	TP_fast_assign(
393162306a36Sopenharmony_ci		WIPHY_ASSIGN;
393262306a36Sopenharmony_ci		NETDEV_ASSIGN;
393362306a36Sopenharmony_ci		memset(__entry->mld_mac, 0, 6);
393462306a36Sopenharmony_ci		if (params->mld_mac)
393562306a36Sopenharmony_ci			memcpy(__entry->mld_mac, params->mld_mac, 6);
393662306a36Sopenharmony_ci		__entry->link_id = params->link_id;
393762306a36Sopenharmony_ci	),
393862306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
393962306a36Sopenharmony_ci		  ", link id: %u",
394062306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
394162306a36Sopenharmony_ci		  __entry->link_id)
394262306a36Sopenharmony_ci);
394362306a36Sopenharmony_ci
394462306a36Sopenharmony_ciTRACE_EVENT(rdev_set_hw_timestamp,
394562306a36Sopenharmony_ci	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
394662306a36Sopenharmony_ci		 struct cfg80211_set_hw_timestamp *hwts),
394762306a36Sopenharmony_ci
394862306a36Sopenharmony_ci	TP_ARGS(wiphy, netdev, hwts),
394962306a36Sopenharmony_ci
395062306a36Sopenharmony_ci	TP_STRUCT__entry(
395162306a36Sopenharmony_ci		WIPHY_ENTRY
395262306a36Sopenharmony_ci		NETDEV_ENTRY
395362306a36Sopenharmony_ci		MAC_ENTRY(macaddr)
395462306a36Sopenharmony_ci		__field(bool, enable)
395562306a36Sopenharmony_ci	),
395662306a36Sopenharmony_ci
395762306a36Sopenharmony_ci	TP_fast_assign(
395862306a36Sopenharmony_ci		WIPHY_ASSIGN;
395962306a36Sopenharmony_ci		NETDEV_ASSIGN;
396062306a36Sopenharmony_ci		MAC_ASSIGN(macaddr, hwts->macaddr);
396162306a36Sopenharmony_ci		__entry->enable = hwts->enable;
396262306a36Sopenharmony_ci	),
396362306a36Sopenharmony_ci
396462306a36Sopenharmony_ci	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac %pM, enable: %u",
396562306a36Sopenharmony_ci		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr,
396662306a36Sopenharmony_ci		  __entry->enable)
396762306a36Sopenharmony_ci);
396862306a36Sopenharmony_ci
396962306a36Sopenharmony_ciTRACE_EVENT(cfg80211_links_removed,
397062306a36Sopenharmony_ci	TP_PROTO(struct net_device *netdev, u16 link_mask),
397162306a36Sopenharmony_ci	TP_ARGS(netdev, link_mask),
397262306a36Sopenharmony_ci	TP_STRUCT__entry(
397362306a36Sopenharmony_ci		NETDEV_ENTRY
397462306a36Sopenharmony_ci		__field(u16, link_mask)
397562306a36Sopenharmony_ci	),
397662306a36Sopenharmony_ci	TP_fast_assign(
397762306a36Sopenharmony_ci		NETDEV_ASSIGN;
397862306a36Sopenharmony_ci		__entry->link_mask = link_mask;
397962306a36Sopenharmony_ci	),
398062306a36Sopenharmony_ci	TP_printk(NETDEV_PR_FMT ", link_mask:%u", NETDEV_PR_ARG,
398162306a36Sopenharmony_ci		  __entry->link_mask)
398262306a36Sopenharmony_ci);
398362306a36Sopenharmony_ci
398462306a36Sopenharmony_ci#endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */
398562306a36Sopenharmony_ci
398662306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH
398762306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH .
398862306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE
398962306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE trace
399062306a36Sopenharmony_ci#include <trace/define_trace.h>
3991